Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Вниз

Выравнивание по левому краю в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.044 c
1-1161332146
zorik
2006-10-20 12:15
2006.12.03
Что за файл GqeDelph?


15-1163493469
Stexen
2006-11-14 11:37
2006.12.03
Skype


15-1163580118
KilkennyCat
2006-11-15 11:41
2006.12.03
Что Вы наиболее часто используете и для каких целей?


15-1163075753
Сало
2006-11-09 15:35
2006.12.03
Вышел релиз Firebird 2.0


2-1163435060
Jimmy
2006-11-13 19:24
2006.12.03
Экономия ресурсов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский