Also habe das jetzt erstmal wie folgt gelöst:
Delphi-Quellcode:
type TZahltyp = (ZtGanzzahl, ZtposGanzzahl, ZtGleitkommazahl, ZtposGleitkommazahl);
Type TLabZahlEdit = Class(TWinControl)
private
...
FvValue: Variant;
...
procedure SetValue(vWert: Variant);
function GetValue: Variant;
protected
...
published
...
property Value: Variant read GetValue write SetValue;
public
...
end;
procedure TLabZahlEdit.SetValue(vWert: Variant);
var sTemp: string;
dTemp: double;
iTemp: integer;
begin
// es muss bei der Konvertierung darauf geachtet werden, dass ein int auch in
// ein double umgewandelt werden kann und somit muss anhand des eingestellten
// Zahlentyps die richtige Konvertierung durchgeführt werden.
sTemp := vartostr(vWert);
if sTemp <> Null then
begin
case FEdEingabe.Zahlart of
Ganzzahl: if trystrtoint(sTemp, iTemp) then
begin
FvValue := vWert;
SetText(sTemp);
end;
posGanzzahl: if trystrtoint(sTemp, iTemp) then
begin
FvValue := vWert;
SetText(sTemp);
end;
Gleitkommazahl: if trystrtofloat(sTemp, dTemp) then
begin
FvValue := vWert;
SetText(sTemp);
end;
posGleitkommazahl: if trystrtofloat(sTemp, dTemp) then
begin
FvValue := vWert;
SetText(sTemp);
end;
end;
end;
end;
function TLabZahlEdit.GetValue: Variant;
var sTemp: string;
iTemp: integer;
dTemp: double;
begin
sTemp := vartostr(FvValue);
case FEdEingabe.Zahlart of
Ganzzahl: if trystrtoint(sTemp, iTemp) then result := strtoint(sTemp);
posGanzzahl: if trystrtoint(sTemp, iTemp) then result := strtoint(sTemp);
Gleitkommazahl: if trystrtofloat(sTemp, dTemp) then result := strtofloat(sTemp);
posGleitkommazahl: if trystrtofloat(sTemp, dTemp) then FvValue := strtofloat(sTemp);
end;
end;
Könnt ihr euch ja vieleicht mal anschauen, ob ich da jetzt einen Denkfehler drin hab oder ob das ok ist. Danke euch auf jeden Fall für eure Anregungen.
MfG
BAMatze
2. Account Sero