Delphi-PRAXiS
Seite 1 von 2  1 2      

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 dynamischen Edits ein Onkeypress zuorden (https://www.delphipraxis.net/33404-dynamischen-edits-ein-onkeypress-zuorden.html)

Nikolas 6. Nov 2004 13:38


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:
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;
Wenn ich jetzt die Edits erstelle, weiss ich nicht, wie ich die Key-Variable übergeben soll.
Sieht bis jetzt so aus:
Delphi-Quellcode:
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;
Wie kann ich das machen :gruebel:

Bernhard Geyer 6. Nov 2004 13:41

Re: dynamischen Edits ein Onkeypress zuorden
 
Delphi-Quellcode:
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;
Du mußt die Methode ohne Parameter angeben. Im der OnKeyPress-Property wird nur ein Methodenzeiger mit pasender Signatur gespeichert.

Neutral General 6. Nov 2004 13:42

Re: dynamischen Edits ein Onkeypress zuorden
 
Delphi-Quellcode:
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;
So müsste es gehen.
[edit]zu spät :( [/edit]

Nikolas 6. Nov 2004 13:49

Re: dynamischen Edits ein Onkeypress zuorden
 
Vielen Dank schonmal, nur leider findet der Compiler das nicht so gut:

Zitat:

[Fehler] Unit2.pas(59): Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'

Mystic 6. Nov 2004 13:50

Re: dynamischen Edits ein Onkeypress zuorden
 
Vielleicht so?

Delphi-Quellcode:
onkeypress:= @MyKeyPress;

Nikolas 6. Nov 2004 13:53

Re: dynamischen Edits ein Onkeypress zuorden
 
Ne, leider auch nichts:
Zitat:

[Fehler] Unit2.pas(59): Inkompatible Typen: 'TKeyPressEvent' und 'Pointer'

Mystic 6. Nov 2004 14:27

Re: dynamischen Edits ein Onkeypress zuorden
 
Ist die Prozedur als Methode des Formulars deklariert?

Nikolas 6. Nov 2004 14:29

Re: dynamischen Edits ein Onkeypress zuorden
 
Nein, sie ist in eine Unit ausgelagert, die ich im Interface-Teil in den uses habe.

Mystic 6. Nov 2004 14:34

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;

ibp 6. Nov 2004 14:37

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 02:13 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz