Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi prog zum systemtray minimieren (https://www.delphipraxis.net/23413-prog-zum-systemtray-minimieren.html)

glkgereon 2. Jun 2004 18:03


prog zum systemtray minimieren
 
ich weiss, das gabs schon ma, aber ich finds nit mehr!

ich will ein programm unten neben die systemuhr in son icon machen
das prog soll ein anderes prog ganz unsichtbar machen, und selber als icon dasein

dann soll auf rechtsklick son menü kommen wie MainMenu so inner art., oder popup, und auf linksklick das ding wieder angezeigt

geht das?
wie?

S2B 2. Jun 2004 18:44

Re: prog zum systemtray minimieren
 
Zitat:

Zitat von glkbkk
ich will ein programm unten neben die systemuhr in son icon machen

Such mal nach Hier im Forum suchenTNA oder lad dir ne Kompo von Torry runter!

Zitat:

Zitat von glkbkk
das prog soll ein anderes prog ganz unsichtbar machen, und selber als icon dasein

Wie meinst du das? Darf das Programm noch im Taskmanager sein oder muss es da auch draußen sein? (Oder willst du das gar nicht wissen? Müsste ja eigentlich ein neuer Thread gemacht werden...)

Zitat:

Zitat von glkbkk
dann soll auf rechtsklick son menü kommen wie MainMenu so inner art., oder popup, und auf linksklick das ding wieder angezeigt

Das geht bei fast allen TNA-Komponenten von Torry! Wie man das in den TNA-Code einbauen kann, weiß ich leider auch nicht...

c113plpbr 2. Jun 2004 18:46

Re: prog zum systemtray minimieren
 
Suchst du TrayIT! ? http://www.teamcti.com/trayit/trayit.htm

ciao, Philipp

glkgereon 3. Jun 2004 12:59

Re: prog zum systemtray minimieren
 
also, das zweite prog, von dem ich sprach soll nur "weg"
innem taskmanager kannes drinbleiben

Meflin 3. Jun 2004 13:23

Re: prog zum systemtray minimieren
 
application.showmainform := false //ganz weg
oder
form1.visible := false //halb weg
oder
form1.alphablend := true; //dumme lösung ;-)
form1.alphablendvalue := 0;

S2B 3. Jun 2004 13:24

Re: prog zum systemtray minimieren
 
Aber er will doch, dass ein zweites Programm versteckt wird!?

Meflin 3. Jun 2004 13:26

Re: prog zum systemtray minimieren
 
ja, aber nicht unbedingt eine fremdanwendung oder?

S2B 3. Jun 2004 13:28

Re: prog zum systemtray minimieren
 
Stimmt! :oops:

Also wenn es eine Fremdanwendung ist, dann musst du imho ShowWindow benutzen! :wink:

Meflin 3. Jun 2004 13:30

Re: prog zum systemtray minimieren
 
da stimm ich dir voll zu ;-)

glkgereon 3. Jun 2004 13:39

Re: prog zum systemtray minimieren
 
also, um weitere unnütze disskussionen zu vermeiden:

ich hab xampp
das hat eine "eingabeaufforderung" die dableiben MUSS
da mich das fenster nervt wollte ich ein progg schreiben, das xampp "verwaltet", also button für cient schliessen, xampp starten und beenden und so

Steve 3. Jun 2004 13:53

Re: prog zum systemtray minimieren
 
Weiß nicht, ob Dir das weiterhilft, aber um fremde Programme/Fenster zu 'verstecken', gibts von Alexander den Taskbar-Button Manager..

glkgereon 3. Jun 2004 14:12

Re: prog zum systemtray minimieren
 
sieht nit schlecht aus
kann ich sagen immer wenn ein prog gestartet wird, soll er es verstecken???

Steve 3. Jun 2004 14:35

Re: prog zum systemtray minimieren
 
Glaub nicht, dass es (momentan) geht, musst aber Alexander fragen, der hat's gschrieben :zwinker:

Gruß
Stephan

MCeddy 3. Jun 2004 15:48

Re: prog zum systemtray minimieren
 
Hallo. Ich nehme dazu immer die Komponente CoolTrayIcon. Lässt sich einfach bedienen. Schau dir einfach mal die mitgelieferten Demos an, wenn du fragen zum Einbau in dein Projekt hast, dann ich dir ja helfen.

Zitat:

Zitat von glkbkk
also, um weitere unnütze disskussionen zu vermeiden:

ich hab xampp
das hat eine "eingabeaufforderung" die dableiben MUSS
da mich das fenster nervt wollte ich ein progg schreiben, das xampp "verwaltet", also button für cient schliessen, xampp starten und beenden und so

Genau daselbe hab ich auch gemacht. Wie gesagt mit CoolTrayIcon und habe Apache und MySQL als Dienste laufen. Das Programm sitzt bei mir unten im SystemTray und dort seh ich anhand der Icons, ob der Server an oder aus ist (Rot = aus und Grün = an) :wink: Wenn ich doppelt auf das Icon klicke dann öffnet sich mein Programm und ich kann den Server starten und auch beenden...

mfg

MCeddy02
:dp:

glkgereon 3. Jun 2004 17:58

Re: prog zum systemtray minimieren
 
genau das!!! :thuimb:

also cooltrayicon...

is das bei d7 dabei?

glkgereon 3. Jun 2004 19:20

Re: prog zum systemtray minimieren
 
war nicht dabei, habs problemnlos ( :thuimb: ) installiert

und es funzt!!!

nur das mit dem in FormCreate schon minimizen funzt (noch) nit

MCeddy 3. Jun 2004 23:47

Re: prog zum systemtray minimieren
 
Zitat:

Zitat von glkbkk
nur das mit dem in FormCreate schon minimizen funzt (noch) nit

Wie meinst du das?

Minimieren in System Tray:
Code:
Application.Minimize;
CoolTrayIcon1.HideMainForm;
CoolTrayIcon1.IconVisible := true;
Fenster wieder anzeigen:
Code:
CoolTrayIcon1.ShowMainForm;
CoolTrayIcon1.IconVisible := false;

asdfg 10. Okt 2005 20:23

Re: prog zum systemtray minimieren
 
Gibt es eine Komponente, um TrayIcons auch mit Delphi 2005 verwenden zu können

A-M-X 11. Okt 2005 13:42

Re: prog zum systemtray minimieren
 
Hab mir nun nich den ganzen topic durchgelesen aber das sollte dir vllt helfen:

Es wird die Komponente TApplicationEvent (Komponentenseite Zusätzlich) benötigt und ihr ein OnMinimize-Ereignis zugeordnet.

Die komplette Unit des Hauptfensters sieht anschließend so aus:


Delphi-Quellcode:
unit Unit1;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ShellApi, AppEvnts;

const
  IC_CLICK = WM_APP + 201;

type
  TForm1 = class(TForm)
    ApplicationEvents1: TApplicationEvents;
    procedure ApplicationEvents1Minimize(Sender: TObject);
    private
      { Private-Deklarationen }
      procedure Systray(var sMsg: TMessage); message IC_CLICK;
    public
      { Public-Deklarationen }
    end;

var
  Form1: TForm1;
  NIM : TNotifyIconData;

implementation

{$R *.DFM}

procedure TForm1.Systray(var sMsg: TMessage);
begin
  // Vorgang: Klick auf das Icon neben der Uhr und Anzeige der Anwendung
  inherited;
  if (sMsg.LParam = WM_LBUTTONDOWN) then begin
    Show;
    Shell_NotifyIcon(NIM_DELETE, @NIM);
    Application.Restore; //zeigt die Anwendung wieder an
  end;
end;

procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
  //Vorgang: Minimieren der Anwendung, Entfernung des Taskleisteneintrags
  //und Hinzufügen des Programmicons neben der Uhr
  Form1.FormStyle:=fsStayOnTop;
  Hide;
  with NIM do begin
    cbSize := SizeOf (nIM);
    Wnd := Handle;
    uID := 0;
    uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
    uCallbackMessage := IC_CLICK;
    hIcon := Application.Icon.Handle;
    szTip := 'Test-Programm'; //Hier kommt der Hint beim Mouseover im Systray
  end;
  Shell_NotifyIcon(NIM_ADD, @NIM);
end;

end.

asdfg 11. Okt 2005 18:15

Re: prog zum systemtray minimieren
 
Vielen Dank für die schnelle Antwort.

asdfg 11. Okt 2005 19:05

Re: prog zum systemtray minimieren
 
Bei mir funktioniert das nicht.
Oder muss die Funktion aufgerufen werden?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:32 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