Hallo NG,
ich erzeuge zur Laufzeit mehrere Formblätter mit mehreren Prozeduren.
Beispiel:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| TProfil = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } .... procedure MsDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); ... |
Darin befindet sich auch ein MausDown Ereignis, dass wie folgt definiert ist:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| for l:=1 to lochnummer do .... Application.CreateForm(TForm,Profil[lochnummer]); with profil[lochnummer] do begin .... tag:=lochnummer; Bild[lochnummer]:=TImage.Create(Profil[lochnummer]); bild[lochnummer].parent:=profil[lochnummer]; bild[lochnummer].OnMouseDown:=MsDown; ... |
Die Prozedur MSDown ist wie folgt definiert:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| Procedure TProfil.MsDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Var ort : integer; begin application.messagebox(Pchar('Ort: '+inttostr(ort)+' x: '+inttostr(x)+' y:'+inttostr(y)),'TEST',MB_OK); end; //******************************************************************* |
So, das alles funktioniert recht gut und das Ereignis MSDown wird auch sauber ausgeführt. Das Image BILD und PROFIL sind arrays und die Variable "Lochnummer" wird über das PROFIL[..].tag zugewiesen. Nun möchte ich wissen, auf welchen Formblatt der Benutzer gerade geklickt hat. Jedes Formblatt (also PROFIL[..]) hat im TAG einen bestimmten Wert zugewiesen. Aus diesem Grund dachte ich, ich könnte das Mausereignis einfach erweitern und den TAG des PROFIL mitgeben. Also gewissermassen so:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| Procedure TProfil.MsDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y, ORT: Integer); Var ort : integer; -- > gibt den TAG des Profil[..] an. begin application.messagebox(Pchar('Ort: '+inttostr(ort)+' x: '+inttostr(x)+' y:'+inttostr(y)),'TEST',MB_OK); end; //******************************************************************* |
Das ganze funzt aber nicht bzw. ich weiss nicht, wie ich das machen kann. Ich möchte also eigentlich nur wissen, auf welches Formblatt (also PROFIL[..]) der Benutzer geklickt hat. Ich dachte, ich könnte das mit focused machen. Da aber auf dem Form ein Image ist und dieses nicht die Eigenschaft focused besitz, funzt das nicht.
Kann mir da jemand helfen ?
Gruss
Markus