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.