![]() |
dynamischen Edits ein Onkeypress zuorden
Ich hab hier ein kleines Problem, bei dem ich irgendwie nicht weiterkomm: Ich erstelle dynamisch ein paar Edits, denen ich das gleiche keyPress zurordnen will:
Delphi-Quellcode:
Wenn ich jetzt die Edits erstelle, weiss ich nicht, wie ich die Key-Variable übergeben soll.
procedure MyKeyPress(Sender: TEdit; var Key: Char);
var str,str1,str2: string; begin //allgemeine Sperrung von allen Zeichen ausser //backspace, dem Komma und Zahlen if not (key in[#8,#44,#48..#57]) then key:=#0; // ... usw; Sieht bis jetzt so aus:
Delphi-Quellcode:
Wie kann ich das machen :gruebel:
for i:=0 to n-1 do
begin Earray[i]:= TEdit.Create(sympform); // Array of TEdit with Earray[i] do begin parent:= sympform; //... onkeypress:= MyKeyPress(Earray[i],?????); end; |
Re: dynamischen Edits ein Onkeypress zuorden
Delphi-Quellcode:
Du mußt die Methode ohne Parameter angeben. Im der OnKeyPress-Property wird nur ein Methodenzeiger mit pasender Signatur gespeichert.
for i:=0 to n-1 do
begin Earray[i] := TEdit.Create(sympform); // Array of TEdit with Earray[i] do begin parent:= sympform; //... onkeypress:= MyKeyPress; end; end; |
Re: dynamischen Edits ein Onkeypress zuorden
Delphi-Quellcode:
So müsste es gehen.
for i:=0 to n-1 do
begin Earray[i]:= TEdit.Create(sympform); // Array of TEdit with Earray[i] do begin parent:= sympform; //... onkeypress:= MyKeyPress; end; [edit]zu spät :( [/edit] |
Re: dynamischen Edits ein Onkeypress zuorden
Vielen Dank schonmal, nur leider findet der Compiler das nicht so gut:
Zitat:
|
Re: dynamischen Edits ein Onkeypress zuorden
Vielleicht so?
Delphi-Quellcode:
onkeypress:= @MyKeyPress;
|
Re: dynamischen Edits ein Onkeypress zuorden
Ne, leider auch nichts:
Zitat:
|
Re: dynamischen Edits ein Onkeypress zuorden
Ist die Prozedur als Methode des Formulars deklariert?
|
Re: dynamischen Edits ein Onkeypress zuorden
Nein, sie ist in eine Unit ausgelagert, die ich im Interface-Teil in den uses habe.
|
Re: dynamischen Edits ein Onkeypress zuorden
Versuchs mal so:
Delphi-Quellcode:
type
DasFormular = class(TForm) ... procedure MyKeyPressM(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end;
Delphi-Quellcode:
procedure DasFormular.MyKeyPressM(Sender: TObject; var Key: Char);
begin MyKeyPress(Sender, Key); end; end.
Delphi-Quellcode:
onkeypress:= MyKeyPressM;
|
Re: dynamischen Edits ein Onkeypress zuorden
also bei mir functioniert das so wie oben geschrieben, teste doch mal und hole dein mykeypress raus aus der unit und leg sie da rein, wo du das edit erstellst...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:24 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