Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Minimiert starten... (https://www.delphipraxis.net/28854-minimiert-starten.html)

GimbaR 31. Aug 2004 12:10


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:
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;
leider startet meine anwendung ganz normal, sie wird nicht in die TNA verschoben :(
Wie bekomme ich sie in die TNA?

mfg GimbaR

Dani 31. Aug 2004 12:23

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.

GimbaR 31. Aug 2004 14:10

Re: Minimiert starten...
 
habs probiert, ging abba net...
Delphi-Quellcode:
procedure CoolTrayIcon1.OnStartup(irgendwas^^);
begin
   GotoTray;
end;
oder:
Delphi-Quellcode:
procedure CoolTrayIcon1.OnStartup(irgendwas^^);
begin
   GotoTray;
   Application.Minimize;
end;

Luckie 31. Aug 2004 14:14

Re: Minimiert starten...
 
Schreib mal in die Projektdatei:
Delphi-Quellcode:
Application.ShowmainForm := False;

GimbaR 31. Aug 2004 14:51

Re: Minimiert starten...
 
hab das mal im project gespeichert (also net in Form1):
Delphi-Quellcode:
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
  Application.ShowmainForm := False;
end.
hat net geklappt...
muss dass in OnStartUp-Ereigniss von CoolTrayIcon?

nailor 31. Aug 2004 14:54

Re: Minimiert starten...
 
probier mal das showmainform vor das form create

Steve 31. Aug 2004 15:15

Re: Minimiert starten...
 
Muss nicht unbedingt vor Create sein, Hauptsache vor run :)

Gruß
Stephan

Golze 31. Aug 2004 17:55

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:
...
Const
  ShowArray: array [Boolean] of Integer = (sw_showNormal, sw_Hide);
begin
  if not (csDesigning in ComponentState) then
    ShowWindow(Application.Handle, ShowArray[FHideTask]);
...
oder auch nicht zu verachten mit CreateParams(..).

richtig gut finde ich aber
Delphi-Quellcode:
program project1;
uses
  Forms;
{$R *.RES}

begin
  Application.Initialize;
  Application.Run;
end;
Keine Form mehr da. Einfach weg; nix mehr Form anzeigen und ärgern.
kay

Sprint 31. Aug 2004 17:59

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;

GimbaR 31. Aug 2004 19:18

Re: Minimiert starten...
 
Zitat:

Zitat von Golze
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:
...
Const
  ShowArray: array [Boolean] of Integer = (sw_showNormal, sw_Hide);
begin
  if not (csDesigning in ComponentState) then
    ShowWindow(Application.Handle, ShowArray[FHideTask]);
...
oder auch nicht zu verachten mit CreateParams(..).

richtig gut finde ich aber
Delphi-Quellcode:
program project1;
uses
  Forms;
{$R *.RES}

begin
  Application.Initialize;
  Application.Run;
end;
Keine Form mehr da. Einfach weg; nix mehr Form anzeigen und ärgern.
kay

Kannst du mir das erste Bsp genauer erklären, plz, hab kA woarauf du hinaus willst, bzw wo ich das einbinden soll...
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr.
Seite 1 von 2  1 2      

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