Переустановка Windows - как разморозка холодильника. Помогает, но ненадолго...
Создание консольных приложений. (Об этом в советах немножко есть, но очень не
конкретно)
Как уже отмечалось в совете [000092] (да и в Хелпе) в консольных приложениях
в Delphi можно использовать в принципе весь дельфийский арсенал. Правда и
работать они будут лишь под Windows. (Кстати этот способ можно применить для
модернизации программ на Паскале под Windows).
Этот код был использован для вывода результатов работы программы проверки
(неважно чего) чтобы не приходилось смотреть файл с результатами. Главная
проблема была в том, что консоль (если запуск был из Windows) оставалась висеть
позади формы до её закрытия. Вреда конечно никакого, но не приятно. Если же
запуск из Нортона или т.п., то всё идёт нормально.
program MyProgram;
{$APPTYPE CONSOLE}uses
Windows, Forms, Dialogs, SysUtils, StdCtrls, Controls; // и (или) т.п.
...
var
...
SH, SW: integer;
MainForm: TForm; // если нужна форма
Memo: TMemo;
// могут быть также любые другие визуальные компоненты
...
// здесь могут быть процедуры и функции, т.е вс? как в обычном Паскалеbegin
... // здесь какой-то код{ а здесь, перед выводом формы, есть два пути:}{ так}// Отцепиться от консоли, т.е она просто исчезнет (в случае запуска из Windows)// и останется только форма
FreeConsole;
{ или так}// Handle:= GetForegroundWindow; // Получить Handle консоли// ShowWindow(Handle, SW_HIDE); // Спрятать консоль// а в конце, перед завершением// ShowWindow(Handle, SW_SHOW); // Показать консоль{ для помещения формы в центр экрана}
SH := Screen.Height;
SW := Screen.Width;
MainForm := TForm.Create(nil);
with MainForm dotry
BorderStyle := bsSizeable;
Height := 390;
Width := 390;
Left := (SW - Width) div 2;
Top := (SH - Height) div 2;
Caption := 'Моя программа';
// здесь могут быть и другие компоненты
Memo := TMemo.Create(MainForm);
with Memo dobegin
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]) dotry
Caption := 'Заголовок';
ShowModal;
finally
Free;
end;
...
// это для второго пути, иначе она так и останется висеть св?рнутой// ShowWindow(Handle, SW_SHOW); // Показать консольend.
В статье описывается создание консольных приложений в Delphi, рассматриваются способы выхода из консоли и управления формами.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.