Главная страница
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
4-1153425976
Батыр
2006-07-21 00:06
2006.12.03
Как узнать цвет заданной точки экранна


15-1163385443
kidm
2006-11-13 05:37
2006.12.03
Нуж помощь при оброшение к файлу


2-1163628539
framez
2006-11-16 01:08
2006.12.03
TreeView + БД


15-1163737492
0x07BBh
2006-11-17 07:24
2006.12.03
Подскажите пожалуйста адресс "Кладовки"


15-1163183082
ArtemESC
2006-11-10 21:24
2006.12.03
Технология баннированя IP-адресов...