Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2007, 14:13   #1
max_vogel
Новичок
Джуниор
 
Регистрация: 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.
max_vogel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прозрачный 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