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

проблема с созданием компонет в run-time е   Найти похожие ветки 

← →
Дмитрий Иванов   (2002-08-05 02:04) [0]

Доброй ночи! Не могу понять в чем проблема:((
Хочу создать 30 Image"й и расположить их одна за одной в ScrollBox"e.
Вроде делаю все правильно, но на строчке Top:=H; вылетает Exception.
Главное, если вместо ScrollBox1 писать Form1, то ошибки не будет, и все картинки расположатся как надо, только соответственно это будет на форме, а мне надо в ScrollBox"e.
Вот код:
procedure TForm1.Button1Click(Sender: TObject);
var i,H:integer;BitMap:TBitMap;
begin
H:=0;
BitMap:=TBitMap.Create;
For i:=1 to 30 do
begin
BitMap.LoadFromFile(IntToStr(i)+".bmp");
TImage.Create(ScrollBox1).Name:="Image"+IntToStr(i);
with TImage(FindComponent("Image"+IntToStr(i))) do
begin
Top:=H;
Left:=0;
AutoSize:=True;
Picture.Graphic:=BitMap;
H:=Top+Height+10;
Parent:=ScrollBox1;
end;
end;
BitMap.Free;
end;

ЗЫ Есть подозрения что не срабатывает строка TImage.Create(ScrollBox1).Name:="Image"+IntToStr(i); , только вот почему, я не знаю, ведь вроде как для AOwnera ScrollBox ничем не отличается от Form"ы...


← →
Дмитрий Иванов   (2002-08-05 02:06) [1]

Все, заработало как надо, заменил TImage.Create(ScrollBox1).Name:="Image"+IntToStr(i); на
TImage.Create(Form1).Name:="Image"+IntToStr(i);

Ну все-равно, вопрос еще открыт - почему Create"у не нравится ScrollBox как AOwner?


← →
Gonza ©   (2002-08-05 02:57) [2]

Потому что FindComponent не находит твой Image, т.к. ищет его в списке компонентов формы. Если написать ScrolBox1.FindComponent, то все будет ОК.


← →
Дмитрий Иванов   (2002-08-05 03:45) [3]

понял. спасибо.



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

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



Память: 0.45 MB
Время: 0.011 c
1-48092
ilg
2002-08-05 11:44
2002.08.15
Ширина Caption у TButton


1-48060
Axill
2002-08-02 21:17
2002.08.15
Функция PlaySound не пашет, почему?


14-48266
MAN-IN-RED
2002-07-19 13:24
2002.08.15
Где в Киеве можно купить Xbox?


1-48133
Чайник2
2002-08-01 07:15
2002.08.15
CD-ROM


3-47996
grandad
2002-07-26 10:16
2002.08.15
Нужно поставить прогу, работающую с БД accesss (mdb) от MS Office




   Наверх