Форум: "Основная";
Текущий архив: 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