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

Вниз

Проблма при создании компонента Delphi!! (HELP!!)   Найти похожие ветки 

 
XDefender   (2002-11-19 16:01) [0]

Так вот.
Пишу свой компонент, наследник от TPanel.

В методе Create пишу.

constructor TMyRichEdit.Create;
Begin
inherited;

ComboBox_Font:=TComboBox.Create(Owner);
ComboBox_Font.Width:=150;
ComboBox_Font.Left:=50;
ComboBox_Font.Top:=1;

ComboBox_Font.Items.Add("Arial"); <- ВОТ ТУТ ВОЗНИКАЕТ ОШИБКА... Почему - не знаю

ComboBox_Font.Items.Add("Times New Roman");
ComboBox_Font.Items.Add("Verdana");
ComboBox_Font.Items.Add("Tahoma");
ComboBox_Font.Items.Add("Symbol");

end;



Когда я размещаю на форме этот компонент, возникает ошибка, притом в указанной строке. Почему - не знаю.

ошибка:
Access violation at adress 05CE52EF0 in module "MyRichEdit_d6.bpl". Read of Adress 0000000.



Да, еще, если я пишу
ComboBox_Font:=TComboBox.Create(Self);
тогда создание также не происходит...

Так вот, дайте рекомендации... что делать...

Я хочу для себя сделать визуальный компонент, на основе TPanel, на котором будут размещены RxRichEdit, еще тулбар для редактирования...


 
MBo   (2002-11-19 16:06) [1]

в момент работы конструктора еще не существует окна combobox, поэтому перекрой CreateWnd и добавляй строки в нем.


 
Skier   (2002-11-19 16:08) [2]

>XDefender
1) Нет родителя у ComboBox_Font
2)
ComboBox_Font.Items.Add("Arial");
ComboBox_Font.Items.Add("Times New Roman");
ComboBox_Font.Items.Add("Verdana");
ComboBox_Font.Items.Add("Tahoma");
ComboBox_Font.Items.Add("Symbol");
Надо бы писать в
TMyRichEdit.CreateWnd;
begin
inherited CreateWnd;
//.............далее по тексту...
end;


 
MBo   (2002-11-19 16:10) [3]

Кстати, еще и не установлен Parent Combobox-а


 
XDefender   (2002-11-19 18:50) [4]


> ComboBox_Font.Items.Add("Arial");
> ComboBox_Font.Items.Add("Times New Roman");
> ComboBox_Font.Items.Add("Verdana");
> ComboBox_Font.Items.Add("Tahoma");
> ComboBox_Font.Items.Add("Symbol");
>
> Надо бы писать в
> TMyRichEdit.CreateWnd;
> begin
> inherited CreateWnd;
> //.............далее по тексту...
> end;

т.е. мне лучше создание и присвоение данных онных компонентов лучше делать в
procedure TMyRichEdit.CreateWnd;
Begin
inherited;

....

end;

или там нужно делать только присваивание?


 
asmith   (2002-11-19 20:55) [5]

Просто Items есть объект типа TStrings и должен создаваться перед добавлением строк в него. В конструкторе класса TCustomComboBox есть, например, такая строчка:
FItems := TComboBoxStrings.Create;


 
MBo   (2002-11-20 06:11) [6]

>asmith
не путай человека. Список строк создастся сам, но лишь после создания окна комбобокса.

>XDefender
безразлично, но imho, все же логичнее создать в Create, а заполнить в CreateWnd



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

Форум: "Основная";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-4375
Satkon
2002-11-22 14:43
2002.12.02
Как замерить время на выполнение определенного блока программы?


3-4229
iva
2002-11-14 11:08
2002.12.02
Как добавить в BDE новый Database Driver Name


1-4383
Рома
2002-11-22 15:16
2002.12.02
Help!!! Миграция с Delphi 4 Delphi 5


14-4601
~~~~
2002-11-12 14:03
2002.12.02
Ищу компаньона с целью получения вожделенного значка


14-4567
Николай Быков
2002-11-11 13:37
2002.12.02
Зачем я тут дурью маюсь уже несколько месяцев?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский