Форум: "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