Дізнатися ім'я картинки завантаженої в 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
В даному випадку це не принципово.