Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - On mouse down mit on key down kombinieren


Zlatan - Di 08.03.11 14:04
Titel: On mouse down mit on key down kombinieren
Ich habe dieses lustige Spiel gemacht bei dem man mit dem Mauszeiger keine Panels berühren darf.
NUn soll man nachdem man ein Image "eingesammelt" hat mit Hilfe der Leertaste Dynamit legen können.

Mein Problem ist, dass das Dynamit an der Stelle platziert werden soll, wo der Mauszeiger gerade ist.
DAs nächste Panel im Umkreis soll dann unsichtbar werden.
Geht das?

Hier ist mein bisheriger Quelltext

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm14.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Image1.Visible=false then
case key of
VK Space : 
end;

end.


bummi - Di 08.03.11 14:09


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var
  p:TPoint;
begin
  if key=VK_Space then
    begin
      p := mouse.CursorPos;
      p := Image1.ScreenToClient(p);
      Image1.Canvas.Pixels[p.x,p.y] := clBlue;
    end;
end;


Zlatan - Di 08.03.11 14:20

Ist da denn auch die Bedingung eingebunden, dass Image1 schon eingesammelt werden sein muss?


vagtler - Di 08.03.11 14:43

user profile iconZlatan hat folgendes geschrieben Zum zitierten Posting springen:
Ist da denn auch die Bedingung eingebunden, dass Image1 schon eingesammelt werden sein muss?

Der Quellcode beinhaltet doch schon die Antwort...


Zlatan - Di 08.03.11 15:22

aber er hat doch einen komplett neuen geschrieben und nicht meinen erweitert

Irgendwie passiert da aber nichts
und das Image Dynamit verscgwindet auch nicht mehr bei Berührung


Bergmann89 - Di 08.03.11 17:39

Hey,

der Code oben zeigt nur, wie du beim drücken der Leertaste herausbekomsmt, wo die Mause gerade auf dem Objekt ist. Den Rest musst du schon selbst machen. Die eigentliche Frage, die du oben gestellt hast ist ja beantwortet. Das es nich in deinen Code passt ist klar, das ist ja auch nur ein Bsp, das du dann selbst auf deinen Code anpassen sollst. Copy&Paste is nich ;)

MfG Bergmann.