![]() |
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:
Nochmal vorab wie gesagt: Ich habe das noch nie gemacht und habe dem entsprechend Ahnung (keine :oops: )
unit Unit1;
interface implementation end. 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 :) |
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.
|
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.
|
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 |
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.
|
AW: Programm ohne Formular
Suchst du sowas wie einen Windows-Dienst/Service?
Dann wird's aber nicht so einfach mit der Tastatur-Eingabe. |
AW: Programm ohne Formular
Zitat:
Fertig. Dein Datenmodul kann die Anwendung z.B. selbst einfach durch
Delphi-Quellcode:
beenden
Application.Terminate()
|
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: ![]() Dann muss Du auch noch dafür sorgen dass Deine Anwendung selber eine Event-Schleife hat, Stichwort AllocateHWnd |
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.
|
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). |
AW: Programm ohne Formular
Hallo,
vielleicht hilft Dir ein Tray-Programm weiter. Du kannst hier in der DP mal nach ![]() ![]() 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 |
AW: Programm ohne Formular
Zitat:
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? |
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 :) ) |
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 ? |
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 14:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz