|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.07.2007, 14:13 | #1 |
Новичок
Джуниор
Регистрация: 02.07.2007
Сообщений: 1
|
изменённый Edit на pagecontrol
День добрый! Что то я неправильно делаю (опыта маловато)
Взял TAlignEdit (на этом сайте в архивах) немного переделал, т.к. надо много подобных edit ов. Если предок форма то всё отлчно работает, если pagecontrol (tabsheet точнее)то свойства bevel* явно изменяются. и определённые onenter onexit работают неправильно, пропадает текст итд.. в чём ошибка? изменённый AlignEdit, добавлять как компонент: unit AlignEdit; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TAlign = (eaLeft, eaCenter, eaRight); TAlignEdit = class(TEdit) private { Private-Deklarationen } FAlign: TAlign; FOnExit: TNotifyEvent; FOnEnter: TNotifyEvent; procedure SetAlign(const Value: TAlign); procedure CMEnter(var Message: TMessage); message CM_ENTER; procedure CMExit(var Message: TMessage); message CM_EXIT; protected { Protected-Deklarationen } procedure CreateParams(var Params: TCreateParams); override; public { Public-Deklarationen } constructor Create(AOwner: TComponent); override; published { Published-Deklarationen } property Alignment: TAlign read FAlign write SetAlign default eaCenter; property OnExit: TNotifyEvent read FOnExit write FOnExit; property OnEnter: TNotifyEvent read FOnEnter write FOnEnter; end; procedure Register; implementation constructor TAlignEdit.Create(Aowner: TComponent); begin inherited Create(AOwner); FAlign := eaCenter; autosize:=false; font.Name:='Arial'; font.Size:=9; height:=15; width:=56; text:='--'; bevelinner:=bvRaised; bevelkind:=bknone; bevelouter:=bvraised; alignment:=eaCenter; borderstyle:=bsnone; color:=RGB(187,187,175) end; procedure TAlignEdit.SetAlign(const Value: TAlign); begin if FAlign <> Value then begin FAlign := Value; RecreateWnd; end; end; procedure TAlignEdit.CreateParams(var Params: TCreateParams); begin inherited; case FAlign of eaLeft: Params.Style := Params.Style or ES_LEFT; eaCenter: Params.Style := Params.Style or ES_CENTER; eaRight: Params.Style := Params.Style or ES_RIGHT; end; end; procedure TAlignEdit.CMEnter(var Message: TMessage); begin if Assigned(FOnEnter) then FOnEnter(Self); if readonly=false then begin bevelkind:=bkflat; alignment:=eaLeft; borderstyle:=bsSingle; left:=left-2; width:=width+4; top:=top-2; height:=height+4 end; end; procedure TAlignEdit.CMExit(var Message: TMessage); begin if Assigned(FOnExit) then FOnExit(Self); if bevelkind <> bknone then begin bevelkind:=bknone; borderstyle:=bsnone; alignment:=eaCenter; left:=left+2; width:=width-4; top:=top+2; height:=height-4; RecreateWnd; end; end; procedure Register; begin RegisterComponents('SwissDelphiCent er', [TAlignEdit]); end; end. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Прозрачный PageControl | Nemez | Компоненты Delphi | 7 | 23.07.2008 06:58 |
PageControl+WebBrowser | VenMaster | Компоненты Delphi | 0 | 11.05.2008 23:20 |
При нажатии на кнопку добавить в PageControl | VenMaster | Компоненты Delphi | 5 | 25.04.2008 01:41 |
MDI приложения и PageControl.... | maLoy*508 | Общие вопросы Delphi | 2 | 04.04.2008 02:28 |
PageControl И StringGrid | Gorin | Компоненты Delphi | 7 | 20.07.2007 18:15 |