Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Application.CreateForm(...) weglassen


LittleBen - Sa 27.08.11 13:17
Titel: Application.CreateForm(...) weglassen
Hallo,
wenn ich in der dpr das Application.CreateForm(...) weglasse, was muss ich dann tun, dass das Programm nach dem Application.Run nicht sofort wieder beendet?

Vielen Danke,
Benny


Gausi - Sa 27.08.11 13:35

Du musst dafür sorgen, dass dein Programm etwas tut? :gruebel:

Warum willst du das denn weglassen?


LittleBen - Sa 27.08.11 13:40

In der dpr erstell ich einen Timer der ja eigentlich etwas tut?

Ich lass das weg, weil ich keine Visuelle Komponente benötige. Ich weiß, man könnte auch einfach das Formular unsichtbar machen....


Gausi - Sa 27.08.11 13:45

Also willst du eine Konsolenanwendung schreiben. Dann brauchst du überhaupt kein Formular, auch keines, was nicht erstellt wird. ;-)

Evtl. suchst du aber auch einfach nur readln; - dann wird nach Beendigung des Programmes noch abgewartet, bis der User einmal die Entertaste betätigt.


HenryHux - Sa 27.08.11 13:47

Stimmt, eine Konsolenanwendung wäre dann besser.
Dennoch kannst du das auch so machen :


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
program Project2;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Dialogs,
  SysUtils;

{$R *.res}

var i : Integer;
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  //Application.CreateForm(TForm1, Form1);
  i := 20;
  showmessage(inttostr(i));
  Application.Run;
end.


Edit: Das showmessage dient nur als Beispiel, es würde hier den Sinn ja unsinnig machen :)


LittleBen - Sa 27.08.11 13:50

Stimmt, das mit der Konsolenanwendung ist eine gute Idee. Vielen Dank!

user profile iconHenryHux hat folgendes geschrieben Zum zitierten Posting springen:

Edit: Das showmessage dient nur als Beispiel, es würde hier den Sinn ja unsinnig machen :)

Aber was würde man da sonst hin machen, um es am laufen zuhalten?


Delete - Sa 27.08.11 14:01

Deinen Programmcode was dein Programm machen soll?


LittleBen - Sa 27.08.11 14:03

Wie schon gesagt, ich erstelle einen Timer, in dem alles abläuft...


Yogu - Sa 27.08.11 15:45

Hallo,

wenn du wirklich keine Anzeige - weder in einer Konsole, noch als Benachrichtigungs-Symbol - haben willst, kannst du deinen Code ja einfach in eine Schleife packen und vielleicht nach jedem Durchgang noch ein Sleep einbauen.


LittleBen - Sa 27.08.11 15:47

Genau! So habe ich das jetzt auch gemacht.

Vielen Dank für die Hilfe!