Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];

Вниз

Как получить имя файла загруженного в 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 вся ветка

Форум: "Media";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.035 c
14-1088020804
Anatoly Podgoretsky
2004-06-24 00:00
2004.07.11
Юрий Зотов с днем рождения!


3-1086887593
ceval
2004-06-10 21:13
2004.07.11
Подскажите как вывести в DBGrid следующие:


3-1087283159
denis24
2004-06-15 11:05
2004.07.11
Как проверить существование таблицы на сервере БД


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


1-1088514418
homer
2004-06-29 17:06
2004.07.11
Delphi 5 не понимает свои коды!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский