Abweichendes Verhalten bei Bitmap Color-Eigenschaft zwischen W2K und XP



  • Hallo,

    in meiner Anwendung übergebe ich ein Bitmap (schwarzes Karo auf weißem Hintergrund) an ein Image-Objekt, dessen Transparent-Eigenschaft auf true steht.

    Auf einem Formular mit Standardfarbe (grau) wird in W2K wunschgemäß nur das schwarze Karo dargestellt. In XP dagegen auch der weiße Hintergrund. Is that a bug or what?!

    Gruß
    Leo



  • Hallo,

    hat denn wirklich niemand Erfahrung in diesen Dingen oder eine Idee?
    Oder ist die Frage unklar?

    Gruß
    Leo



  • Hast du dich schon mit TransparentColor und TransparentMode befasst?



  • Jansen schrieb:

    Hast du dich schon mit TransparentColor und TransparentMode befasst?

    Hallo,

    Nein, habe ich nicht. Werde ich da die Antwort finden, warum das Verhalten zwischen W2K und XP unterschiedlich ist?

    Gruß
    Leo



  • Hallo,

    nach wie vor tappe ich im Dunkeln, was das unterschiedliche Verhalten zwischen W2K und Xp betrifft.

    Hier nochmal das Phänomen:

    Wenn in W2K die Transparent-Eigenschaft eines TImage auf true steht, wird das im TImage enthaltene Bitmap transparent dargestellt. In XP dagegen ist es nicht transparent.

    Steht die Transparent-Eigenschaft auf false, ist das Verhalten in W2K und Xp gleich.

    Woran kann das liegen?

    Gruß
    Leo



  • Ich denke mal, dass liegt daran, dass Bitmaps keine Transparenz unterstützen, und die Komponente dann selbst berechnet, welche Farbe nicht angezeigt werden soll (in der Regel entscheidet sie sich dann für die Flächendeckendste, da diese wohl am ehesten der Hintergrund sein würde...).

    Wenn da was schief läuft... naja, dann wird halt keine Farbe transparent angezeigt oder eine, die in der Bitmap nicht enhalten ist. Dann musst du der Property TransparentColor die Farbe übergeben, die transparent dargestellt werden soll... oder du nimmst gleich ein Format, dass das wesentlich besser unterstützt (z.B. Portable Network Graphics).



  • Hallo,

    Soweit ich mich erinnere, ist die Transparentfarbe, die Farbe des Pixels ganz unten links (im Bild).
    Ansonsten, ist den die Hintergrundfarbe bei beiden Windows (2000 und XP) gleich ? Also nicht "clBtnFace" oder so, sondern evtl. "clSilver". Wenn es ein fester Wert ist (und das ist "clBtnFace" nicht), sollte es sich gleich verhalten.

    Nash


Anmelden zum Antworten