Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Delphi 7. Динамическое появление картинок с определенными условиями.

宇宙の外から Профи (530), на голосовании 7 лет назад
Как создать динамические image компоненты, которые будут "привязаны" к другим image компонентам, с последовательным появлением и местом положения?
К примеру, в мемо заполнено 10 строк, в каждой из этих строк всего по одному символу.
После нажатия на кнопку, создаются картинки, местоположение которых сдвигается на left+50, и допустим после 5-го создания, картинки сдвинутся на top+50 и вернуться на left=0 и тд.
Дополнен 7 лет назад
var
Form1: TForm1;
img: timage;
l:integer=-50;
t:integer=0;
n:integer=-1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
l:=l+50;
n:=n+1;
if n>=3 then begin
t:=t+50; n:=0; l:=0; end;
img:=timage.Create(form1);
img.Parent:=form1;
img.Left:=l;
img.Top:=t;
img.Width:=50;
img.Height:=50;
img.Stretch:=true;
img.Transparent:=true;
img.Picture:=image1.Picture;
end;

Вот это пока всё, что у меня получилось. Иначе не знаю как.
Голосование за лучший ответ
www www Искусственный Интеллект (123791) 7 лет назад
var imagemass: array[1..сколько надо] of timage;

for i:=1 to сколько надо do begin
imagemass[i]:=timage.create;
и дальше присваиваете свежесозданному имаджу ownera,
выставляете top и left
делаете, например loadfromfile
и refresh если надо или поднимаете нужный Bitmap из коллекции...
end;

После завершения работы не забудьте за собой этот массив подчистить чтобы не потекла память...
宇宙の外からПрофи (530) 7 лет назад
Не забуду =)

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
img.free;
end;
www www Искусственный Интеллект (123791) Ага... тока в цикле по всем созданным и не забыть присвоить nil
宇宙の外からПрофи (530) 7 лет назад
Скажу проще.
Возьму из контекста.

"поднимаете нужный Bitmap из коллекции...
end;

После завершения работы не забудьте за собой этот массив подчистить чтобы не потекла память..."
Вот как это сделать?
www www Искусственный Интеллект (123791) А у вас создана коллекция битмапов (ImageList)? Тогда простым присвоением... Подчищать так же в цикле for i:=1 to сколько надо do begin imagemass[i].free; imagemass[i]:=nil; end;
Похожие вопросы