Omschrijving:
NLDDigiLabel is een grafisch component (afgeleide van TGraphicControl) welke ongeveer hetzelfde werkt als een normale TLabel, waarbij er in plaats van een string een Integer-waarde wordt weergegeven in een zogenaamd digitaal formaat. Zie onderstaand plaatje voor een voorbeeld.
Oorsprong:
Eeeuuhmm, die ligt bij dit onderwerp. Dat onderwerp sprak me aan en ik zag er een uitdaging in om er een netjes component van te maken. Een aantal ideeën die bij dat onderwerp zijn besproken of gepost heb ik gebruikt bij het maken van dit component. Gebruiken doe ik dit component overigens zelf niet, het was slechts voor de hobby.
Gebruik:
Plaats een TNLDDigiLabel component op je Form, Frame of ander WinControl en stel daarvan de volgende property's in:Met de methods IncValue en DecValue kun je de property Value op een eenvoudige manier manipuleren.
- DigitCount: geeft 1 tot 11 cijfers weer,
- DigitFont: kies uit een vijftal voorgedefinieerde "fonts", of maak een eigen DigitFont aan volgens de bijgeleverde handleiding. Afwijkend van een normaal font is dat het formaat van het DigitFont in het fonttype is opgeslagen. Zie ook de property DigitScale,
- DigitScale: verschaal het font,
- Color: de achtergrondkleur van het label,
- DigitColor: de kleur van de oplichtende segmenten van een cijfer,
- DigitGrayColor: de kleur van de niet-oplichtende segmenten van een cijfer,
- Alignment, Layout, Transparent, OnMouseEnter/Leave: zoals we die kennen van TLabel,
- Value: de Integer-waarde waarmee je de "tekst" die het label weergeeft bepaald.
Voordelen:
Tja, zoals voor elk component geldt: sleep het op je form en je hebt er geen omkijken meer naar...
Nadelen:
Bij een hoge refreshrate (bijvoorbeeld met een Timer de Value property elke 50 milliseconden bijwerken) dan gaat het component flikkeren. Omdat het component een TGraphicControl is en daarom geen WindowHandle heeft, vond ik het niet gepast om dit nadeel binnen het component zelf op te lossen. De juiste oplossing is de DoubleBuffered property van de Parent op True zetten.
Bugs:
Voor zover ik weet zijn er geen bugs. Meldt ze alsjeblieft wel!
Openstaande ideeën:
- Eventueel decimale getallen kunnen weergeven,
- Eventueel tekst kunnen weergeven (uitgebreider font nodig, hoewel dergelijke fonts ongetwijfeld gewoon in conventionele types bestaan),
- Value truncen naar aantal digits. Hier is bewust niet voor gekozen,
- Ingebouwde timer. Ook hier is bewust niet voor gekozen.
- ...
Disclaimer:
Het component is ongetwijfeld in vele gedaantes via andere componentensets verkrijgbaar, maar zou de wereld er niet stukken beter uitzien met de standaard componentenset van Borland, slechts aangevuld met die van NLDelphi?
Waar te vinden?
- Op de Subversion server, zie http://svn.nldelphi.com/nldelphi/ope.../nlddigilabel/.
Wensen, opmerkingen, bugreports, bugsolutions, en alle andere vragen verneem ik graag in een aparte thread.
Veel plezier...
Bookmarks