Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.11;
Скачать: CL | DM;

Вниз

Как получить имя файла загруженного в TImage   Найти похожие ветки 

 
AndreySoft ©   (2004-04-20 19:27) [0]

Надо выдернуть имя файла, который в настоящий момент загружен в TImage... Загружается он туда динамически (в событии CreateForm)
...
Image1.Picture.LoadFromFile("b.bmp");...
Ну а в другом событии (Image1Click) я пытаюсь проверить его имя вот так:
...
var str:string;
...
str:=Image1.Picture.Bitmap.GetNamePath;
Label1.Caption:=str;

...
но он выдаёт в Label1 имя класса т.е. "TBitmap" а мне нужно что он туда поместил ну например тот же "b.bmp" т.е. реально имя этого файла...
Помогите пж.


 
VMcL ©   (2004-04-20 19:48) [1]

>>AndreySoft ©  (20.04.04 19:27)

Запоминай имя последнего загруженного файла в строковом поле твоего наследника TForm.


 
AndreySoft ©   (2004-04-20 20:00) [2]

а свойство то какое? на примере можешь показать?


 
VMcL ©   (2004-04-20 20:10) [3]

>>AndreySoft ©  (20.04.04 20:00) [2]

Читай книжки по Delphi. Серьёзно.

TForm1 = class(TForm)
private
 FLastFile: String;
end;


 
AndreySoft ©   (2004-04-20 20:18) [4]

Мне не пойдёт так...
мне не надо последний загруженный, т.к. их у меня несколько (TImage"ов) естественно последний загруженный файл меня не устраивает...
а как-нибудь по другому можно это сделать?


 
Mihey ©   (2004-04-20 20:22) [5]

2 AndreySoft:

Я осмелюсь и скажу, что НИКАК. Загрузилась картинка из файла в память и всё. Зачем ей хранить где-то название о файле. После загрузки ты можешь файл удалить и ничего страшного не произойдёт.

Если ты загружешь файл, то ты МОЖЕШЬ запомнить его название в переменной. Если у тебя несколько TImage, то ты можешь использовать НЕСКОЛЬКО переменных, массив, наконец.


 
AndreySoft ©   (2004-04-20 20:26) [6]

Хорошо, спасибо!
Просто я думал что можеть быть в каком-нибудь из свойств этого компонента и хранится имя файла...


 
C@N ©   (2004-04-22 15:08) [7]

Ну можно изгольнутся и проверять последние I/O события:)


 
Twinge   (2004-04-23 03:45) [8]

Попробуй создать свой визуальный компонент с материнским классом TImage и добавив туда одну переменную - типа filename:string.
Смотри:


 TImgAndName = class(TImage)
 public
 FileName:String;
 end;



//Оп-па.. только что дописал, и только после этого заметил, что VMcL уже дал идею..

Главное чтобы на проекте к этому времени уже бывало что-то класса TImage. Теперь заменяй все TImage на TImgAndName, а при загрузке из файла заполняй так же FileName, затем бери имя файла из FileName.

З.Ы.: Delphi4ever !!!


 
Twinge   (2004-04-23 04:11) [9]

Да, забыл.. это все в Type описывается. В начале юнита, там еще что-то вроде Type TForm1 = class(TForm) бывает..



Type

 TImgAndName = class(TImage)
 public
 FileName:String;
 end;


 
AndreySoft ©   (2004-04-24 00:30) [10]

Спасибо большое, но я уже разобрался и сделал одновременное присвоение, т.е. загружаю картинку и присваиваю какой-то переменной имя этого файла...
Это конечно тупо, но другого (более профессионального) выхода я не нахожу...
и всё-таки меня мучает вопрос:
Не ужели ни в одном из свойств компонента TImage не хранится имя загруженного файла (что за не здоровая хрень?)...
или по крайней мере, выдернуть это имя функцией что-то на вроде GetNamePath...
Я уже согасен на использование TOpenDialog (хотя вряд ли это поможет), просто очень большой код получается, а это не есть гуд!
Я например думаю что, чем меньше код, тем более профессионально написана прога...
Ещё раз, всем спасибо!
Ну если нельзя это обойти, прийдётся писать тупой код...

Хотя, нет! Обойти всегда можно, просто я никак не додумаю как бы это всё упрастить...
Ну да ладно... всё приходит со временем, может и до меня как-нибудь дойдёт...

З.Ы. Delphi - forever!
Builder - must die! (я конечно против C++ ничего не имею, богатый язык - не спорю, просто Билдеристы запарили пургу гнать на Delphi)

Кстати, может кто-нибудь знает хитрую особенность Delphi которая превосходит Builder и чтобы я наконец заткнул рот этим си-плас-плашникам...

З.З.Ы.: А может быть и нет никакой войны между Делфиристами и Билдеристами?...


 
Twinge   (2004-04-24 00:59) [11]

1. Это долбаное имя нигде не хранится.

2. AndreySoft, ты не прав. О профессиональности кода судят не по его количеству, а по глючности и скорости выполнения.

Z.Y.: Войны между Фанатами Delphi и Фанатами C++ нету. Вот только последние гонят, потому что им не нравится явное превосходство Delphi. Несмотря на то, что проекты на Delphi весят ощутимее больше, чем на сях, фантомных глюков из ниоткуда в Delphi не наблюдается. Писать проги намного проще. Что касается функциональности - то она одинакова у этих языков. И компоненты в основном одни и те же.

Z.Z.Y.: А вот между кем реально есть война, так это между Linuxoid"ами и фанатами дяди Билли. Так вот и тут Delphi переплюнула сю: 7 версия скркщена с Kylix (это Delphi под *nix).



Страницы: 1 вся ветка

Текущий архив: 2004.07.11;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.053 c
1-1088510769
MadMax
2004-06-29 16:06
2004.07.11
XML-RPC проблемы с загрузкой SSL библиотек


4-1085423298
ZedeS
2004-05-24 22:28
2004.07.11
запуск программы с параметром


1-1088486970
kvictor
2004-06-29 09:29
2004.07.11
Управление диаграммой Excel.


14-1088009043
Viktor
2004-06-23 20:44
2004.07.11
Ошибка при запуске


1-1088327660
Гость_Александр
2004-06-27 13:14
2004.07.11
Форма "моргает". Как сделать перерисовку быстрой?