Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.015 c
3-9769
VikOs
2002-06-13 16:22
2002.07.04
Query


1-9830
DKalinin
2002-06-24 15:16
2002.07.04
Как найти MDIChild и сделать его активным


14-9967
Аня
2002-05-30 14:35
2002.07.04
Создание справочной системы


14-9987
IronHawk
2002-05-23 14:04
2002.07.04
СПЕЦ ВЕТКА записи на Киевскую встречу Мастаков!!!


7-10034
Лёха
2002-04-07 16:52
2002.07.04
Может вам это покажется дурацким вопросом, но как создать окно св