Чтение онлайн

на главную - закладки

Жанры

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

Program MyProgram;

{$APPTYPE CONSOLE}

uses

 Windows, Forms, Dialogs, SysUtils, StdCtrls, Controls; // и (или) т.п.

 …

var

 …

 SH,SW: integer;

 MainForm: TForm; // если нужна форма

 Memo: TMemo;

 // могут быть также любые
другие визуальные компоненты

 …

 // здесь могут быть процедуры и функции, т.е всё как в обычном Паскале

Begin

 … // здесь какой-то код

 { а здесь, перед выводом формы, есть два пути:}

 { так}

 FreeConsole; // Отцепиться от консоли, т.е она просто исчезнет (в случае запуска из Windows) и останется только форма

 { или так}

 // Handle:= GetForegroundWindow; // Получить Handle консоли

 // ShowWindow(Handle, SW_HIDE); // Спрятать консоль

 // а в конце, перед завершением

 // ShowWindow(Handle, SW_SHOW); // Показать консоль

 { для помещения формы в центр экрана}

 SH:= Screen.Height;

 SW:= Screen.Width;

 MainForm:= TForm.Create(nil);

 with MainForm do try

BorderStyle:= bsSizeable;

Height:= 390;

Width:= 390;

Left:= (SW - Width) div 2;

Top:= (SH - Height) div 2;

Caption:= 'Моя программа';

// здесь могут быть и другие компоненты

Memo:= TMemo.Create(MainForm);

with Memo do begin

Parent:= MainForm;

Align:= alClient;

BorderStyle:= bsNone;

Font.Name:= 'Courier New Cyr';

Font.Size:= 9;

ScrollBars:= ssVertical;

Lines.LoadFromFile('MyProgram.txt');

end;

ShowModal;

 finally

Free;

 end;

 { или можно вывести сообщение, например в случае неудачи (или наоборот)}

 with CreateMessageDialog('Текст сообщения', mtInformation, [mbOk]) do try

Caption := 'Заголовок';

ShowModal;

 finally

Free;

 end;

 // это
для второго пути, иначе она так и останется висеть свёрнутой

 // ShowWindow(Handle, SW_SHOW); // Показать консоль

End.

С уважением, Михаил Чумак. 

События приложения

Delphi 1 

…проблема в том, что когда приложение Delphi минимизировано, десктиптор окна в этом случае совершенно другой. Объект Application в действительности дескриптор собственного окна! Application.Handle является окном, которое активно при минимизированном приложении. Когда вы минимизируете ваше приложение, все формы просто прячутся (hidden). Обратите внимание на методы Application Minimize и Restore. Также обратите внимание, что у TApplication есть два недокументированных события, OnMinimize и OnRestore. Они принадлежат приложению, поскольку в TForm нет обработчиков событий, возникающих при минимизации главного окна. Немного странно. Я думаю так сделано для поддержки SDI-приложений. 

Нужны ли мне формы в сервере приложений?

Nomadic отвечает:

Да.

Необязательно, чтобы они были видимы, но должна присутствовать хотя бы одна. Чтобы сделать главную форму невидимой, установите

Application.ShowMainForm := False

в файле проекта.

Пример:

begin

 Application.ShowMainForm := False;

 Application.Initialize;

 Application.CreateForm(TForm1, Form1);

 Application.Run;

end.

Создание формы на основе строки

Обзор

В данном документе рассказывается о том, как в Delрhi можно создать экземпляр формы на основе строки, содержащей имя типа. Код примера прилагается.

На кого расчитан данный документ?

На любого программиста, имеющего начальные знания для работы с Delphi. Имеет отношение к любой версии Delphi.

Создание формы на основе строки

Чтобы можно было создать экземпляр формы на основе строки, содержащей имя типа, вы должны в первую очередь зарегистрировать данный тип в Delphi. Это выполняется функцией "RegisterClass". RegisterClass описан следующим образом:

procedure RegisterClass(AClass: TPersistentClass);

AClass – класс TPersistent. Другими словами, класс, который вы хотите регистрировать, в какой-то точке должен наследоваться от TPersistent. Поскольку все элементы управления Delphi, включая формы, соблюдают это требование, то проблем быть не должно. Но такой способ не пройдет, если регистрируемые классы наследуются непосредственно от TObject.

Поделиться:
Популярные книги

Отмороженный 8.0

Гарцевич Евгений Александрович
8. Отмороженный
Фантастика:
постапокалипсис
рпг
аниме
5.00
рейтинг книги
Отмороженный 8.0

Газлайтер. Том 14

Володин Григорий Григорьевич
14. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Газлайтер. Том 14

Ермак. Телохранитель

Валериев Игорь
2. Ермак
Фантастика:
альтернативная история
7.00
рейтинг книги
Ермак. Телохранитель

Матабар IV

Клеванский Кирилл Сергеевич
4. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар IV

Сборник коротких эротических рассказов

Коллектив авторов
Любовные романы:
эро литература
love action
7.25
рейтинг книги
Сборник коротких эротических рассказов

Идеальный мир для Лекаря 19

Сапфир Олег
19. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 19

Дочь моего друга

Тоцка Тала
2. Айдаровы
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Дочь моего друга

Свет Черной Звезды

Звездная Елена
6. Катриона
Любовные романы:
любовно-фантастические романы
5.50
рейтинг книги
Свет Черной Звезды

Кодекс Крови. Книга IV

Борзых М.
4. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга IV

Идеальный мир для Лекаря 22

Сапфир Олег
22. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 22

Попаданка в академии драконов 4

Свадьбина Любовь
4. Попаданка в академии драконов
Любовные романы:
любовно-фантастические романы
7.47
рейтинг книги
Попаданка в академии драконов 4

Сердце Дракона. Том 12

Клеванский Кирилл Сергеевич
12. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.29
рейтинг книги
Сердце Дракона. Том 12

Лолита

Набоков Владимир Владимирович
Проза:
классическая проза
современная проза
8.05
рейтинг книги
Лолита

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад