Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Label (https://www.delphipraxis.net/20412-label.html)

Helmi 17. Apr 2004 14:58


Label
 
Hallo Jungs,

ich brauche dringend eure Hilfe: :wall:

ich brauche ein Label mit dem Event OnChange

kann mir da jemand helfen? :gruebel:

mfg
Helmi

SirThornberry 17. Apr 2004 14:59

Re: Label
 
Bastel einfach ne neue Komponente und leite diese von TLabel ab. Dort überschreibst du dann einfach Caption und Font je nach dem bei was alles dein onChange aufgerufen werden soll

Helmi 17. Apr 2004 15:02

Re: Label
 
würde ich ja gerne
aber irgendwie bin ich zu blöd dazu

ich hab mcih schon mal an einem TEdit gehalten und hab´s dort abgeschaut
bringt aber nix

Nicolai1234 17. Apr 2004 15:06

Re: Label
 
Ein Label ändert sich aber nur dann, wenn du es im sagst also kannst du doch schreiben:
Delphi-Quellcode:
Label1.caption := 'Beispiel';
DeineProcedure;
Oder täusche ich mich da?

SirThornberry 17. Apr 2004 15:06

Re: Label
 
So sollte es gehen
Delphi-Quellcode:
[...]
type
  TOwnLabel = class(TLabel)
  private
    FChangeEvent: TNotifyEvent;
    function FGetCaption: TCaption;
    procedure FSetCaption(AValue: TCaption);
  published
    property Caption read FGetCaption write FSetCaption;
    property OnChange: TNotifyEvent read FChangeEvent write FChangeEvent;
  end;

[...]
implementation

function TOwnLabel.FGetCaption: TCaption;
begin
  result := inherited Caption;
end;

procedure TOwnLabel.FSetCaption(AValue: TCaption);
begin
  inherited Caption := AValue;
  if Assigned(FChangeEvent) then FChangeEvent(Self);
end;

himitsu 17. Apr 2004 15:06

Re: Label
 
Da der Text in einem Label ja nur Programmseitig geändert werden kann, ist sowas nicht vorgesehn. aber du kannst ja die Änderung umleiten


statt
Delphi-Quellcode:
Label1.Caption := 'Der neue Text'
z.B. enfach
Delphi-Quellcode:
Procedure Label1_Caption(S: String);
  Begin
    Label1.Caption := S;
    ... // Text an Label1 gesendet
  End;


Label1_Caption('Der neue Text');
oder nur wenn der Text wirklich geändert wurde
Delphi-Quellcode:
Procedure Label1_Caption(S: String);
  Begin
    If Label1.Caption = S Then Exit;
    Label1.Caption := S;
    ... // der Text im Label1 wurde geändert
  End;


Label1_Caption('Der neue Text');

Bei ... kannst du eintragen, was du willst.

[OT]mein IE war verreckt :cry:

Helmi 17. Apr 2004 15:34

Re: Label
 
Vielen herzlichen Dank, SirThornberry

Hat prima funktioniert :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 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