Einzelnen Beitrag anzeigen

Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#1

LabelCompo zum Darstellen einer Zahl+Einheit

  Alt 3. Mai 2004, 10:29
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!
  Mit Zitat antworten Zitat