Блог программистов



F.A.Q.Pblog

1й год Форума программистов 2006-2007

Как правильно программно создавать объекты на форме

Есть двумерный массив: Image: Array[1..9, 1..10] Of TImage;
Нужно выделить под него память, разместить все объекты на форме и загрузить в них изображения. С памятью и размещением я разобрался, а вот с загрузкой изображения никак.

Вот код:
Код:
unit MainUnit; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TPole = Record Obj: Byte; Turn: Byte; Status: Byte; End; TMainForm = class(TForm) procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private Procedure SetPole; public end; var MainForm: TMainForm; Pole: Array[1..9, 1..10] Of TPole; Image: Array[1..9, 1..10] Of TImage; implementation {$R *.dfm} Procedure TMainForm.SetPole; Var X, Y: Byte; Begin For X:=1 To 9 Do For Y:=1 To 10 Do Image[X,Y]:=TImage.Create(Owner); For X:=1 To 9 Do For Y:=1 To 10 Do Begin Image[X,Y].Height:=40; Image[X,Y].Width:=40; End; //Image[1,1].Picture:=TPicture.Create; - эта сторчка ничего не даёт. Image[1,1].Left:=5; Image[1,1].Top:=5; Image[1,1].Picture.LoadFromFile('img/000.ico'); {For X:=1 To 9 Do это тоже ничего. For Y:=1 To 10 Do Image[X,Y].Visible:=True;} End; procedure TMainForm.FormCreate(Sender: TObject); begin SetPole; end; procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction); Var X, Y: Byte; begin For X:=1 To 9 Do For Y:=1 To 10 Do Image[X,Y].Free; end; end.
Когда пишешь Image[1,1].Picture. , то после точки ничего не появляется. А когда добавляешь объект на форму сам, то всё впорядке.


Просмотр ответов:
http://programmersforum.ru/showthread.php?t=2270


Другие вопросы:
Как организовать поиск интервала дат через SQL при условии, что начальная и конечная даты должны вводиться пользователем.
Выход из программы
Динамическое создание компонентов Edit
Коррекция кода программы в режиме Runtime
Как ограничить вводимый текст в Edit?



<<<Назад    Вперёд>>>