Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Programm ohne Formular (https://www.delphipraxis.net/194683-programm-ohne-formular.html)

derseitzer 21. Dez 2017 07:28

Delphi-Version: 10 Seattle

Programm ohne Formular
 
Hey Leute,

Ich habe schon einige Programme mit Formularen geschrieben, so auch ein Programm, welches aber garkeine benötigt.
Ich kenne mich mit dem programmieren ohne Formular so garnicht aus und ich würde gerne nicht einfach nur die Mainform unsichtbar machen, sondern
das Programm in eine Unit, ganz ohne Formular, rein programmieren.
Code:
unit Unit1;

interface

implementation

end.
Nochmal vorab wie gesagt: Ich habe das noch nie gemacht und habe dem entsprechend Ahnung (keine :oops: )
Könnt Ihr mir sagen:
-wie ich ein Code zu Beginn (create) ausführe, also wenn ich die Unit öffne
-beim schließen der unit
-ob ich einen type brauche und welchen?
-wie ich einen Timer mache

Vielen Dank erstmal :)

Ghostwalker 21. Dez 2017 07:41

AW: Programm ohne Formular
 
Das Stichwort heißt hier Consolen-Programm. Das hat keine Formulare, nur eine "Main" Prozedur, in der der Programmablauf festgelegt wird.

Der schöne Günther 21. Dez 2017 07:43

AW: Programm ohne Formular
 
Was du suchst ist ein DatenModul statt einem Formular. Das ist wie ein Formular ohne Oberfläche, du kannst dort auch direkt Timer platzieren wie du es gewohnt bist.

derseitzer 21. Dez 2017 07:56

AW: Programm ohne Formular
 
Das ist glaube ich nicht was ich suche,
Im Konsolenprogramm, sowie im Datenmodul wird die Konsole aufgerufen. Ich möchte aber kein Fenster,kein Formular und keine Konsole bei meinem Programm offen haben. Ich reagiere eigentlich nur auf Tastatur und auf das Öffnen anderer Programme

Neumann 21. Dez 2017 08:37

AW: Programm ohne Formular
 
Man kann praktisch jedes Programm in einen Dienst umwandeln (NSSM) dann läuft es unsichtbar. Wie ein unsichtbares Programm auf Tastatureingaben reagieren soll, ist mir allerdings etwas unklar.

TiGü 21. Dez 2017 08:39

AW: Programm ohne Formular
 
Suchst du sowas wie einen Windows-Dienst/Service?
Dann wird's aber nicht so einfach mit der Tastatur-Eingabe.

Der schöne Günther 21. Dez 2017 08:50

AW: Programm ohne Formular
 
Zitat:

Zitat von derseitzer (Beitrag 1389386)
Im Konsolenprogramm, sowie im Datenmodul wird die Konsole aufgerufen.

Ein Datenmodul hat an sich nichts mit Konsole, VCL, Dienst, FMX oder sonst etwas zu tun.
  1. Erstelle neue VCL-Anwendung
  2. Entferne das Formular Form1
  3. Füge dein Datenmodul hinzu (mit Timer und allem)
  4. Ersetze in der dpr-Datei
    Delphi-Quellcode:
    Application.Run()
    durch
    Delphi-Quellcode:
      While (not Application.Terminated) do
       Application.ProcessMessages();

Fertig. Dein Datenmodul kann die Anwendung z.B. selbst einfach durch
Delphi-Quellcode:
Application.Terminate()
beenden

Fritzew 21. Dez 2017 08:56

AW: Programm ohne Formular
 
Tja, wenn Du kein Fenster hast bekommst Du auch keinen Focus.
Da helfen dann sogenannte Hooks.
Ich verlinke hier mal auf:
https://www.delphi-treff.de/tutorial...astatur-hooks/
Dann muss Du auch noch dafür sorgen dass Deine Anwendung selber eine Event-Schleife hat, Stichwort AllocateHWnd

derseitzer 21. Dez 2017 09:18

AW: Programm ohne Formular
 
Vielen Dank ich probier mal rum :) Ich bin mir irgendwie unsicher, ob das im Endeffekt nun einen Unterschied macht, ob ich eine VCL mit unsichtbarer Form oder ein Datenmodul nehme, das ja eigentlich auch sowas wie eine unsichtbare Form hat.

Der schöne Günther 21. Dez 2017 09:32

AW: Programm ohne Formular
 
Das "Formular" bei einem Datenmodul ist nur eine optische Hilfe für dich damit du deine bunten Vierecke (Timer, TCP-Client, DataSet, ...) da drauf ziehen kannst. Es ist kein Formular dass du deinem Benutzer irgendwie anzeigen könntest.

Ohne großen Aufwand müsste die Anwendung somit auch auf Linux und MacOS laufen (natürlich abhängig von den platform-spezifischen Dingen deines Codes).


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:49 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz