![]() |
Shape OnClick Event?
Guten Tag,
ich Programmiere derzeit im Rahmen des Schulunterrichts ein Billard-Spiel in Delphi. Der Tisch steht soweit und die Kugel kollidieren auch korrekt miteinander und mit der Wand. Nun habe ich die Kugeln als ein Array genommen und per Shape erstellt. Wenn nun ein Foul auftreten würde und die Weiße Kugel bewegt werden müsste, muss man dies ja per OnClick auf den Shape der Weißen Kugel ( Kugeln[0].OnClick ?!) machen. Doch dies kann man ja logischerweise nicht per Prozedur machen, da es sich halt wie schon gesagt um ein Array handelt. Kennt ihr irgendeine bessere Lösung als die von meinem Lehrer: OnClick-Event auf das komplette Formular, dann die Mouse-Position nehmen und dann schauen welche Shape-Position am nähsten von der Mouse-Position ist und diese dann übernehmen. Gz ThY |
Re: Shape OnClick Event?
HI ThYpHoOn,
1. würd ich deimen Lehrer nicht OnClick empfehlen, sondern OnMouseDown / OnMouseMove. 2. Zitat:
3. Zitat:
rollstuhlfahrer |
Re: Shape OnClick Event?
Delphi-Quellcode:
type
TFormX = class(TForm) private procedure MeineOnClickProcedure(Sender: TObject); end; // procedure TFormX.MeineOnClickProcedure(Sender: TObject); begin showmessage('Ich wurde von ' + (Sender as TShape).name + ' aufgerufen!'); end; // die Prozedur dem Event zuweisen: Kugeln[0].OnClick := MeineOnClickProcedure; // wenn du sie wieder entfernen willst Kugeln[0].OnClick := nil; |
Re: Shape OnClick Event?
TShape hat kein OnClick-Ereignis :wink:
|
Re: Shape OnClick Event?
Zitat:
Dann machs halt mit nem OnMouseUp (nachgeschaut, das gibts xD) |
Re: Shape OnClick Event?
Hallo ich habe die gleiche Situation nur dass es sich bei mir um ein Bild handelt (Timage).
Allerdings kriege ich as nicht wie oben beschrieben hin...
Delphi-Quellcode:
type
TForm1 = class(TForm) public { Private-Deklarationen } procedure OnImageClick(Sender: TObject); end; // procedure TForm1.OnClick(Sender: TObject); begin showmessage('test'); end; // die Prozedur dem Event zuweisen: fields[1,1].pic.onclick := OnImageClick; //fields ist ein zweidimensionaler Array von einem record mit der Variable pic (Timage) //hier die fehlermeldung dieser Zeile: Undefinierter Bezeichner: 'OnImageClick' weis da jemand weiter? |
Re: Shape OnClick Event?
Zitat:
Dafür gibts 2 Lösungswege: 1) Du verschiebst den im Beitrag genannten Teil des Quelltextes in eine Prozedur von TForm1 -ODER- 2) (hierfür brauchst du ne Variable vom Typ TForm1) Du weist hier Form1.OnImageClick zu. Bernhard |
Re: Shape OnClick Event?
Vielen Dank das war es nicht ich habe den Fehler aber schon gefunde, hatte eine Prozedur an falscher Stelle deklariert trozdem vielen Dank
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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