Systray-Componente vom BCB



  • Hallo, ich weiss, dass Webfritzi eine Systray-Komponente geschrieben hat, die habe ich mir auch schon runtergeladen.
    Troztdem würde es mich interessieren, wie die BCB-Komponente zu benutzen geht. Das Beispiel was mitgeliefert wird, hat mir leider nicht geholfen, weil da die Komponente irgendwie gar nicht eingesetzt wird.
    Also, bitte nicht gleich schlagen, dass ich diesen Thread aufgemacht habe. Die suchen-funktion habe ich auch schon benutzt.
    [edit]
    ich benutze den BCB6 Pro
    [/edit]



  • Noch mal ich.
    Leider habe ich es nicht geschafft, die Komponente von WebFritzi im BCB6 zu installieren.
    Was muss ich beachten? Kenne die Komponenteninstallation von Delphi.



  • Komponente auf die Form setzen, Visible auf true, fertig.

    Was die Komponente von WebFritzi betrifft: das hat atens nichts mit dem Thema dieses Threads zu tun und wurde btens mit Sicherheit schon ein paar mal im Forum besprochen.



  • atens fehlt noch der Aufruf Application->minimize
    btens hat das schon was damit zu tun, da es beides Tray-Komponenten sind und ich nicht wollte, dass man mich dahin verweißt
    und ctens wie bekomme ich es hin, dass das Programm dann nicht mehr in der Taskbar steht?



  • OK, Versuch macht klug,
    wenn ich die Application über das Icon minimiere, dann erscheint es auch nicht in der Taskbar, wenn ich es aber über einen Button minimiere mit Application->minimize, dann taucht das Prog in der Taskbar auf. Deshalb stelle ich meine Frage jetzt etwas genauer:
    Wenn ich die Application über einen Button (siehe text zuvor) minimiere, wie bekomme ich es hin, dass die Application nur im Tray steht?



  • Jacques schrieb:

    atens fehlt noch der Aufruf Application->minimize

    Keineswegs, es bedarf keiner Aufrufe irgendwelcher Funktionen.

    btens hat das schon was damit zu tun

    Installationsprobleme bei einer 3rdParty-Komponente haben absolut nichts mit der Anwendung einer beim BCB mitgelieferten Komponente zu tun.

    ctens wie bekomme ich es hin, dass das Programm dann nicht mehr in der Taskbar steht?

    Das Taskbar-Icon wird bei korrekter Anwendung automatisch ausgeblendet.



  • Jacques schrieb:

    Wenn ich die Application über einen Button (siehe text zuvor) minimiere, wie bekomme ich es hin, dass die Application nur im Tray steht?

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      TrayIcon1->Minimize();
    }
    


  • danke.
    Muss einem Delphi(5) nach BCB(6Pro) - Umsteiger doch gesagt werden sowas.

    [edit]
    noch ein kleiner Nachtrag: es ist fatal, TrayIcon1->visible = false zu setzen und dann TrayIcon1->minimize() aufzurufen. Bei Win2000 ist die Anwendung dann nur noch im Taskmanager unter Processe zu finden.
    [/edit]



  • Ich hab auch noch 'ne Anmerkung: üblicherweise würde man Visible auf false belassen und es erst im OnMinimize von TTrayIcon auf true setzen. Im OnRestore dann das Ganze zurück.



  • Noch eine Frage zu dem Thema:
    Wozu dient die Eigenschaft hide? Ich konnte nicht verstellen, was sie bewirkt.

    Und noch ein Hinweis: Die Eigenschaft Icon kann man mit Hilfe eine TImageList füllen: TImageList auf die Form und dann unter der Eigenschaft Icon auswählen.



  • Ich habe das mal ausprobiert:

    void __fastcall TfMainForm::TrayIcon1Minimize(TObject *Sender)
    {
      TrayIcon1->Visible = true;
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TfMainForm::TrayIcon1Restore(TObject *Sender)
    {
      TrayIcon1->Visible = false;
    }
    //---------------------------------------------------------------------------
    

    Das auf True-setzen erzeugt eine exception.
    EOutOfResources "Das Symbol für die Shell-Notification kann nicht erzeugt werden"
    Wenn ich es zur Designzeit auf true setze, hat das auf false-setzen im OnRestore keine für mich erkennbare Auswirkungen. Das Icon erscheint troztdem im Tray.
    Es scheint so, als ob die Komponente nicht richtig funktioniert.
    Hide habe ich auf true stehen. Auch ein Hide auf false ändert nichts.
    Standard-Einstellung, wenn man die Komponente auf die Form zieht: Hide=true, visible=false


Anmelden zum Antworten