Текущий архив: 2003.09.11;
Скачать: CL | DM;
Вниз
Узнать имя картинки загруженной в Image Найти похожие ветки
← →
Menel (2003-09-01 16:27) [0]Хорошего дня!
Вопрос: После того, как загружена картинка в TImage могу ли я узнать имя ее (картинки), допустим кликнув по Image получить имя, путь... графического файла.
Я так понимаю, что загруженная графика хранится в ресурсах, но может есть способ...
← →
Skier (2003-09-01 16:31) [1]
> могу ли я узнать имя ее (картинки), допустим кликнув по
> Image получить имя, путь...
Нет.
← →
Menel (2003-09-01 16:33) [2]Что ж лаконично и жестоко:)
← →
Palladin (2003-09-01 16:36) [3]Нет, не сможешь. Но можно хранить в TImage.Tag как PChar.
← →
Skier (2003-09-01 16:36) [4]>Menel (01.09.03 16:33)
А зачем это понадобилось ?
← →
Menel (2003-09-01 16:47) [5]Ой, сложно в двух словах рассказать: представляешь карты Таро ну и вот в принципе пишу гадание...
А упомянутое выше надо было для интерпритации карты (изначально она перевернутая, т.е. создается объект и открывается в разное время)...
← →
Menel (2003-09-01 16:51) [6]В принципе, все я уже нашел выход - буду делать инспектор:) карт, где при раскладе (создании Image) рандомом будет заносится строка с именем карты, короче загорелся в голове светодиодик:))
А Tag у меня занят (там идентификатор языка приложения) - стараюсь сделать поддержку языков...
← →
Skier (2003-09-01 16:58) [7]>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, было бы полем класса.
← →
Menel (2003-09-01 17:02) [8]Спасибо за информацию, обдумаю, говоря более я использую не совсем чистый Timage, а TRotateImage (на торри нашел) мне же вращать карты надо.
← →
Skier (2003-09-01 17:03) [9]>Menel (01.09.03 17:02)
> я использую не совсем чистый Timage, а TRotateImage
В данном случае это не принципиально.
← →
Menel (2003-09-01 17:22) [10]Спасибо, я это знаю:)
Страницы: 1 вся ветка
Текущий архив: 2003.09.11;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.007 c