Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.03;
Скачать: CL | DM;

Вниз

Выравнивание по левому краю в TEdit   Найти похожие ветки 

 
solenko ©   (2006-04-10 17:21) [0]

Здравствуйте!
Пытаюсь сделать выравнивание в эдите по левому краю следующим образом:

type
 TNumEdit = class(TCustomEdit)
 public
   procedure CreateParams(var Params: TCreateParams); override;
end;

procedure TNumEdit.CreateParams(var Params: TCreateParams);
begin
 inherited CreateParams(Params);
 Params.Style := Params.Style ES_RIGHT or ES_NUMBER;
end;


Все вроде бы прекрастно работает, но только если форма создается на этапе старта приложения. Если же форма создается на этапе выполнения, то вылазит Access violation...

Проблемма именно в TNumEdit, так как после удаления их с формы все работает прекрастно.


 
Юрий Зотов ©   (2006-04-10 22:41) [1]

1. Пропущено OR. Видимо, только здесь, а не в рабочем коде.
2. Похоже, ошибка где-то в другом месте. Пройдите отладчиком.


 
solenko ©   (2006-04-11 13:16) [2]

Пропущено только здесь.
Отладчиком не могу пройтись, т.к. сделал это в виде компонента. Ошибка вылетает на вызове
inherited Create(AOwner);
формы, на которой расположен компонент (TNumEdit).
Тут приведен afrnbxtcrb полный код компонента -- никаких других свойств/методов я не переопределял. Может необходимо явно определить конструктор в TNumEdit?


 
Юрий Зотов ©   (2006-04-11 13:47) [3]

> Отладчиком не могу пройтись, т.к. сделал это в виде компонента.

??????????????
И что? Разве отладчиком нельзя пройти по коду компонента? Или формы? Тем более, что ошибка вылетает в run-time.

> Ошибка вылетает на вызове
> inherited Create(AOwner);
> формы, на которой расположен компонент (TNumEdit).

1. Если Вы не проходили код отладчиком, то как Вы это определили? А если проходили, то почему не включить "Use debug DCUs" (в опциях проекта), не нажать на этой строчке F7 (а не F8) и не локализовать ошибку ТОЧНО?

2. Если Вы не замещали конструктор формы, то как Вы ухитрились вставить в него эту строчку? А если замещали, то где его код?

3. Что-то Вы недоговариваете, потому что вот так все прекрасно работает:

type
 TNumEdit = class(TCustomEdit)
 protected
   procedure CreateParams(var Params: TCreateParams); override;
 end;

procedure TNumEdit.CreateParams(var Params: TCreateParams);
begin
 inherited;
 Params.Style := Params.Style or ES_RIGHT or ES_NUMBER
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 TNumEdit.Create(Self).Parent := Self
end;



Страницы: 1 вся ветка

Текущий архив: 2006.12.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.058 c
15-1163423248
novill
2006-11-13 16:07
2006.12.03
Ошибка при попытке скачать программу или компонент с Кладовки


15-1163336735
nordic3
2006-11-12 16:05
2006.12.03
Музыкальный диск и магнитофон


2-1163666014
WhiteBarin
2006-11-16 11:33
2006.12.03
Запретить завершение сеанса,запрещение выключения компьютера...


4-1153829366
sVic
2006-07-25 16:09
2006.12.03
Как определить владельца файла(NTFS)


15-1163567884
vajo
2006-11-15 08:18
2006.12.03
Dell вернула деньги за Windows поклоннику Linux