![]() |
LabelCompo zum Darstellen einer Zahl+Einheit
Hallöchen, ich arbeite gerade an einem Programm für den Haushalt (zum Nachrechnen, damit man nicht zu viel bezahlt :P ). 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:
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 :gruebel:
Zahl = 15,03;
Einheit = '€'; -> Caption = '15,03 €';
Delphi-Quellcode:
Das ist mein TEinheitLbl.
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. Bitte helft mir! |
Re: LabelCompo zum Darstellen einer Zahl+Einheit
Hei F.W.,
wo setzt Du denn die Eigenschaft caption von TLabel? |
Re: LabelCompo zum Darstellen einer Zahl+Einheit
Moin!
Und warum definierst du noch eine Caption ? Du leitest ja von TLabel und nicht von TCustomLabel ab und somit hast du schon eine Property Caption die du überschreibst und neu definierst, aber wozu? Im Normalfall kann die doch sogar versteckt bleiben, da die Caption sich immer aus deinen 2 neuen Properties zusammensetzt. MfG Muetze1 |
Re: LabelCompo zum Darstellen einer Zahl+Einheit
Mit der Caption ist das so, die wollte ich erst nochmal mit hinschreiben, um eine NurLesenEigenschaft aus ihr zu machen, aber irgendwann ist mir aufgefallen, das ich dann nichtmal die zwei anderen in sie reinschreiben kann.
Wie gesagt, da sind garantiert mehr als 10 Sachen falsch, aber ich brings nicht mehr richtig! So please help! |
Re: LabelCompo zum Darstellen einer Zahl+Einheit
Ach! Is ja ganz klar, dass da nix mehr angezeigt wird, wenn ich Caption neu definiere! Ich hab jetzt alles was mit der property Caption zusammenhängt weggemacht (außer das gleichsetzen der Caption beim Ändern der zwo neuen Werte)
Aber trotzdem danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 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-2025 by Thomas Breitkreuz