Autor Beitrag
SmileySN
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 297

WinXP, Win7
Delphi 2010 Professional
BeitragVerfasst: Do 23.03.06 19:49 
Kann man OnClick-Ereignisse z.B. von Form1 in unit2 auslagern ?
wenn ja was muss man dazu machen, damit noch alles gefunden wird ?
Vera
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 82

WinXP Home
Delphi 2005 Personal
BeitragVerfasst: Do 23.03.06 19:51 
Ja, das fuktioniert.

Nur bedenke, dass es sich dabei um eine Methode und keine Procedure handeln muss.
SmileySN Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 297

WinXP, Win7
Delphi 2010 Professional
BeitragVerfasst: Do 23.03.06 20:54 
Na immerhin es soll also grundsätzlich funktionieren.
Jetzt stellt sich nur noch die Frage wie ?

Nehmen wir als Beispiel die OnKeyPress Routine von Form1.

Die soll in Unit2, dort habe ich aber keine Form mit angelegt, ich hoffe das stellt kein Problem dar.
In dieser Routine habe ich aber auch den Befehl Perform(WM_NextDlgCtl, 0, 0); verwendet, den erkennt er in Unit2 nicht.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
//----------------------------------------------------------------------------//
//-----Return-Taste abfangen und wenn gedrückt zum nächsten Feld springen-----//
//----------------------------------------------------------------------------//

procedure TForm1.EdBarcodeKeyPress(Sender: TObject; var Key: Char);
begin
  if key = chr(vk_Return) then
    begin
      Key := #0;
      Perform(WM_NextDlgCtl, 00);
    end;
end;

procedure TForm1.EdMandantKeyPress(Sender: TObject; var Key: Char);
begin
  if key = chr(vk_Return) then
    begin
      Key := #0;
      Perform(WM_NextDlgCtl, 00);
    end;
//  if not (key in ['0'..'9', 'A'..'Z', 'a'..'z', '-', '(', ')', #8, #9]) then key := #0;
end;


Oder fällt jemand noch eine bessere Möglichkeit ein um z.B. die Keypress Ereignisse zu zentralisieren und zu optimieren.

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt
SmileySN Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 297

WinXP, Win7
Delphi 2010 Professional
BeitragVerfasst: Mi 19.04.06 11:06 
user profile iconVera hat folgendes geschrieben:
Ja, das fuktioniert.

Nur bedenke, dass es sich dabei um eine Methode und keine Procedure handeln muss.


Was wollen uns diese Worte sagen !

Eine Procedure setze ich einfach in eine andere Unit in den Implementation Teil, deklariere sie im Interface Teil und setze die HerkunftsUnit in die Uses Klausel unter Implementation dazu.

Wie geht das bei Methoden ????
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mi 19.04.06 11:11 
Methoden gehören zu einer Klasse. Diese muß also instantiiert werden (kann im Initialisierungsteil der Unit automatisch geschehen). Unit in uses einbinden, dann kanst du auf die Methoden zugreifen. Einfach obj.onClick := envclass.onObjClick;

_________________
Markus Kinzler.