AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Programm abhängig von Runtimeparameter unsichtbar starten
Thema durchsuchen
Ansicht
Themen-Optionen

Programm abhängig von Runtimeparameter unsichtbar starten

Ein Thema von iphi · begonnen am 29. Aug 2010 · letzter Beitrag vom 29. Aug 2010
Antwort Antwort
iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#1

Programm abhängig von Runtimeparameter unsichtbar starten

  Alt 29. Aug 2010, 19:33
Hallo,

ich habe ein größeres VCL-Programm, welches ich im Falle des Starts mit einem bestimmten Runtime-Parameter unsichtbar starten möchte, einige Funktionen von der Main Form ausführen möchte und dann wieder beenden möchte.

Sehe ich das richtig, dass ich in der Main.dpr den Runstring vor Application.Run abfragen und dann ggf. Application.ShowMainForm := False; setzen muss?

Wo muss dann mein weiterer Code für den unsichtbaren Fall stehen? Muss im unsichtbaren Fall Application.Run überhaupt aufgerufen werden?

Gruss Iphi
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.031 Beiträge
 
Delphi 12 Athens
 
#2

AW: Programm abhängig von Runtimeparameter unsichtbar starten

  Alt 29. Aug 2010, 19:46
Application.Run fürh die Nachrichtenschleife aus,
also wenn du diese brauchst, dann sollte man das nicht entfernen.

PS: Wenn ich ein Fenster garnicht anzeigen will, dann laß ich es erst garnicht erstellen.


Im Grunde kommt es aber drauf an, was und wie du es nun ausführen willst, wenn keine GUI angezeigt wird.
Wenn das klar ist, dann kann man erst entscheiden was man machen muß/kann, um dieses zu erreichen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#3

AW: Programm abhängig von Runtimeparameter unsichtbar starten

  Alt 29. Aug 2010, 20:01
Im Prinzip will ich alle Funktionen der GUI benutzen, nur das Fenster nicht anzeigen.
Ich möchte also das, was normalerweise sichtbar abläuft (Datenerfassung mit grafischer Darstellung und am Ende Ausgabe in Datei) unsichtbar ablaufen lassen.

Wie strukturiere ich das?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Programm abhängig von Runtimeparameter unsichtbar starten

  Alt 29. Aug 2010, 20:06
Hast du Oberfläche und Programmlogic voneinander getrennt? Wenn dem so ist kannst du die Oberflächenerzeugung weg lassen und nur die Programmlogic ausführen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#5

AW: Programm abhängig von Runtimeparameter unsichtbar starten

  Alt 29. Aug 2010, 20:25
Hast du Oberfläche und Programmlogic voneinander getrennt? Wenn dem so ist kannst du die Oberflächenerzeugung weg lassen und nur die Programmlogic ausführen.
Das habe ich dummerweise nicht getan und das Programm ist zu umfangreich, das jetzt nachträglich noch zu ändern. Kann man nicht das Programm einfach mit FormMain.Visible=false starten?

Wo baue ich dann meine Programmlogik ein?
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#6

AW: Programm abhängig von Runtimeparameter unsichtbar starten

  Alt 29. Aug 2010, 20:50
Hi,

ShowMainForm := False oder Visible := False sind dann wohl fast deine einzigen Möglichkeiten. Solange keine Interaktion vom Benutzer nötig ist (beachte auch Fehlerfälle, wenn zum Beispiel falsche Daten vorliegen, eine Datei nicht existiert, etc. - dann sollte *keine* MessageBox kommen), sollte das auch hinhauen.
Trennen könnte man es zum Beispiel, in dem man eine Klasse TAnalyzer baut, die als Methode zum Beispiel AnalyzeStart() hat. Das Form würde eine Instanz dieser Klasse erzeugen und die Datenverarbeitung mit AnalyzeStart() anhauen. Weil du ja Daten noch grafisch darstellen möchtest, hätte die Klasse TAnalyzer einen oder mehrer Events, an die sich das Form verbindet. Über die Events gibt die Klasse TAnalyzer, die die Daten hält und verarbeitet, dann Infos an das Fenster weiter, so dass da zum Beispiel eine Kurve oder sonstwas mit Hilfe der Daten aus dem Event gemalt werden kann. Und wenn du jetzt eine Version bauen wolltest, die kein Fenster mehr hat, erstellst du einfach eine Instanz dieser Klasse (Code in der .dpr-Datei, wo auch das Application.* alles steht) und rufst dann AnalyzeStart() auf - das Fenster ist dann nicht mehr nötig und die Logik ist von der Oberfläche schön getrennt. So ist es dann auch ganz einfach möglich, nebenbei noch ein Konsolenprogramm oder einen Dienst anzubieten. Alle 3 Programme würden dann genau das selbe machen, weil die Logik dank TAnalyze überall die gleiche ist.
Seitdem ich mir diese Vorgehensweise angewöhnt habe, ist mein Leben schöner geworden. Hört sich doof an, ist aber so

Liebe Grüße
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"

Geändert von wicht (29. Aug 2010 um 20:56 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 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