![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
получения шапки программы через OpenDialog
Hapastiks © (2010-07-16 11:52:00)На одном из форумов я задал этот вопрос, ответа не дали, пришел к вам.
Собствено вопрос: как получить шапку программы через OpenDialog
Плохиш (2010-07-19 10:49:00) [1]
> Hapastiks (18.07.10 17:26) [26]
Больше двух дней. Тут без программиста не обойтись, нанимайте.
Dennis I. Komarov (2010-07-19 10:05:00) [2]Во как:
TForm(OpenDialog.Owner).Caption
Германн (2010-07-18 23:36:00) [3]
> Например, есть у него окно текстового редактора, в заголовке
> которого есть имя файла.
Ага.
> Под шапкой я имел в виду caption программы типа 'Form1'
> или 'Opera'
0x00FF00 (2010-07-18 22:16:00) [4]
> Не все окна несут следы FileName.
А ёгурты не все одинаково полезны, и что? =)
Я просто высказал догадку о том, что хоткл сказать топикстартер.
Например, есть у него окно текстового редактора, в заголовке которого есть имя файла. Выбираем файл → ищем подходящее окно → закрываем. PROFIT!
Leonid Troyanovsky (2010-07-18 21:54:00) [5]
> 0x00FF00 (18.07.10 21:48) [30]
> H = FindWindow(nil, PChar(OpenDialog1.FileName));
Не все окна несут следы FileName.
--
Regards, LVT.
0x00FF00 (2010-07-18 21:48:00) [6]О, блин!
Кажется, мне удалось протелепатировать, что имел в виду аффтор!
Нужно в качестве "Шапки" использовать имя файла, полученного после обращения к OpenDialog!
H = FindWindow(nil, PChar(OpenDialog1.FileName));
0x00FF00 (2010-07-18 20:05:00) [7]Hapastiks, а в чём, собственно, состоит задача?
Откуда пришла необходимость вызова OpenDialog?
Юрий Зотов (2010-07-18 18:24:00) [8]
> Hapastiks (18.07.10 17:26) [26]
Если выкинуть вот эту строку:
if OpenDialog.executed=true then
то что изменится?
Ничего не изменится.
Тогда при же чем тут OpenDialog?
Ни при чем. Вам об этом говорят-говорят - а толку ноль, Вы все свое гнете.
Зачем задавать вопросы, если ответов Вы все равно не слушаете?
Германн (2010-07-18 17:28:00) [9]
> Так как получить заголовок чужого окна, через Opendialog
> чтобы потом его закрыть?
Никак.
Hapastiks (2010-07-18 17:26:00) [10]"шапкой" я назвал именно панель заголовка окна. Так как получить заголовок чужого окна, через Opendialog чтобы потом его закрыть?
Через ету процедуру
var
H: hWnd;
Second: string;
begin
if OpenDialog.executed=true then
{Получениє "Шапки"}
H = FindWindow (nil, "Шапка");
if H = 0 then exit;
SendMessage (H, WM_CLOSE, 0,0);
end;
Deltas (2010-07-18 16:59:00) [11]Это и так понятно, что имеется в виду панель заголовка окна, так как у программы нет никаких заголовков. И то, что имеется в виду скорее всего главное окно, доказывают примеры 'Form1' и т.д.
Кнопка, которую ты видишь на панели задач - это кнопка обычного окна Windows, дескриптор которого хранится в объекте класса TApplication. Окно имеет нулевые размеры и расположено в центре экрана. И свойство Application.Title возвращает именно строку на панели заголовка (title bar) этого "секретного" окна.
P.S. Для любого окна строка в панели заголовка (а также системное меню) совпадает со строкой и меню кнопки на панели задач. И в Delphi они различаются только благодаря этому "секретному" окну. Если не ошибаюсь, начиная с Delphi 2006 это было устранено, т.к. вылезло боком в версиях Windows, начиная с Windows Vista.
Что вообще автор мог иметь в виду под "шапкой"? Судя по "Form1" под "шапкой" подразумевается именно панель заголовка окна, которая у окна класса TApplication просто не видна, т.к. оно имеет нулевые размеры.
Anatoly Podgoretsky (2010-07-18 16:50:00) [12]> Демо (18.07.2010 16:34:23) [23]
"caption программы"
Вот откуда взялась шапка - Шаптион программы
Демо (2010-07-18 16:34:00) [13]
> Deltas © (18.07.10 15:43) [22]
> И при чем тут всплывающая подсказка?> Hapastiks (17.07.
> 10 10:44) [9] > Под шапкой я имел в виду caption программы
> типа 'Form1' > или 'Opera'
Обрати внимание на выражение "caption программы".
Здесь где-то про формы слова есть?
Deltas (2010-07-18 15:43:00) [14]И при чем тут всплывающая подсказка?
> Hapastiks (17.07.10 10:44) [9]
> Под шапкой я имел в виду caption программы типа 'Form1'
> или 'Opera'
Демо (2010-07-18 14:29:00) [15]
> Deltas © (18.07.10 14:15) [19]
> > Демо © (18.07.10 11:44) [16]> Используй Application.
> Title.Application.MainForm.Caption, если уж на то пошло.
> Application.Title вернет заголовок "секретного" окна.
Нет, именно Application.Title.
Всплывающий хинт его возвращает в панели задач.
Демо (2010-07-18 14:27:00) [16]
> Leonid Troyanovsky © (18.07.10 11:56) [17]
> > Демо © (18.07.10 11:44) [16] > Используй Application.
> Title.И где тут 'Opera'.
Если в опере будет запрошено Application.Title, то опера выдаст именну ту строку, которую показывает всплавающий хинт.
То же самое и со своей программой.
Deltas (2010-07-18 14:15:00) [17]
> Демо © (18.07.10 11:44) [16]
> Используй Application.Title.
Application.MainForm.Caption, если уж на то пошло. Application.Title вернет заголовок "секретного" окна.
Deltas (2010-07-18 14:11:00) [18]
> Hapastiks (16.07.10 11:52)
>
> На одном из форумов я задал этот вопрос, ответа не дали,
> пришел к вам.
> Собствено вопрос: как получить шапку программы через OpenDialog
С такой постановкой вопроса долго ты еще будешь скитаться по разным форумам. :)
Leonid Troyanovsky (2010-07-18 11:56:00) [19]
> Демо © (18.07.10 11:44) [16]
> Используй Application.Title.
И где тут 'Opera'.
--
Regards, LVT.
Демо (2010-07-18 11:44:00) [20]
> Hapastiks (16.07.10 11:52)
> На одном из форумов я задал этот вопрос, ответа не дали,
> пришел к вам. Собствено вопрос: как получить шапку программы
> через OpenDialog
TOpenDialog для этого не нужен.
Используй Application.Title.