[delphi] TSpeedButton disabled glyph

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Ik heb eeb SpeedButton en op die speedbutton heb ik een bitmap waarin voor allevier de states van de speedbutton een glyph zit. Dus een voor normal, disabled, clicked en down. Dit werkt overigens perfect. Ook leuk dat wit en grijs worden omgezet naar clBtnHighlight en clBtnShadow voor een disabled glyph.

Het gekke is dat alléén op Windows 95 werkt die disabled glyph niet. De andere glyphs worden wel correct weergegeven. Ook op Windows 98 werkt het verder prima. NT4 weet ik niet. Ik gok zelf dat het em ergens in die conversie zit, maar die ga ik natuurlijk niet aanpassen (zit in de VCL ;)).

Op internet wordt eigenlijk alleen maar geroepen dat je een bitmap moet hebben van 4:1 ratio en welke glyphs daar dan in moeten, maardat is allemaal tiptop in orde. Een trekje van Windows 95 dus, waar ik omheen moet werken... Weet iemand misschien hoe?

日本!🎌


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Alle benodigde glyphs aanleveren, ook de door jouwzelf dedisablede versie, is toch een oplossing?

We adore chaos because we like to restore order - M.C. Escher


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Ja dat doe ik dus, en ze werken ook allemaal, behalve de gedisablede op Windows 95.

日本!🎌


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

ah, ik begreep dat je de VCL zelf die gedisablede liet maken. Misschien ligt het aan die unieke glyph? Of hebben alle glyphs dat probleem? Ook degene die Borland meelevert?

We adore chaos because we like to restore order - M.C. Escher


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Is met alle glyphs hetzelfde probleem. Maar ik heb ontdekt dat in standaard VGA mode (met standaard VGA driver dus ook), doet de disabled glyph het al beter: het donkergrijze krijg je te zien, maar het witte randje (jeweetwel, om het reliëf effect te krijgen) weer niet...

Dus dan gok ik dat de API om dat disabled icoontje weer te geven, een beetje bugt. Maar er moet dus wel een nette manier zijn om daar omheen te werken, lijkt me?

日本!🎌


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Als je zelf het gedisablede plaatje meeneemt (glyph in 4 delen) dan neem ik aan die niets anders wordt gedaan als anders en gewoon het plaatje weergegeven wordt. Er hoeft dan immers niets disabled gemaakt te worden. Of vergis ik me daarin?

We adore chaos because we like to restore order - M.C. Escher


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Je vergist je daarin. Als je de source van de VCL hebt, moet je maar es kijken wat een SpeedButton doet als ie gedisabled wordt. Je kunt dan zien, in TButtonGlyph.CreateButtonGlyph, dat met o.a. een drietal BitBlt calls clGray, clWhite en de transparente kleur omgezet worden in respectievelijk clBtnShadow, clBtnHighlight en clBtnFace.

日本!🎌

Pagina: 1