![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Application.Title [D4, D5, D6, Win2k]
Толик © (2002-05-30 12:25:00)Уважаемые мастера. В одной из рассылок встретил вопрос про Application.Title и мне вспомнилась проблема, суть которой в своё время я так и не смог понять. А проблема в следующем: есть стандартный файл проекта
begin
Application.Initialize();
Application.Title := "заголовок";
...
Application.Run();
end.
вопрос: почему в ФАЙЛЕ ПРОЕКТА св-ву Application.Title можно ТОЛЬКО ПРИСВАИВАТЬ значения? Например, нельзя написать ShowMessage(Application.Title) - сразу же становятся недоступными кнопка компиляции проекта (ессно F9 тоже не работает). Хотя следующее работает:
var
pStr: pchar;//про выделение и осв. памяти я помню :)
begin
Application.Title := "заголовок";
...
GetWindowText(Application.Handle, pStr, 255);
ShowMessage(pStr);
...
end.
Причём это не зависит ни от версии Делфей, ни от её переустановки. М.б. я что-то упустил и в dpr-файле св-во Title является read-only???
Внук (2002-05-30 16:12:00) [1]Толик © (30.05.02 16:04)
Есть и другой способ:
Создаем новый модуль
Unit MyTitle;
...
function GetAppTitle:string;
begin
Result:=Application.Title;
end;
...
В dpr-файле пишем
uses MyTitle;
...
GetAppTitle;
...
Толик (2002-05-30 16:04:00) [2]ОК, значит сойдёмся на том, что если в dpr-файле хочется узнать значение Application.Title, то надо пользоваться GetWindowText. Видимо так того хочет Borland.
Спасибо всем откликнувшимся.
Игорь Шевченко (2002-05-30 15:53:00) [3]Я же не писал, что запрещается. Я писал, что не рекомендуется :-)
Внук (2002-05-30 15:52:00) [4]>>Толик ©
А категорически и не запрещается. Я могу привести в пример вполне работоспособную и содержательную программу, состоящую только из dpr-файла (даже res-файл не требуется). Однако, речь идет об отдельных инструкциях, управление которыми происходит из IDE (точнее, IDE, а не только компилятор, их распознает), поэтому их трогать не рекомендуется.
Толик (2002-05-30 15:21:00) [5]to Игорь Шевченко ©:
Читаем:
Project file
Because Delphi maintains the project file, you should not modify(т.е. не нужно, но можно) it manually. You can(именно МОЖЕМ, а не ДОЛЖНЫ) change the project file by using the Project Manager.
Казалось бы документация от Borland, а нигде не написано про то, что КАТЕГОРИЧЕСКИ ЗАПРЕЩАЕТСЯ менять dpr-файл руками...
М.б. это просто глюк (или баг)?
eSKey (2002-05-30 14:58:00) [6]
> Игорь Шевченко
Хых, а в каком разделе?
Игорь Шевченко (2002-05-30 14:23:00) [7]Почитать можно в документации от Borland"а
eSKey (2002-05-30 14:17:00) [8]Кстати, еще такая деталь - если делать Application.Title:="заголовок", это проходит, а вот если сделать Application.Title:=strMyHeader (причем strMyHeader - константа), вылетает с ошибкой. Проходит перенос этой строки в Create главной формы.
Как это объясняется?
Толик (2002-05-30 13:07:00) [9]to Игорь Шевченко ©:
А про то, что нельзя (не рекомендуется) править руками dpr-файл где-нибудь можно почитать (ссылки)? Какие причины (последствия) этого могут быть? Очень часто бывает необходимо выполнять некие свои действия в файле проекта ещё до создания форм (я вообще все формы создаю руками) например спросить password, проверить наличие файлов, что-нибудь куда-нибудь скопировать, да мало ли чего ещё! А если учесть то, что бывают проги вооюще без форм, то без написания dpr-файла руками вообще не обойтись.
А как же насчёт Application.Title?
Игорь Шевченко (2002-05-30 12:39:00) [10]dpr управляется и анализируется средой обычно. Поэтому между строками Application.Initialize и Application.Run настоятельно не рекомендуется что-либо вставлять