[Delphi] Borderkleur componenten veranderen *

Pagina: 1
Acties:

  • EvdB
  • Registratie: November 2001
  • Laatst online: 15-06 15:19
Hoe kan ik de border van een button verander van kleur in runtime?
Kan dat met de standaard buttons geleverd bij Delphi 7 (TButton of TBitBtn) of moet ik op zoek naar andere componenten die dat wel kunnen. Ik ben ze alleen nog niet tegen gekomen met Google.

Verwijderd

je zou het wel moeten kunnen ja via de standaard buttons.dus kijk eens goed bij je object inspector.....er zitten vaak dingen verborgen.

  • EvdB
  • Registratie: November 2001
  • Laatst online: 15-06 15:19
Daar heb ik al gekeken maar ik kan daar niets vinden over de kleur van de border en de eventuele dikte van de border.

Verwijderd

Op het moment kan ik het programma niet bekijken(ivm stage).Maar ik probeer thuis het eens uit te zoeken.

Probeer alvast info te vinden op programmeren.pagina.nl

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06-2025

Varienaja

Wie dit leest is gek.

Ik wil niet zeuren, maar als programmeur heb je je niet met kleuren te bemoeien. De gebruiker kan zelf in windows aangeven wat ie leuke kleurtjes vindt. Persoonlijk word ik nogal moedeloos van die programma's die alles beter denken te weten.

Siditamentis astuentis pactum.


Verwijderd

Ik heb hier geen Delphi maar ik weet zeker dat je gewoon de kleur van je componenten kan veranderen.
Kijk in je property window naar de kleuren, en lees even in de manual hoe je dat runtime doet.

  • Opi
  • Registratie: Maart 2002
  • Niet online

Opi

Wellicht staan ze onder een andere tab, want ik kan me ook herinneren dat ik er in een grijs verleden mee gespeeld heb.
Varienaja schreef op 27 October 2003 @ 14:44:
Ik wil niet zeuren, maar als programmeur heb je je niet met kleuren te bemoeien. De gebruiker kan zelf in windows aangeven wat ie leuke kleurtjes vindt. Persoonlijk word ik nogal moedeloos van die programma's die alles beter denken te weten.
Het kan ook zijn dat hij het als optie wil aanbieden zodat de gebruiker de kleuren naar eigen wens kan veranderen.

  • EvdB
  • Registratie: November 2001
  • Laatst online: 15-06 15:19
Ik wil de border van de button veranderen zodat de user kan zien of de invoer gegevens allemaal zijn ingevuld voor dit onderdeel. Dus wanneer de border groen is is de input volledig, is deze rood dan is nog niet alles ingevuld. Wanneer deze geel is dan is er een conflict. Pas wanneer alle invoer velden zijn ingevuld dan pas kan het geheel worden berekend.
De user kan dit dus zien aan de kleur van de borders van de buttons.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Nee dit kan niet. Borders van Windows standaardcomponenten zoals Buttons worden via standaard API calls getekend die de systeemkleur voor 3DHighlightBorder e.d. gebruiken.

Je dient dus van Button te deriven en de paint te overloaded om er naderhand overheen te tekenen indien gewenst.

Professionele website nodig?


  • EvdB
  • Registratie: November 2001
  • Laatst online: 15-06 15:19
OK, dan ga ik maar voor de makkelijke oplossing en verander ik de font kleur.

Verwijderd

curry684 schreef op 27 oktober 2003 @ 14:53:
Nee dit kan niet. Borders van Windows standaardcomponenten zoals Buttons worden via standaard API calls getekend die de systeemkleur voor 3DHighlightBorder e.d. gebruiken.

Je dient dus van Button te deriven en de paint te overloaded om er naderhand overheen te tekenen indien gewenst.
Delphi gebruikt toch de VCL?
Gebruikt de VCL opeens standaard windows componenten? :?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18-08 21:00

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op 27 October 2003 @ 15:02:
[...]

Delphi gebruikt toch de VCL?
Gebruikt de VCL opeens standaard windows componenten? :?
Ja, is dat zo vreemd?

De VCL maakt mooi gebruik van de standaard windows componenten. Dus als je in een windows theme zegt dat je buttons allemaal rood moeten zijn, dan zijn ze dat ook. De VCL mapt gewoon naar de Windows API, alleen zie je dat als Delphi programmeur dus normaal gesproken niet.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Verwijderd schreef op 27 oktober 2003 @ 15:02:
[...]

Delphi gebruikt toch de VCL?
Gebruikt de VCL opeens standaard windows componenten? :?
Moet jij eens voor de lol de VCL-sources opentrekken :)

En het feit dat er public properties WindowProc e.d. zijn had je ook nog niet gelinked aan standaard Win32-methodieken? ;)

Professionele website nodig?


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 15-08 18:56

alienfruit

the alien you never expected

wm_ncpaint opvangen en non client area van de control wijzigen is de makkelijkste manier, als je geen afleidsels wilt maken van de desbetreffende component.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

alienfruit schreef op 27 oktober 2003 @ 15:29:
wm_ncpaint opvangen en non client area van de control wijzigen is de makkelijkste manier, als je geen afleidsels wilt maken van de desbetreffende component.
Mjah, ik vind persoonlijk in een derived class de WndProc overloaded netter dan met een hook-in method de WindowProc property omleiden.

Je maakt stukken duidelijker dat je echt een subclassed control hebt...

Professionele website nodig?

Pagina: 1