![]() |
TComponent <> TEdit
Wunder schoenes Wochenende an Euch alle!
Ich hab folgendes Problem und spontan keine Ahnung wie ich das umschiffe...
Code:
Hat rgendwer von Euch vielleicht eine??
procedure TForm1.MoveChange(Edit: TEdit);
begin if not Ord(Edit.Text[Edit.SelStart-1]) in [Ord('0')..Ord('9')] then Edit.Undo; if Length(Edit.Text) >= 2 then SelectNext(ActiveControl as TWinControl, true, true); end; procedure TForm1.FormCreate(Sender: TObject); var i: Integer; MyEdit: TEdit; begin for i:=0 to Form1.ComponentCount-1 do if Form1.Components[i] is TEdit then begin MyEdit := Form1.Components[i]; //[Error]: Incompatible types: 'TEdit' and 'TComponent' MyEdit.OnChange := MoveChange(Form1.Components[i]); end; end; Gruss Jakunar |
AW: TComponent <> TEdit
Du musst das Objekt Casten
Delphi-Quellcode:
MyEdit := TEdit(Form1.Components[i]);
|
AW: TComponent <> TEdit
Alles klar!
Waermsten Dank funktioniert super! |
AW: TComponent <> TEdit
Hier hattest du ja schon über IS geprüft, ob es ein TEdit ist, weswegen ein harter Cast ala
Delphi-Quellcode:
ohne Probleme möglich ist.
TEdit(Components[i])
Wenn es vorher mal nicht geprüft werden sollte, dann besser einen weichen Cast ala
Delphi-Quellcode:
verwenden.
(Components[i] as TEdit)
PS: Da dieses eh innerhalb der TForm1 steht, ist das
Delphi-Quellcode:
unnötig.
Form1.
Abgesehn davon solltest du möglichst auf diese globalen Variablen verzichten, da sie eigentlich mehr Schaden, als Nutzen anrichten können. |
AW: TComponent <> TEdit
Zitat:
Delphi-Quellcode:
Self
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 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