Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.04;
Скачать: [xml.tar.bz2];

Вниз

Формирование нового компонента   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
7-10021
SerVS - S
2002-04-05 16:43
2002.07.04
Код выхода из программы


1-9797
Shrek
2002-06-24 00:31
2002.07.04
Формы без 3D. Нет обёмных кнопок.


3-9762
SergeiGenko
2002-06-11 11:38
2002.07.04
ExpressQuantumGrid Suite


6-9936
der
2002-04-19 14:04
2002.07.04
Как программно нажать на кнопку Submit?


3-9704
Solod
2002-05-31 10:30
2002.07.04
Проблема с фильтрацией TTable.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский