Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Per Quelltext Sender und Key übergeben -> Fehler (https://www.delphipraxis.net/16962-per-quelltext-sender-und-key-uebergeben-fehler.html)

daywalker-dj-k 26. Feb 2004 12:18


Per Quelltext Sender und Key übergeben -> Fehler
 
hallo,
ich möchte diese funktion aufrufen aus einer anderen unit aufrufen:

procedure TForm1.AuftragArtikel(Sender: TObject; var Key: Char);

wie mache ich das nun?
habe schon folgendes probiert:

Delphi-Quellcode:
Form1.AuftragArtikel(TEdit(Form1.FindComponent('NewEditAuftragArtNr_' + inttostr(i))), #13);
Form1.AuftragArtikel(TEdit(Form1.FindComponent('NewEditAuftragArtNr_' + inttostr(i))), '#13');
Form1.AuftragArtikel(TEdit(Form1.FindComponent('NewEditAuftragArtNr_' + inttostr(i))), pchar(#13));
Form1.AuftragArtikel(TEdit(Form1.FindComponent('NewEditAuftragArtNr_' + inttostr(i))), pchar('#13));
leider klappt nichts davon. ich erhalte immer folgende fehlermeldung:
"die typen der tatsächlichen und realen var-parameter müssen übereinstimmen".

wo liegt nun mein fehler? der sender müsste eigentlich richtig sein ... hoffe ich :-)

danke vielmals
gruß
tkliewe

[edit=sakura] [delphi]-Tags Mfg, sakura[/edit]

Matze 26. Feb 2004 12:28

Re: Per Quelltext Sender und Key übergeben -> Fehler
 
Ich denke auf jeden Fall, dass die 2 oberen #13 auch PChar(#13) heißen muss. Vielleicht irre ich mich auch.

himitsu 26. Feb 2004 12:42

Re: Per Quelltext Sender und Key übergeben -> Fehler
 
#13 ist schon richtig (für Char)


aber #13 ist eine Konstante und in der Prozedurendeklaration hast du das als Variable deklariert.
Delphi-Quellcode:
procedure TForm1.AuftragArtikel(Sender: TObject; Key: Char);

Form1.AuftragArtikel(TEdit(Form1.FindComponent('NewEditAuftragArtNr_' + inttostr(i))), #13);

Und da du es ja schon als TEdit übergibst, solltest du's eventuell auch TEdit annehmen.
Delphi-Quellcode:
procedure TForm1.AuftragArtikel(Sender: TEdit; Key: Char);

Form1.AuftragArtikel(TEdit(Form1.FindComponent('NewEditAuftragArtNr_' + inttostr(i))), #13);

daywalker-dj-k 26. Feb 2004 13:12

Re: Per Quelltext Sender und Key übergeben -> Fehler
 
hallo,
@ himitsu

leider klappt das so auch nicht. immer noch die gleiche fehlermeldung.

gruß
tkliewe

Robert_G 26. Feb 2004 13:16

Re: Per Quelltext Sender und Key übergeben -> Fehler
 
Ist "AuftragArtikel" ein Eventhandler, der auf Tastatureingaben reagiert?
Wenn ja, dann mache einfach das hier:
Delphi-Quellcode:
Var
  fcComp                               : TWinControl;
  i                                    : Integer;
Begin

  i := 1;
  fcComp := FindComponent('NewEditAuftragArtNr_' + IntToStr(i)) As TWinControl;
  While fcComp <> Nil Do
  Begin
    SendMessage(fcComp.Handle, WM_KEYDOWN, ord(#13), 0);
    SendMessage(fcComp.Handle, WM_KEYUP, ord(#13), 0);
    inc(i);
    fcComp := FindComponent('NewEditAuftragArtNr_' + IntToStr(i)) As TWinControl;
  End;
End;
Das drückt in dem Control die Entertaste und lässt sie wieder los.

Jens Schumann 26. Feb 2004 13:25

Re: Per Quelltext Sender und Key übergeben -> Fehler
 
Hallo,
himitsu hat recht. Evt hat er es vielleicht etwas verschlüsselt ausgedrückt.
Delphi-Quellcode:
procedure TForm1.AuftragArtikel(Sender: TObject; var Key: Char);
Das Parameter Key ist ein VAR-Parameter. Da kann man keine Konstante übergeben.
So geht es:
Delphi-Quellcode:
var
  aChar : Char
begin
  aChar:=#13;
  Form1.AuftragArtikel(TEdit(Form1.FindComponent('NewEditAuftragArtNr_' + inttostr(i))), aChar);
end;

daywalker-dj-k 26. Feb 2004 14:03

Re: Per Quelltext Sender und Key übergeben -> Fehler
 
hallo,
mit der methode von Jens Schumann hat es geklappt.

vielen dank an alle.
mfg
tkliewe


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:33 Uhr.

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