erstes TForm unsichtbar machen



  • Hallo,

    ich habe eine Frage.
    Ich habe in meinem Programm nur eine TForm drin, die will ich nicht sichtbar haben, weil ich alles über das Kontextmenü des TrayIcons steuern will.

    Jetzt isses der Form aber egal, ob ich visible auf true oder false setze, sie bleibt trotzdem sichtbar auf dem Desktop.
    Gibts da eine Möglichkeit, die trotzdem verschwinden zu lassen oder muss ich das dann als none-Formularanwendung basteln?



  • Mit

    Form->AlphaBlend = true;
           Form->AlphaBlendValue = 0;
    

    aktivierst du zuerst die Transparenz und dann stellst du den Grad ein.
    Die ganze Form ist dann bei 0 überhaupt nicht mehr sichtbar und bei 255 vollständig sichtbar.

    Näheres dazu findest du in der BCB Hilfe

    Auch einstellbar unter Objektinspektor->Eigenschaften

    edit:

    Jansen schrieb:

    Das ist doch Quark, damit steht die Form ja immernoch blöd auf dem Desktop rum, wenn auch unsichtbar

    Er fragt doch, wie man die Form unsichtbar macht... 🙄



  • supi danke dir 🙂



  • Das ist doch Quark, damit steht die Form ja immernoch blöd auf dem Desktop rum, wenn auch unsichtbar.
    Wie wär's denn mit TForm::Hide?
    Siehe ausserdem auch den Abschnitt 'Forms' in der FAQ hier.



  • Jansen schrieb:

    Wie wär's denn mit TForm::Hide?

    // Forms.pas, l. 6482ff
    procedure TCustomForm.Hide;
    begin
      Visible := False;
    end;
    

    😉

    @Padde85: dafür gibt es Message-Only Windows. In C++Builder:

    __fastcall TFrmMain::TFrmMain(TComponent* Owner)
        : TForm(Owner), realClose (false)
    {
        ParentWindow = HWND_MESSAGE;
    }
    //---------------------------------------------------------------------------
    void __fastcall TFrmMain::TrayIconClick(TObject *Sender)
    {
        ParentWindow = NULL;
        Show ();
    }
    //---------------------------------------------------------------------------
    void __fastcall TFrmMain::FormClose(TObject *Sender, TCloseAction &Action)
    {
        if (!realClose)
        {
            Action = caNone;
            Hide ();
        }
    }
    //---------------------------------------------------------------------------
    void __fastcall TFrmMain::TrayIconDblClick(TObject *Sender)
    {
            // In einer realen Anwendung wäre ein Popup-Menueintrag angemessener
            // für diese Aktion.
        realClose = true;
        Close ();
    }
    


  • audacia schrieb:

    // Forms.pas, l. 6482ff
    procedure TCustomForm.Hide;
    begin
      Visible := False;
    end;
    

    D'oh!!!

    😃


Anmelden zum Antworten