Главная страница
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.013 c
8-33696
Алексей
2003-05-14 16:00
2003.09.11
DelphiX и DirectX


7-33832
Hermit
2003-06-25 19:40
2003.09.11
Как определить версию Windows


1-33592
Леонид
2003-08-29 03:24
2003.09.11
Нужно заблокировать в 1 из форм Alt + F4.


14-33747
Герой
2003-08-20 15:38
2003.09.11
эффективная флудилка


14-33762
Viktor Kushnir
2003-08-19 08:58
2003.09.11
Патентование