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

Вниз

Проблма при создании компонента 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
6-4533
Darts
2002-10-04 15:00
2002.12.02
Как в WebBrowser отобразить html c рисунками?


1-4302
MaXie
2002-11-21 12:20
2002.12.02
Excel и Delphi!


14-4598
Дремучий
2002-11-11 22:40
2002.12.02
Только через WebMoney или EGold...


7-4650
Evolution Q
2002-09-27 15:05
2002.12.02
Помогите с отключением мыши!


3-4217
Jen N
2002-11-14 11:25
2002.12.02
Есть ли в BDE команда для копирования файлов баз данных?