Hallöchen, ich arbeite gerade an einem Programm für den Haushalt (zum Nachrechnen, damit man nicht zu viel bezahlt
). Habe mir dazu eine LabelCompo gebastelt, in die man
-eine Zahl eingeben und auslesen kann (1. neue Property)
-die Einheit (z.B. €) eingeben und auslesen kann (2. neue Property)
Die Caption braucht eigentlich nurnoch ReadOnly zu sein, da man an ihr nurnoch alles zusammen abliest
Bsp:
Code:
Zahl = 15,03;
Einheit = '€';
-> Caption = '15,03 €';
Aber ich scheine aus der Übung gekommen zu sein (habs schon lange nicht mehr gemacht), im Test auf nem Formular war jedenfalls nichts zu sehen, bein momentan so ziemlich ratlos
Delphi-Quellcode:
unit EinheitLbl;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, StdCtrls;
type
TEinheitLbl =
class(TLAbel)
private
bEinheit:
String;
bZahl: Double;
bCaption:
String;
procedure SetCaption(S:
String);
procedure SetZahl(D: Double);
procedure SetEinheit(S:
String);
function GetEinheit:
String;
function GetZahl: Double;
function GetCaption:
String;
{ Private-Deklarationen }
protected
{ Protected-Deklarationen }
public
{ Public-Deklarationen }
published
property Caption:
String read GetCaption
write SetCaption;
property Einheit:
String read GetEinheit
write SetEinheit;
property Zahl: Double
read GetZahl
write SetZahl;
{ Published-Deklarationen }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('
Samples', [TEinheitLbl]);
end;
function TEinheitLbl.GetCaption:
String;
begin
try
Result := bCaption;
except
on EConvertError
do
Result := '
#ERROR#';
end;
end;
procedure TEinheitLbl.SetCaption(S:
String);
begin
bCaption := S;
end;
procedure TEinheitLbl.SetZahl(D: Double);
begin
bZahl := D;
bCaption := FloatToStr(bZahl)+'
'+bEinheit;
end;
procedure TEinheitLbl.SetEinheit(S:
String);
begin
bEinheit := S;
bCaption := FloatToStr(bZahl)+'
'+bEinheit;
end;
function TEinheitLbl.GetEinheit:
String;
begin
try
Result := bEinheit;
except
on EConvertError
do
Result := '
#ERROR#';
end;
end;
function TEinheitLbl.GetZahl: Double;
begin
try
Result := bZahl;
except
on EConvertError
do
Result := 0;
end;
end;
end.
Das ist mein TEinheitLbl.
Bitte helft mir!