![]() |
Minimiert starten...
... Wie kann ich mein programm minimiert starten?
Ich hab vorher versucht im OnCreate-Ereigniss die procedure GoToTray zu laden, die mein programm minimiert, wenn ich auf einen Button klicke 8also funktioniert die procedure) hier meine GoToTray procedure:
Delphi-Quellcode:
leider startet meine anwendung ganz normal, sie wird nicht in die TNA verschoben :(
procedure TForm1.GoToTray;
var i: Integer; NewItem: TMenuItem; begin SaveConfig; CoolTrayIcon1.ShowBalloonHint('Einstellungen gespeichert', 'Die Einstellungen wurden erfolgreich gespeichert.', bitNone, 10); Timer1.Enabled:=true; PopupMenu1.Items.Clear; NewItem:=TMenuItem.Create(PopupMenu1); PopupMenu1.Items.Add(NewItem); NewItem.Caption:=('Scannen'); NewItem.OnClick:=PopupItemClickScan; NewItem:=TMenuItem.Create(PopupMenu1); PopupMenu1.Items.Add(NewItem); NewItem.Caption:=('-'); for i:= 0 to ComboBox1.Items.Count-2 do begin gamename:=ComboBox1.Items[i]; NewItem:=TMenuItem.Create(PopupMenu1); PopupMenu1.Items.Add(NewItem); NewItem.Caption:=(gamename); NewItem.OnClick:=PopupItemClick; end; NewItem:=TMenuItem.Create(PopupMenu1); PopupMenu1.Items.Add(NewItem); NewItem.Caption:=('-'); NewItem:=TMenuItem.Create(PopupMenu1); PopupMenu1.Items.Add(NewItem); NewItem.Caption:=('Eintellungen'); NewItem.Default:=true; NewItem.OnClick:=PopupItemClickOptions; NewItem:=TMenuItem.Create(PopupMenu1); PopupMenu1.Items.Add(NewItem); NewItem.Caption:=('Hilfe'); NewItem.OnClick:=PopupItemClickHelp; NewItem:=TMenuItem.Create(PopupMenu1); PopupMenu1.Items.Add(NewItem); NewItem.Caption:=('Beenden'); NewItem.OnClick:=PopupItemClickExit; Application.Minimize; CoolTrayIcon1.PopupMenu:=PopupMenu1; CoolTrayIcon1.HideMainForm; end; Wie bekomme ich sie in die TNA? mfg GimbaR |
Re: Minimiert starten...
Soviel ich weiß besitzt/besaß die CoolTrayIcon Komponente ein OnStartup (oder so) Event, wo du festlegen kannst, ob das Formular angezeigt werden soll oder nicht.
|
Re: Minimiert starten...
habs probiert, ging abba net...
Delphi-Quellcode:
oder:
procedure CoolTrayIcon1.OnStartup(irgendwas^^);
begin GotoTray; end;
Delphi-Quellcode:
procedure CoolTrayIcon1.OnStartup(irgendwas^^);
begin GotoTray; Application.Minimize; end; |
Re: Minimiert starten...
Schreib mal in die Projektdatei:
Delphi-Quellcode:
Application.ShowmainForm := False;
|
Re: Minimiert starten...
hab das mal im project gespeichert (also net in Form1):
Delphi-Quellcode:
hat net geklappt...
begin
Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; Application.ShowmainForm := False; end. muss dass in OnStartUp-Ereigniss von CoolTrayIcon? |
Re: Minimiert starten...
probier mal das showmainform vor das form create
|
Re: Minimiert starten...
Muss nicht unbedingt vor Create sein, Hauptsache vor run :)
Gruß Stephan |
Re: Minimiert starten...
habe die gerade die zweitbeste Lösung gelesen mit
Application.ShowMainForm := False Nachteil: Das OnShow-Ereignis - in dem erst das komplette Handle verfügbar ist - wird nicht mehr durchlaufen. Alternativen wären
Delphi-Quellcode:
oder auch nicht zu verachten mit CreateParams(..).
...
Const ShowArray: array [Boolean] of Integer = (sw_showNormal, sw_Hide); begin if not (csDesigning in ComponentState) then ShowWindow(Application.Handle, ShowArray[FHideTask]); ... richtig gut finde ich aber
Delphi-Quellcode:
Keine Form mehr da. Einfach weg; nix mehr Form anzeigen und ärgern.
program project1;
uses Forms; {$R *.RES} begin Application.Initialize; Application.Run; end; kay |
Re: Minimiert starten...
Die Eigenschaft ShowMainForm kann auch im Create Ereignis der Form gesetzt werden.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin Application.ShowMainForm := False; end; |
Re: Minimiert starten...
Zitat:
Hab das mal so versucht, hat abba auch net geklappt (ganuso wenig wie das Einfügen der Zeile Application.Minimize:=false; im OnCreate-ereigniss der MainForm) :(
Delphi-Quellcode:
program GB;
uses Forms, IniFiles, SysUtils, Dialogs, main in 'units\main.pas' {Form1}, Unit2 in 'units\Unit2.pas' {Form2}; {$R *.res} var ini: TIniFile; begin Application.Initialize; Application.Title := 'GameBuster'; Application.HelpFile := 'E:\sonstiges\Eigene Dateien\CODE\Delphi\GB.beta\GameBuster-help.chm'; ini:=TInifile.Create(ExtractFilePath(ParamStr(0))+'\config.ini'); try if ini.ReadBool('Options', 'StartMinimized', false)=true then Application.ShowMainForm:=false; finally ini.free; end; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.Run; end. |
Re: Minimiert starten...
War das jetzt nen Scherz von Golze, so wie die zweite möglichkeit (da ich die Form ja brauch, kann ich ja das create-ereigniss löschen)?
hat nich sonst noch jemand mal nen programm so geschreiben, dass es minimiert gestartet wird? |
Re: Minimiert starten...
Hi Gimbar!
Ich habe in meinem ![]()
Delphi-Quellcode:
Das TrayIcon wird bei mir automatisch erstellt.
if f_Main.cb_LoadMinimized.Checked then
Application.ShowMainForm := False; Wichtig: Wie bereits bemerkt wird das OnShow-Ereignis beim Start nicht ausgelöst, weil ja das Form nicht angezeigt wird. Greetz alcaeus |
Re: Minimiert starten...
Möchte man, dass das Fenster nicht angezeigt wird, dann möchte man doch logischerweise auch nicht, dass OnShow ausgeführt wird :mrgreen:
Falls beim Start was ausgeführt werden soll, dann halt in OnCreate, welches ja auch bei ShowMainForm=False ausgeführt wird... Gruß Stephan |
Re: Minimiert starten...
hmmm, da hab ich doch eigentlich mit
Delphi-Quellcode:
nix falsch gemacht, oder?
ini:=TInifile.Create(ExtractFilePath(ParamStr(0))+'\config.ini');
try if ini.ReadBool('Options', 'StartMinimized', false)=true then Application.ShowMainForm:=false; finally ini.free; end; |
Re: Minimiert starten...
Hi gimbar!
Der Code müsste eigentlich so laufen. Ich hab im moment nicht zeit den zu testen, aber auf den ersten blick scheint nichts falsch zu sein. Greetz alcaeus |
Re: Minimiert starten...
so, ich weiß jetzt wieso das nur teilweise geklappt hat: in meiner procedure GoToTray steht ganz am enendede
Delphi-Quellcode:
, dies hatte zu folge, dass auch wenn die Mainform net angezeigt wurde, mein Programm in der taskbar war...
Application.Minimize;
najo, problem gelöst, trotzdem THX!!! mfg GimbaR |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:26 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