AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Anwendung wahlweise minimiert starten

Ein Thema von hsbc · begonnen am 7. Nov 2006 · letzter Beitrag vom 8. Nov 2006
Antwort Antwort
Seite 1 von 2  1 2      
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#1

Anwendung wahlweise minimiert starten

  Alt 7. Nov 2006, 09:54
Hallo allerseits,

ich weiß, dieses Thema wurde schon öfter behandelt, aber ich finde noch immer keine befriedigende Lösung.

Ich möchte, dass meine Anwendung wahlweise (aufgrund eines Parameters, welcher aus einer ini-Datei im Ereignis onCreate gelesen wird) entweder normal oder minimiert im Systemtray gestartet wird.

Bisher mache ich das so, dass ich im Ereignis OnActivate des Formulares wahlweise Application.minimize verwende, was auch funktioniert. Nur stört mich, dass beim Start des Programmes natürlich kurz das Formular aufpoppt, bevor es dann im Systemtray verschwindet. Wie kann ich das verhindern? Ich habe schon versucht, Application.minimize im Ereignis OnCreate des Formulares einzusetzen, wo es aber natürlicherweise noch nicht funktioniert.

Welche Möglichkeiten gibt es noch, das Aufpoppen des Formulares zu unterdrücken?

mfg
Herbert
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: Anwendung wahlweise minimiert starten

  Alt 7. Nov 2006, 10:10
aloha...

mit der komponente cooltrayicon gibts ein ereignis das sich startup nennt...
mit dem kann man steuern ob ein programm im tray gestartet wird oder normal...

hier ein beispiel

Delphi-Quellcode:
procedure TMain_Form.TrayStartup(Sender: TObject; var ShowMainForm: Boolean);

begin
  ShowMainForm := False;
  Tray.IconVisible := True;
end;
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Anwendung wahlweise minimiert starten

  Alt 7. Nov 2006, 12:27
Vielleicht nicht schön, aber es müsste funktionieren und du benötigst keine Drittkomponenten. Du könntest in der Projektdatei (dpr) vor Application.Run; diesen Code ausführen:

Application.ShowMainform := false; der dein Hautformular versteckt. Dann kannst du überprüfen, ob das Programm minimiert gestartet werden soll oder nicht und entsprechend das Formular wieder anzeigen lassen oder auch nicht.
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#4

Re: Anwendung wahlweise minimiert starten

  Alt 7. Nov 2006, 13:46
Das mit Application.ShowMainForm funktioniert leider nicht so wie es soll.

Ich habe versuchsweise folgendes gemacht:

1. In die Projektdatei vor Applicaton.Run habe ich Application.ShowMainForm := false eingefügt.
2. In das Formular habe ich in der Eigenschaft OnActivate als erste Anweisung Application.ShowMainForm := true eingefügt.

Das Programm wird jetzt unsichtbar gestartet, es dürfte aber kein weiterer ProgrammCode ausgeführt werden, da im Ereignis OnActivate des Formulars ShowMainForm nicht mehr auf true gesetzt wird. Ich habe hier also keine Möglichkeit mehr, im ProgrammCode weitere Aktionen zu setzen.

Wahrscheinlich wird mir nichts anderes übrig bleiben, als es wirklich mit einer Dritt-Komponente zu versuchen, obwohl ich diesen Weg wirklich nur als allerletzten gehen möchte.

Vielleicht hat noch jemand eine Idee ...

mfg
Herbert
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Anwendung wahlweise minimiert starten

  Alt 7. Nov 2006, 14:39
Wo liegt dein Problem jetzt genau?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Tumm

Registriert seit: 17. Jun 2006
Ort: Celle
171 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Anwendung wahlweise minimiert starten

  Alt 7. Nov 2006, 14:42
Hast du schon probiert nach

Application.Run; Application.Minimize; einzufügen?
Code Gear = Kot Gier
  Mit Zitat antworten Zitat
Benutzerbild von ArmyMan
ArmyMan

Registriert seit: 25. Mai 2004
Ort: Wil Sg
193 Beiträge
 
#7

Re: Anwendung wahlweise minimiert starten

  Alt 7. Nov 2006, 15:09
Ich hab mal ein bischen rumprobiert.
Du könntest unter dem
Application.CreateForm(TForm1, Form1); die Zeilen
Delphi-Quellcode:
Application.ShowMainForm := False;
Form1.FormActivate(Form1);
einfügen.

Dann kannst du im OnActivate deiner Form die abfrage machen ob minimiert gestartet werden soll.

Greetz
ArmyMan
Reden ist Schweigen, Silber ist Gold!
Der Soldat friert nicht. Er zittert nur vor Wut, weil es so kalt ist.
  Mit Zitat antworten Zitat
Benutzerbild von Daniel Schuhmann
Daniel Schuhmann

Registriert seit: 16. Jul 2005
Ort: München
391 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Anwendung wahlweise minimiert starten

  Alt 7. Nov 2006, 16:02
Warum nicht einfach die Abfrage ins OnCreate der Form reintun und dort ShowMainForm einfügen? Das spart die ganze OnActivate-Geschichte.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  If FindCmdLineSwitch('tray') then
  begin
    Application.ShowMainForm := False;
    TrayIcon.Visible := True;
  end;
end;
Daniel Schuhmann
  Mit Zitat antworten Zitat
mr-unbekannt

Registriert seit: 29. Okt 2005
Ort: tirol
104 Beiträge
 
Delphi 7 Personal
 
#9

Re: Anwendung wahlweise minimiert starten

  Alt 7. Nov 2006, 16:02
bewirkt Form1.WindowState := wsMinimized;
das gleiche?

bei mir wird die form nicht kurz angezeigt...
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#10

Re: Anwendung wahlweise minimiert starten

  Alt 7. Nov 2006, 17:00
Ich habe jetzt versucht, di TCoolTrayIcon zu verwenden.

Sobald ich jedoch die Komponente auf die Form ziehe und ohne irgend eine Veränderung sofort compiliere, wird nach dem Start die Form schon nicht mehr angezeigt. Ist das normal bzw. wie kann ich trotzdem die Form anzeigen lassen?

So, jetzt muss ich nochmals korrigieren:

Mein Hauptformular führt nach dem Start einige Aktionen aus, die einige Sekunden in Anspruch nehmen. Die Form wird nicht, wie ich oben beschrieb, nicht angezeigt sondern nach Abarbeitung dieser Aktionen sehr wohl angezeigt. Jetzt zu meiner Frage:

Kann ich den Ablauf insofern beeinflussen, dass die Anzeige der Form bereits z.B. am Beginn von OnFormActivate angezeigt wird und nicht erst nach Abarbeitung der gesamten Aktionen. Ein Einfügen von CoolTrayIcon.ShowMainform an dieser Stelle brachte leider auch nicht den gewünschten Erfolg.

Kennt jemand dazu vl. einen Trick?

mfg
Herbert
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:50 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