Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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 настоятельно не рекомендуется что-либо вставлять


Наверх

Титульная страница Поиск, карта сайта Написать письмо