Дізнатися ім'я картинки завантаженої в image

Дізнатися ім'я картинки завантаженої в Image

Питання: Після того, як завантажена картинка в TImage чи можу я дізнатися ім'я її (картинки), припустимо клікнувши по Image отримати ім'я, шлях. графічного файлу.

Я так розумію, що завантажена графіка зберігається в ресурсах, але може є спосіб.


> Чи можу я дізнатися ім'я її (картинки), припустимо клікнувши по
> Image отримати ім'я, шлях.

Ні.

Що ж лаконічно і жорстоко :)

Ні, не зможеш. Але можна зберігати в TImage.Tag як PChar.

> Menel (01.09.03 16:33)
А навіщо це знадобилося.

Ой, складно в двох словах розповісти: уявляєш карти Таро ну і ось в принципі пишу ворожіння.

А згадане вище треба було для інтерпретації карти (спочатку вона перевернута, тобто створюється об'єкт і відкривається в різний час).

В принципі, все я вже знайшов вихід - буду робити інспектор :) карт, де при розкладі (створення Image) Рандома буде заноситься рядок з ім'ям карти, коротше загорівся в голові светодіодик :))

А Tag у мене зайнятий (там ідентифікатор мови додатки) - намагаюся зробити підтримку мов.

> Menel (01.09.03 16:47)

> А згадане вище треба було для інтерпретації карти

Думаю що тобі цілком може знадобиться (в майбутньому) не тільки ім'я файлу, але і ще якась інформація про карту, а по сему.

1) У всіх нащадків TComponent (а TImage є таким) є
св-во Tag спеціально призначене для зберігання інформації користувача
інф-ції про об'єкт. І це св-во ти можеш ісплльзовать в
своїх "підступних" цілях, наприклад так.

type
TCardInfo = packed record
ciImageName. String;
ciDown. Boolean; // "сорочкою" вгору
//і т.д.
end; // TCardInfo
PCardInfo = ^ TCardInfo;

var
ACardInfo. PCardInfo;
begin
//.
New (ACardInfo);
with ACardInfo ^ do begin
// занесення ін-ції про мапі
end; // with
YourImage.Tag: = Integer (ACardInfo); // "прив'язуєш" ін-цію про карту до YourImage
//.
//.
with PCardInfo (YourImage.Tag) ^ do begin
// робота з ін-цією про мапі
end; // with
//.
end;

Не забудь потім звільняти ін-цію про карту. тобто Dispose (PCardInfo (YourImage.Tag));

2) Але найкращий варіант це написати свій власний клас. де
TImage, було б полем класу.

Дякую за інформацію, обдумаю, кажучи більш я використовую не зовсім чистий Timage, а TRotateImage (на Торрі знайшов) мені ж обертати карти треба.

> Menel (01.09.03 17:02)

> Я використовую не зовсім чистий Timage, а TRotateImage

В даному випадку це не принципово.