Недавно добавленные исходники

•  TDictionary Custom Sort  3 227

•  Fast Watermark Sources  2 992

•  3D Designer  4 751

•  Sik Screen Capture  3 259

•  Patch Maker  3 467

•  Айболит (remote control)  3 528

•  ListBox Drag & Drop  2 904

•  Доска для игры Реверси  80 793

•  Графические эффекты  3 843

•  Рисование по маске  3 172

•  Перетаскивание изображений  2 544

•  Canvas Drawing  2 674

•  Рисование Луны  2 501

•  Поворот изображения  2 094

•  Рисование стержней  2 121

•  Paint on Shape  1 525

•  Генератор кроссвордов  2 183

•  Головоломка Paletto  1 731

•  Теорема Монжа об окружностях  2 158

•  Пазл Numbrix  1 649

•  Заборы и коммивояжеры  2 017

•  Игра HIP  1 262

•  Игра Go (Го)  1 201

•  Симулятор лифта  1 425

•  Программа укладки плитки  1 178

•  Генератор лабиринта  1 512

•  Проверка числового ввода  1 297

•  HEX View  1 466

•  Физический маятник  1 322

•  Задача коммивояжера  1 357

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Создание консольных приложений



Автор: Михаил Чумак

Переустановка 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 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.





Похожие по теме исходники

Создание таблиц в Paradox

Локализация приложений




Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте