![]() |
(Sender as TLMDEdit) wie variabel gestalten
Hallo,
ich nutze folgende zusammen gestrickte Funtkion in meinen kleinen Tools. Nun habe ich manchmal aber verschiedene Komponenten auf der Form welche alle aber . Text (mir fällt da grad nicht der richtige Fachausdruck ein) haben. Mein Ziel ist es die Funtkion für mehrere Komponententypen zu verwenden. Nur wie? Bzw. geht das überhaupt?
Delphi-Quellcode:
procedure TForm1.OnlyNumberKeyPresswK(Sender: TObject; var Key: Char);
var Puffer1, Puffer2: String; Komma: Boolean; Senderle: ...........? begin Fehlermeldung := False; Komma := False; Puffer1 := Key; Puffer2 := (Sender as TLMDEdit).Text; //geht das z.B. so: (Sender as Senderle).Text if not (Puffer1[1] in [#8, '0'..'9', '.', ',']) then begin Puffer1 := #0; Key := #0; end; if Puffer1 = '.' then begin Puffer1 := ','; Key := ','; end; //Auf Komma prüfen if Pos(',', Puffer2) > 0 then Komma := True; //Punkteingabeposition prüfen if Komma = True then begin if Puffer1 = ',' then Puffer1 := #0; if (Sender as TLMDEdit).SelLength > 0 then begin if (Sender as TLMDEdit).SelStart > Pos(',', Puffer2) then begin Puffer1 := Key; if Key = ',' then Puffer1 := #0; end; if (Sender as TLMDEdit).SelStart <= Pos(',', Puffer2) then begin Puffer1 := Key; if (Sender as TLMDEdit).SelStart + (Sender as TLMDEdit).SelLength <= Pos(',', Puffer2) then begin if Key = ',' then Puffer1 := #0; end; end; end; if (Sender as TLMDEdit).SelLength = Length((Sender as TLMDEdit).Text) then Puffer1 := Key; end; Key := Puffer1[1]; end; |
Re: (Sender as TLMDEdit) wie variabel gestalten
Du mußt nach einem gemeinsamen Vorfahr suchen, und zu diesem dann casten.
|
Re: (Sender as TLMDEdit) wie variabel gestalten
ALso nach dem Vorfahren der TExt hat, und das ist TControl. Übergibst du als parameter eine abgeleitete klasse von TControl kannst du das machen. Musst nur aufpassen, auch TCaption ist abegeleitet von TControl, besitzt auc heinen Text, dieser ist aber nicht sichtbar und somit absolut unwichtig. aber ne fehlermeldung dürfte trotzdem net kommen :D
|
Re: (Sender as TLMDEdit) wie variabel gestalten
Höa? TCaption ist von TControl abgeleitet?
*kratz*
Delphi-Quellcode:
type TCaption = type string;
|
DP-Maintenance
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Eine delphispezifische Frage |
Re: (Sender as TLMDEdit) wie variabel gestalten
Omg man sollte keine texte schreiben wenn man zu müde ist...
ich meinte das TCaption eine Eigenschaft von TControl ist, und die TControl eine überklasse von TEdit usw. So das wann man ein TControl per Parameter "verlangt" wenn alles was man braucht (z.B. Label, Edit oder Buttons) übergeben kann, um so die Caption bzw den Text zu bearbeiten sry für mein dummes Deutsch gestern nacht :D PS: Muss halt irgendwie raus finden ob jetzt der "text" sichbar ist (Edit) oder die Caprion (Label, GrpupBox usw) BSP:
Delphi-Quellcode:
EDIT: Du kannst natürlich auch TComponent per Parameter übergeben, ich halt TControl aber für besser ;)
type
TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); private procedure AAA(Comp : TControl; Text : String); { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.AAA(Comp : TControl; Text : String); begin if Comp is TLabel //Prüfen was ein Type Comp ist then (Comp as TLabel).Caption := Text //Dann casten wir das Object und weisen den Wert zu else (Comp as TEdit).Text := Text; end; procedure TForm1.Button1Click(Sender: TObject); begin AAA(Label1, 'Test'); end; end. |
Re: (Sender as TLMDEdit) wie variabel gestalten
Zitat:
Was Du suchst dürfte ein einziger Buchstabe sein :
Delphi-Quellcode:
Reicht das immer noch nicht, dann kommt TComponentList ins Spiel.
if not (sender is TEdit) then begin
|
Re: (Sender as TLMDEdit) wie variabel gestalten
Zitat:
|
Re: (Sender as TLMDEdit) wie variabel gestalten
Mir fällt noch was auf : der "DecimalSeparator" scheint unbekannt zu sein. Verwende den mal und schon kannste aus deinen 50 Zeilen Source ca. 20 Zeilen rausschmeißen. :mrgreen:
|
Re: (Sender as TLMDEdit) wie variabel gestalten
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 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