Delphi-PRAXiS

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).

FBrust 21. Dez 2017 09:43

AW: Programm ohne Formular
 
Hallo,

vielleicht hilft Dir ein Tray-Programm weiter. Du kannst hier in der DP mal nach Hier im Forum suchenTTrayIcon oder nach Hier im Forum suchenCoolTrayIcon suchen.

Zwar wird auch hier die Hauptform beim Start minimiert, ist aber danach in der Taskleiste nicht mehr sichtbar, sondern nur im Tray-Bereich.


Gruß
Frank

freimatz 21. Dez 2017 10:03

AW: Programm ohne Formular
 
Zitat:

Zitat von derseitzer (Beitrag 1389383)
Ich habe schon einige Programme mit Formularen geschrieben, so auch ein Programm, welches aber garkeine benötigt.

Sorry, manche der Vorschläge hier finde ich etwas abstrus.
Zuerst aber die Frage: was macht denn Dein Programm? Einen Zweck muss es ja haben. Macht es nur mit Dateien etwas? Soll etwas am Bildschirm erscheinen, zwar kein Fenster aber sonst etwas? Wofür benötigst du einen Timer?

derseitzer 21. Dez 2017 10:11

AW: Programm ohne Formular
 
Ich hätte tatsächlich mehrere Programme, die keine Form benötigen.
Eines wäre z.b. ein Hilfe für mich im Bereich textverarbeitung, wo man z.b. bestimmte Textabschnitte mit Tastenkombinationen bearbeiten kann. (sowas wie str+c für kopieren, nur andere Funktionen :) )

Ghostwalker 21. Dez 2017 10:34

AW: Programm ohne Formular
 
Hmm...also ein wenig konkreter darfs schon sein :)

So wie ich das bisher verstehe, soll dein Programm mit dem User interagieren (Dateneingabe usw.), das aber erst, wenn eine bestimmte Tastenkombination gedrückt wird ?

oder solls ein Programm werden, das generell keine Interaktion mit dem User benötigt ?

oder ein Dienst, der Funktionalitäten für andere Programme zur Verfügung stellt ?

freimatz 21. Dez 2017 10:37

AW: Programm ohne Formular
 
Na ja keine Form ist ja nur die halbe Miete. Wie willst Du dein Programm denn steuern? Solche Tools die ich kenne sind dann im Tray. Dort kann man das Tool dann zumindest beenden. Dann käme ein Konsolenprogramm meines Wissens nicht in Frage.
Deshalb ist es wichtig die Anforderungen zu kennen bevor man sich entscheidet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 Uhr.

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