Текущий архив: 2002.07.04;
Скачать: CL | DM;
Вниз
Формирование нового компонента Найти похожие ветки
← →
INCOGNITO (2002-06-23 13:04) [0]У меня есть массив состоящий из объектов типа TImage. Как Конкретному элементу массива присвоить изображение?
← →
rhf (2002-06-23 13:10) [1]обратись к нему по индексу и присвой........
← →
McSimm (2002-06-23 13:10) [2]Изображение в каком виде существует?
Элементы массива типа TImage - созданы (Create)?
Например так
ImgMassiv[I].Assign(Izobr)
← →
Юрий Зотов (2002-06-23 13:16) [3]var
Images: array of TImage;
...
Images[i].Picture.Assign(...);
или
Images[i].Picture.LoadFromClipboardFormat(...);
или
Images[i].Picture.LoadFromFile(...);
и т.д.
То есть, сначала пишем Images[i] - это будет одиночный TImage. Соответственно, дальше ставим точку и пишем все то же самое, что писали бы для одиночного TImage.
← →
INCOGNITO (2002-06-23 14:53) [4]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Zveno: TImage;
Image2: TImage;
procedure FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
Mas = array[1..300]of TImage;
var
Form1 : TForm1;
start, stop : bool;
speed, directH, directV : integer;
Images : Mas;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
//А сдесь мне нужно чтоб первые три элемента массива содержали такой же рисунок. как и в Zveno
Images[i].Picture.Assign(Zveno); //Такой способ не прокатил
end;
← →
rhf (2002-06-23 15:01) [5]Images[i].Assign(Zveno)
← →
Юрий Зотов (2002-06-23 15:06) [6]Естественно, не прокатил. Это же пример, а не готовый код, думать-то все равно надо. Во-первых, любой объект надо сначала создать, а уж потом использовать. Во-вторых, Assign, как правило, работает для однотипных объектов. В-третьих, переменную i надо все же объявить, наверное?
procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
begin
for i := 1 to 3 do
begin
Images[i] := TImage.Create(Self);
Images[i].Picture.Assign(Zveno.Picture)
end
end;
← →
INCOGNITO (2002-06-23 15:06) [7]>> Images[i].Assign(Zveno)
Пишет, что ошибка! www.incognito.hut.ru/Delphi/error.jpg
← →
rhf (2002-06-23 15:08) [8]не вру......
попробуй так
images[i].picture:=zveno.picture;
← →
INCOGNITO (2002-06-23 15:14) [9]
procedure TForm1.FormCreate(Sender: TObject);
var
i : integer;
begin
Images[1] := TImage.Create(Self);
Images[1].Picture.Assign(Zveno.Picture);
Images[1].Visible:=true;
Images[1].Top:=10;
Images[1].Left:=10;
end;
При таком коде ошибки нет, но и изображения на формен е появляется!
← →
MBo (2002-06-23 15:16) [10]Images[1] := TImage.Create(Self);
Images[1].Parent:=Self;//вставь
Images[1].Picture.Assign(Zveno.Picture);
← →
Юрий Зотов (2002-06-23 15:17) [11]Посмотрел ошибку. Естественно, не создан объект. См. выше, все должно быть OK.
> rhf © (23.06.02 15:08)
Присваивание внутреннего объектного свойства (как в данном случае) и Assign - это одно и то же. Присваивание вызывает метод Set, а тот вызывает Assign. Это стандарт - чтобы не было утечек памяти за счет потери ссылки на внутренний объект.
← →
INCOGNITO (2002-06-23 15:21) [12]Ураа! Работает!
Всем огромное спасибо
← →
Юрий Зотов (2002-06-23 15:29) [13]ОЧЕНЬ советую капитально проработать вот эту статью:
http://www.delphikingdom.com/helloworld/runtime_comp.htm
Гарантирую - многие проблемы сразу исчезнут.
Страницы: 1 вся ветка
Текущий архив: 2002.07.04;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.005 c