Entwickler-Ecke

Multimedia / Grafik - Maus in DelphiX


Borlox - Mo 09.09.02 21:28
Titel: Maus in DelphiX
Hallo Leute,

ich lerne gerade DelphiX! Ich habe mehrere Bilder in einer DXDraw und würde nun gerne wenn ich mit der Maus auf eines dieser Bilder klicke, dass dann immer bestimmte Dinge/Proceduren ausgeführt werden?

THX
Borlox


No - Do 12.09.02 13:59

musst du selber proggen, also ich mach das so:

Ich mal die Bilder(und jedes Bild hat ja eine X und y koordinate).

dann teste ich bei onmouse down vom DXDRAW einfach ob die Maus im
Bereich eines der gemalten Bilder liegt : also

Quelltext
1:
2:
if x > Bild.X and x < Bild.x + Imagelist.items[z].width
if y > Bild.X and y < Bild.x + Imagelist.items[z].width

So das reicht für das meiste schon. Wenn dus noch genauer haben willst
also nicht nur das Viereck musst du danach einfach abfragen ob der Pixel auf den du geklickt hast die Transparente Farbe des Bildes ist, Falls ja brichst du die Prozedur ab.

(25.09.02 22:46 Tino) Code-Tags hinzugefügt


mimi - Mi 25.09.02 18:15
Titel: oder
das ist ein Teile vom Snake 2 qullcode.
das Spiel kann man sich ohne qullcode von meiner HP(http://mimi.lk4.de) runterladen

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TForm1.DXDrawMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  I:Integer;
begin
  SnakeMenu.S:=False;
  DXDraw.Cursor:=crDefault;

  if (isGameOver = True) and (isMenu = False) then
    DXDraw.Cursor:=crHandPoint
  else begin
    DXDraw.Cursor:=crDefault;
    SnakeMenu.MenuIndex:=-1;
    for i:=SnakeMenu.Items[SnakeMenu.Menu].MenuStart to SnakeMenu.Items[SnakeMenu.Menu].MenuItemsCount do begin
      if (y > SnakeMenu.Items[SnakeMenu.Menu].MenuItems[i-SnakeMenu.Items[SnakeMenu.Menu].MenuStart].Y) and (x > SnakeMenu.Items[SnakeMenu.Menu].MenuItems[i-SnakeMenu.Items[SnakeMenu.Menu].MenuStart].x) and (y < SnakeMenu.Items[SnakeMenu.Menu].MenuItems[i-SnakeMenu.Items[SnakeMenu.Menu].MenuStart].Y1) and (x < SnakeMenu.Items[SnakeMenu.Menu].MenuItems[i-SnakeMenu.Items[SnakeMenu.Menu].MenuStart].x1) then begin
         SnakeMenu.MenuIndex:=i-SnakeMenu.Items[SnakeMenu.Menu].MenuStart;
         SnakeMenu.S:=True;
         DXDraw.Cursor:=crHandPoint;
         Break;
      end;
    end;
  end;
end;

ich hoffe du verstht wie ich das menue gemacht habe !!!!!

(25.09.02 22:48 Tino) Code-Tags hinzugefügt