Tranzparent Form (Trackbar)



  • Mit AlphaBlend kannst du deine Form wie gewünscht aus-faden
    'Alpha' ist einfach gesagt die Bezeichnung der 'Blend'e die die Form aus'blend'et 😉
    (bei alphablenden wird meist schwarz weggeblendet oder teils mit eingeblendet (allerdings nicht wie ein chromakey) bitte korrigiert mich, war nun aus dem bereich filmschnitt zu einer alphablende ^^)

    void __fastcall TForm1::TrackBar1Change(TObject *Sender)
    {
    Form1->AlphaBlendValue = TrackBar1->Position;
    }
    

    das sieht doch schonmal ganz gut aus,
    nun sollte man noch beachten das der Wert von AlphaBlendValue von 0 bis 255 geht 😉
    wenn man nun also das Minimum / Maximun auf 0 und 255 setzt hat mein einen 'fließenden' Übergang
    aber da du 0% 25% 50%.. geschrieben hattest, musst du dir das ein bisschen umschreiben 😉
    ➡ selber überlegen
    Stichwort: 'Dreisatz' (oder 'Idiotendreieck')

    /edit: Es wäre dann noch ganz praktisch, wenn du eine Möglichkeit mit einbaust, die Form wieder sichtbar zu machen, wenn der Benutzer per Trackbar auf 0 also unsichtbar gestellt hat.



  • hmm. Echt keine Ahnung wie...

    Also das geht nicht.

    Form1->AlphaBlendValue = TrackBar1->Position;
    

    Sowie das in einem Button:

    Form1->AlphaBlendValue = 100;
    

    EDIT: Hat gefunzt 😃
    Edit 2: LOL. Aber die Buttons etc. werden auch halbtransparent oder was auch immer^^...



  • mhh

    weißt du denn welche Parameter da übergeben werden?

    guck dir AlphaBlendValue genauer an
    (ich stelle hier keinen kompletten Quelltext rein, ein bisschen selber überlegen muss schon noch sein 😉 )



  • Wiso werden die Buttons oder was auch immer auch gleich so transparent?



  • naja relativ einfach

    bei dem button weist du keine zahl zu (also im eigentlichen sinne)
    hättest du dir AlphaBlendValue angeguckt wüsstest du das dort unsigned char
    verlangt wird. (was du mehr oder weniger unbewusst dadurch getan hast)

    bei der TrackBar->Position hast du einen Integer (also eine richtige Zahl)
    und ich denke mal, dass du nun auch bemerken solltest, dass das nicht ganz so funktioniert wenn du einen int in ein unsigned char reinzuprügeln versuchst 😉



  • Du hast wohl viel Ahnung von C++.

    ---> ICQ? <----

    😃



  • AlphaBlend/-Value bezieht sich nunmal auf die komplette Form, also auch die Buttons...

    Wenn Du es schöner haben willst, dann solltest Du Dich in Regions einarbeiten.



  • h4xter schrieb:

    ...eine Form tranzparent machen...

    Bin dabei davon ausgegangen das er wirklich die 'ganze' Form meinte 😉
    und deswegen auch diese Bemerkung:

    Multi schrieb:

    ...die Form wieder sichtbar zu machen, wenn der Benutzer per Trackbar (...) unsichtbar gestellt hat.



  • Mit TransparentColor gehts ja net, aber wie?



  • inwiefern?

    denke das AlphaBlendValue für dich sinnvoller ist, wobei ich nicht weiß was du vorhast.



  • Hi,

    Rostfrei[] schrieb:

    Wenn Du es schöner haben willst, dann solltest Du Dich in Regions einarbeiten.

    Vielleicht 'ne Hilfe

    mfg, Micha



  • Ohne jetzt alles gelesen zu haben, ich habs damals so gelöst:

    void __fastcall TC_Options::TrackBar1Change(TObject *Sender)
    {
        switch(TrackBar1->Position)
        {
          case 0: Form1->AlphaBlendValue = 255; break;
          case 1: Form1->AlphaBlendValue = 229.5; break;
          case 2: Form1->AlphaBlendValue = 204; break;
          case 3: Form1->AlphaBlendValue = 178,5; break;
          case 4: Form1->AlphaBlendValue = 153; break;
          case 5: Form1->AlphaBlendValue = 127,5; break;
          case 6: Form1->AlphaBlendValue = 102; break;
          case 7: Form1->AlphaBlendValue = 76,5; break;
          case 8: Form1->AlphaBlendValue = 51; break;
          case 9: Form1->AlphaBlendValue = 25,5; break;
        }
    }
    

    Grüße



  • Hallo,

    dann wärs aber einfacher die TrackBar anzupassen:

    Min = 0
    Max = 255
    Step = 25

    AlphaBlendValue = TrackBar1->Position;
    

    Aber das löst nicht das Problem dass nur das FOrm Transparent werden soll.

    mfg, Micha



  • RandomAccess85 schrieb:

    Hallo,
    Min = 0
    Max = 255
    Step = 25

    AlphaBlendValue = TrackBar1->Position;
    

    AlphaBlendValue ist unsigned char und Position ist int 😉



  • Hi,

    und?

    Set AlphaBlendValue to a value between 0 and 255 to indicate the degree of translucency when the AlphaBlend property is true. A value of 0 indicates a completely transparent window. A value of 255 indicates complete opacity.

    Tatsache ist doch dass es funktioniert :p

    mfg, Micha



  • RandomAccess85 schrieb:

    Hi,
    und?

    Set AlphaBlendValue to a value between 0 and 255 to indicate the degree of translucency when the AlphaBlend property is true. A value of 0 indicates a completely transparent window. A value of 255 indicates complete opacity.

    Tatsache ist doch dass es funktioniert :p
    mfg, Micha

    🙄
    Da steht nur, dass ein 'Wert' (kein Integer) von 0 bis 255 angegeben werden kann, sodass sich das Fenster ausblendet wenn AlphaBlend auf true ist.
    Es mag zwar gehen, also es kommt kein Fehler,
    aber passieren tut da nichts. 😉



  • Du kannst ja für jeden Button (jeden Komponenten) eine Form erstellen, die Form der Größe der Komponente anpassen und die Titelleiste ausblenden - dann hast du einen Button ohne alles drum rum 😃



  • Hi,

    Multi schrieb:

    RandomAccess85 schrieb:

    Hi,
    und?

    Set AlphaBlendValue to a value between 0 and 255 to indicate the degree of translucency when the AlphaBlend property is true. A value of 0 indicates a completely transparent window. A value of 255 indicates complete opacity.

    Tatsache ist doch dass es funktioniert :p
    mfg, Micha

    🙄
    Da steht nur, dass ein 'Wert' (kein Integer) von 0 bis 255 angegeben werden kann, sodass sich das Fenster ausblendet wenn AlphaBlend auf true ist.
    Es mag zwar gehen, also es kommt kein Fehler,
    aber passieren tut da nichts. 😉

    hast es denn mal ausprobiert? Vielleicht hab ich Augen die mich bescheißen, aber ich bin mir ziemlich sicher dass sich die Transparenz des Fensters verändert hat :p

    mfg, Micha



  • RandomAccess85 schrieb:

    Hi,

    Multi schrieb:

    aber passieren tut da nichts. 😉

    hast es denn mal ausprobiert? Vielleicht hab ich Augen die mich bescheißen, aber ich bin mir ziemlich sicher dass sich die Transparenz des Fensters verändert hat

    mhh bei mir verändert sich dort nichts 🙂


Anmelden zum Antworten