Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.025 c
14-33749
Marser
2003-08-20 21:30
2003.09.11
Довольно полный список


1-33666
Aleksandr3
2003-09-01 12:56
2003.09.11
*.DCU


1-33658
Ryabinin Grisha
2003-08-30 05:07
2003.09.11
Линейный график


6-33701
Delphin
2003-07-09 20:51
2003.09.11
Проблема с удалением письма (IdPop31)


14-33804
Igor_thief
2003-08-22 13:48
2003.09.11
Как проверить ...