Главная страница
    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.45 MB
Время: 0.006 c
14-4623
Anar
2002-11-12 23:14
2002.12.02
Не хочу трепаться, но, честно, я не вру!


8-4509
Cr@sh
2002-08-07 13:58
2002.12.02
Подскажите как расчитать cursor position относительно угла TImage


3-4194
Yazilimci
2002-11-13 15:11
2002.12.02
Dlya ADO


14-4619
TovAV
2002-11-12 19:18
2002.12.02
D6


3-4192
Enig
2002-11-13 14:23
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский