Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Das Problem mit dem vergessenem TrayIcon (https://www.delphipraxis.net/166849-das-problem-mit-dem-vergessenem-trayicon.html)

Popov 2. Mär 2012 13:19

Das Problem mit dem vergessenem TrayIcon
 
Was ich eigentlich schon seit Jahren fragen wollte es aber immer wieder vergesse, das ist das Problem mit dem nicht mehr gültigen TrayIcon. Wahrscheinlich gibt es dafür eine einfache Lösung und und garantiert 127 Beiträge hier im Forum wie man es lösen kann, aber ich finde es nicht, oder ich benutze die falschen Suchbegriffe.

Und zwar ist es so, dass ich mir für TrayIcon keine Komponente installieren will, also mache ich es immer alleine. Und alles funktioniert auch wie ich es will, nur nicht wenn das Programm beendet wird. Dann bleibt das TrayIcon immer noch sichtbar. Gehe ich mit dem Mauszeiger drüber, verschwindet es. Aber bis dahin bleibt es da. Und wenn ich das Programm fünf weitere Mal starte, dann habe ich fünf Icons da. Also wie räumt man den Bereich auf?

sHoXx 2. Mär 2012 13:22

AW: Das Problem mit dem vergessenem TrayIcon
 
ich rufe im FormClose
Delphi-Quellcode:
    TrayIcon1.Destroy;
auf, dann ist es bei mir weg.

Sir Rufo 2. Mär 2012 13:25

AW: Das Problem mit dem vergessenem TrayIcon
 
Zitat:

Zitat von sHoXx (Beitrag 1154100)
ich rufe im FormDestroy
Delphi-Quellcode:
    TrayIcon1.Destroy;
auf, dann ist es bei mir weg.

Häh ... das ist doch

a) eine Komponente, die auf der Form liegt (liegen sollte) und damit als Owner diese Form hat. Und dieser Owner kümmert sich schon um die Freigabe

b) egal was mit
Delphi-Quellcode:
Destroy
freigeben sollte man besser lassen und dafür
Delphi-Quellcode:
Free
verwenden

EDIT: und der TE setzt eben keine Komponente dafür ein

himitsu 2. Mär 2012 13:25

AW: Das Problem mit dem vergessenem TrayIcon
 
Genauso, wie du manuell das TrayIcon erstellst, mußt du es natürlich auch manuell wieder freigeben, wenn dein Programm beendet wird. :stupid:

@sHoXx: Wenn ich das richtig mitbekommen hab, dann geht er selber über die WinAPI und nutzt eben keine fertige Komponente.
PS: Hat TrayIcon1 deine Form als Owner, dann gibt dieses das automatisch frei.

Popov 2. Mär 2012 13:28

AW: Das Problem mit dem vergessenem TrayIcon
 
@sHoXx

Wie gesagt, ich habe keine Komponente.

Ich hab in den Jahren an die zig Varianten ausprobiert und einige sahen sogar gut aus und der Icon verschwand meistens. Aber nur meistens. Irgendwas fehlt da.

@himitsu

Das versteht sich von selbst. Daran liegt es nicht.

sHoXx 2. Mär 2012 13:31

AW: Das Problem mit dem vergessenem TrayIcon
 
gut, ich dachte du verwendest die Standardkomponente, und wolltest dir keine anderweitige komponente installieren. Manchmal sind die Finger schneller als der Kopf :D

vielleicht zeigst du etwas code, an dem man sehen kann, wie dein selbst erstelltes tryicon aussieht

Popov 2. Mär 2012 13:39

AW: Das Problem mit dem vergessenem TrayIcon
 
Gibt es eine Standardkomponente in Delphi 7?

Ich hab mit der Zeit so viele Versionen getestet, eigene Kreationen, aber auch aus dem Internet. Somit kann ich einen beliebigen Code zeigen. Ich glaube die habe ich zuletzt verwendet: http://www.delphipraxis.net/30716-post2.html , da sie sogar passabel funktioniert und der Icon verschwindet fast immer. Einige Male blieb er aber.

Und bevor himitsu wieder fragt, alle enthalten diese Zeile:
Delphi-Quellcode:
Shell_NotifyIcon(NIM_DELETE ...

Bernhard Geyer 2. Mär 2012 13:49

AW: Das Problem mit dem vergessenem TrayIcon
 
Zitat:

Zitat von Popov (Beitrag 1154108)
Gibt es eine Standardkomponente in Delphi 7?

AFAIK Nein. Erst in neueren Delphi-Versionen liefert Borland/Codegear/Embaracadero eine Komponenten mit.

turboPASCAL 2. Mär 2012 14:14

AW: Das Problem mit dem vergessenem TrayIcon
 
Hi, meinst du mit:

Zitat:

"Und alles funktioniert auch wie ich es will, nur nicht wenn das Programm beendet wird. "
Inder IDE per Stopp oder bei einem "normalem" Beenden des Programmes ?

Aphton 2. Mär 2012 14:22

AW: Das Problem mit dem vergessenem TrayIcon
 
Ich glaube das ist dann der Fall, wenn das Programm abrupt terminiert wird, sodass es nicht aufräumen und somit den Tray wegschießen kann!
Weil unter normalen Umständen verschwindet der auch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:37 Uhr.
Seite 1 von 4  1 23     Letzte »    

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