Главная страница
    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.47 MB
Время: 0.032 c
8-1082962933
Имя2
2004-04-26 11:02
2004.07.11
Воспроизведение из memorystream


1-1087796493
ПсихЪ
2004-06-21 09:41
2004.07.11
Функции из DCU


1-1088396544
Артем К.
2004-06-28 08:22
2004.07.11
Кто-нить видел компонент для ввода IP-адреса?


14-1087575408
Алхимик
2004-06-18 20:16
2004.07.11
Завтра экзамен. Горю. :-)


4-1086185977
K.o.Z
2004-06-02 18:19
2004.07.11
TOpenDialog





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский