Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.02.2014, 01:36
Аватар для Помидоркин
Помидоркин Помидоркин вне форума
Начинающий
 
Регистрация: 07.10.2012
Адрес: Дедовск
Сообщения: 110
Версия Delphi: Rio 10.3
Репутация: 10
По умолчанию tcaption и tfilename

Объясните пожалуйста разницу между tcaption и tfilename.
Собсвенно проблемма: сохраняю имя файла в caption, а когда пытаюсь открыть файл, взяв имя обратно из caption прога говорит что такого файла нет.
Ответить с цитированием
  #2  
Старый 18.02.2014, 01:55
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Вся разница в путях к файлу
Ответить с цитированием
  #3  
Старый 18.02.2014, 02:07
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Помидоркин
Объясните пожалуйста разницу между tcaption и tfilename.
Разница практически в условностях. На самом деле это обычные String-и, хоть и являются отдельными типами.
Цитата:
Сообщение от Помидоркин
Собсвенно проблемма: сохраняю имя файла в caption, а когда пытаюсь открыть файл, взяв имя обратно из caption прога говорит что такого файла нет.
Ну так может такого файла действительно нет (к тому времени)? А если сохранять не в tcaption и tfilename, а в обычный String, прога не говорит что такого файла нет?
Ответить с цитированием
  #4  
Старый 18.02.2014, 02:21
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

У товарища топикстартера такая задача, судя по предыдущим темам - он в капшенах итемов меню держит имена файлов, подлежащих к загрузке после выбора пункта. По-ходу, в Caption заносится лишь напр. 'Readme.txt', без путей и естественно, в папке с прогой такого файла не находится. Я бы ещё в Hint клал полный путь до файла и его забирал, но наверное лучший вариант, это класть имена с путями в StringList и связывать строки по индексу с индексом пункта меню
Ответить с цитированием
  #5  
Старый 18.02.2014, 10:41
Аватар для Помидоркин
Помидоркин Помидоркин вне форума
Начинающий
 
Регистрация: 07.10.2012
Адрес: Дедовск
Сообщения: 110
Версия Delphi: Rio 10.3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
...судя по предыдущим темам - он в капшенах итемов меню держит имена файлов, подлежащих к загрузке после выбора пункта...
все верно
Цитата:
Сообщение от Alegun
По-ходу, в Caption заносится лишь напр. 'Readme.txt', без путей и естественно, в папке с прогой такого файла не находится.
не верно, в капшене полный путь, и файл существует, если вместо открытия файла написать
Код:
ShowMessage((Sender as TMenuItem).Caption)
тогда

меня смущает подчеркнутая буква 'D', у других динамически созднных пунктов подчеркнуты другие буквы, в самом меню подчеркивания нет, у пунктов добавленных на этапе проектирования нет подчеркивания ни в меню ни в окне ShowMessage.
Добавил
Код:
mi.AutoHotkeys:= maParent; //mi: TMenuItem
как у пунктов созданных на этапе проектирования - подчеркивание остается, вариант - maManual картины не меняет.
Цитата:
Сообщение от Alegun
Я бы ещё в Hint клал полный путь до файла и его забирал,
такой вариант тоже пробовал, но поскольку хинт почему-то не отображается, записал полный путь в капшн
Цитата:
Сообщение от Alegun
но наверное лучший вариант, это класть имена с путями в StringList и связывать строки по индексу с индексом пункта меню
возможно так и придется сделать, но не хотелось бы вводить лишний stringlist
..............
опа!
Код:
Clipboard.AsText:= (Sender as TMenuItem).Caption;
строчка вставлена в Notepad++ кодировка UTF-8(без BOM) -
&D:\!Programming\Piska\копия1.txt

Последний раз редактировалось Помидоркин, 18.02.2014 в 10:56.
Ответить с цитированием
  #6  
Старый 18.02.2014, 11:06
Аватар для Помидоркин
Помидоркин Помидоркин вне форума
Начинающий
 
Регистрация: 07.10.2012
Адрес: Дедовск
Сообщения: 110
Версия Delphi: Rio 10.3
Репутация: 10
По умолчанию

Проблемма решена
Код:
  s:= (Sender as TMenuItem).Caption;
  s:= StringReplace(s,'&','',[]);
Ответить с цитированием
  #7  
Старый 18.02.2014, 12:09
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Хорошая новость, самому найти решение это большая радость, бодрит
Но всё же посмотрите пжлст вот это, может что и будет для вас новенького. Собирал на скорую руку, извнт
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:53.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter