![]() |
Property als Hexadezimal
Moin,
ich würde gerne bei einer selbst abgeleiteten Komponente eine Eigenschaft im OI im Hexadezimal-Format anzeigen lassen. Es handelt sich hierbei um die landesspeziefischen Informationen für FormatSettings, die üblicherweise in Hexadezimal dargestrellt werden (z.B. $0407), mit dem Dezimalwert kann da wohl kaum einer was anfangen. Da der eigentliche Typ Integer ist, weiß ich nicht, wie ich die Anzeige im Hex-Format darstellen kann und IntToHex ist da auch keine wirkliche Lösung. Bei einer Eigenschaft vom Typ TColor geht das ja auch - wenn nicht gerade eine "Standard-Farbe" eingegeben wird, wird sie im Hex-Format dargestellt. Wäre nett, wenn irgendjemand dazu eine Idee hätte... |
Re: Property als Hexadezimal
Beim Anzeigen weiß ichs nicht - aber die Eingabe sollte auf jeden Fall mit vorangestelltem $ funktionieren.
|
Re: Property als Hexadezimal
Das ist klar...
Aber es geht mir ja gerade um die Anzeige! Wie wird das denn bei TColor gemacht ? TColor ist ja eigentlich auch nichts anderes als ein Integer-Wert.... |
Re: Property als Hexadezimal
Wahrscheinlich ist die hexadezimale Anzeige von TColor hartkodiert.
|
Re: Property als Hexadezimal
Zitat:
|
Re: Property als Hexadezimal
Du lässt es den User als $.... eingeben und wandelst diesen HexString in eine Dezimal Zahl um.
|
Re: Property als Hexadezimal
Zitat:
Es geht vielmehr um die Ausgabe, um die Anzeige. IntToHex wäre eine Möglichkeit, aber es soll eben kein String sein - sondern eine Integer-Property. |
Re: Property als Hexadezimal
1.) deine Komponente in zwei verschiedene Packages zerlegen. Dein Laufzeit-Package enthält ausschließlich nur deine Komponente. Dein Design-Time Package enthält wie das "Benutzer Package" nun eine Funktion "Register". In dieser wird deine Komponente registriert.
Soweit ist alles erstmal Standard und der vollkommen normale Weg. 2.) nun baust du in einer separaten Unit "MyKomponente_Reg.pas" eigene Property Editoren rein. In dieser Unit steht auch deine Funktion "Register". Diese Funktion erweiterst du nun indem du dort deine eigenen Property Editoren für die Delphi IDE registrierst -> RegisterPropertyEditor() etc.pp. Dein eigener Editor wird nun deine Integer-Property deiner Komponente als HEX String im OI der IDE anzeigen und editieren. Fertig. Du erweiterst also selektiv für deine Komponente->Property die Funktionalität der Delphi IDE. Wichtig dabei ist es mit diesen zwei Packages zu arbeiten. Exakt so geht auch der Editor für alle TColor Eigenschaften vor. Gruß Hagen |
Re: Property als Hexadezimal
Endlich mal ein Mann vom Fach :thumb:
Werd es gleich mal versuchen, Danke für Deine Antwort! |
Re: Property als Hexadezimal
Zitat:
so mach es ich jedenfalls ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz