Вниз
Скачать: CL | DM;

Frame в dll   Найти похожие ветки 

← →
Ekaterina ©   (2002-08-15 10:10) [0]

Есть dll. В ней есть фрейм и форма. Экспортируется процедура, которая помещает фрейм на форму.
procedure Test;
var f:TFrame1;
begin
Form2:=TForm2.Create(Application);
try
f:=TFrame1.Create(Form2);
f.Parent:=Form2;
Form2.Show;
Application.ProcessMessages;
Sleep(2000);
finally
f.Free;
form2.Free;
end;
end;

Это вроде работает. Теперь берём на фрейм помещаем ComboBox и задаём любой непустой Items (если пустой, то всё нормально).
На строке f:=TFrame1.Create(Form2); получаем ошибку:
"Error reading ComboBox1.Items.Strings: Control "Frame1" has no parent window".
Что надо сделать???


← →
Skier ©   (2002-08-15 11:33) [1]

>Ekaterina


procedure Test;
var f:TFrame1;
begin
Form2:=TForm2.Create(Application);
try
f:=TFrame1.Create(Form2);
f.Parent:=Form2;
f.ComboBox1.Items.Add("New Item");
Form2.Show;
Application.ProcessMessages;
Sleep(2000);
finally
f.Free;
form2.Free;
end;
end;


← →
Ekaterina ©   (2002-08-15 11:38) [2]

Это, конечно, способ обойти проблему, но не её решение. Интересно всё-таки, в чём ошибка в моём варианте.


← →
Skier ©   (2002-08-15 11:57) [3]

>Ekaterina

> Интересно всё-таки, в чём ошибка в моём варианте.


Окно ComboBox-а ещё не создано, а он уже пытается отрисовывать
свои Items-ы.

Вообще-то можно написать свой класс TYourComboBox и
в перекрытом методе CreateWnd ( после inherited !)
задавать нужные Items-ы.


← →
Ekaterina ©   (2002-08-15 12:04) [4]

Вообще-то, если дело происходит не в dll, то работает и так. Всё создаётся нормально и с Items-ами. И вообще, он не должен пытаться отрисовывать Items-ы, пока не попытается отрисовывать форму. Сперва создаётся форма, потом все её компоненты, вместе с ComboBoxом должен создаться и Items. А рисование происходит после Form2.Show.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
3-84879
SemFLY
2002-08-06 00:47
2002.08.26
Почему содержимое DBGrid не сохраняется в базу ???


1-85061
kserg@ukr.net
2002-08-14 13:57
2002.08.26
ошибка QReport-a - что означает?


14-85233
AL2002
2002-07-31 15:32
2002.08.26
Опять про пятнашки


3-84929
Иван
2002-08-06 08:36
2002.08.26
Пароли пользователей


14-85259
Snake bite
2002-08-01 22:43
2002.08.26
ZyXEL Omni 56K




   Наверх