AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Drag&Drop für Kartenspiel

Ein Thema von Hybrid666 · begonnen am 4. Mär 2009 · letzter Beitrag vom 7. Mär 2009
Antwort Antwort
Hybrid666

Registriert seit: 15. Jul 2006
Ort: Erster Stock
250 Beiträge
 
Delphi 7 Personal
 
#1

Drag&Drop für Kartenspiel

  Alt 4. Mär 2009, 15:43
Servus,

ich programmiere grade in Lazarus ein kleines Kartenspiel und ich will karten per Drag&Drop legen können.

Kann mir einer mal helfen und mir Tipps geben wie man das am besten macht? Es sind TImages die auf andere TImages gelegt werden sollen. Es gibt dafür ja ereignisse, aber ich hab keine Ahnung wie man das macht.

Danke für jede hilfe.

MfG
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#2

Re: Drag&Drop für Kartenspiel

  Alt 4. Mär 2009, 20:45
Drag und Drop wird hier meiner Meinung nach ganz gut erklärt.
Man kann einen Barbier definieren als einen, der alle diejenigen rasiert, und nur diejenigen, die sich nicht selbst rasieren.
Rasiert sich der Barbier?
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#3

Re: Drag&Drop für Kartenspiel

  Alt 5. Mär 2009, 17:28
quick & dirty:

du hast panels, wo je ein TImage drauf liegt. den Images weist du diese Methode als OnMouseDown zu:
Delphi-Quellcode:
procedure TForm1.ImageMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var pnl:TPanel;
begin
  if Button=mbLeft then
  begin
    ReleaseCapture;
    pnl:=((sender as TImage).parent as TPanel);
    pnl.BringToFront;
    pnl.Perform(WM_NCLBUTTONDOWN,HTcaption,0);
  end;
end;
Gruß Frank
  Mit Zitat antworten Zitat
Hybrid666

Registriert seit: 15. Jul 2006
Ort: Erster Stock
250 Beiträge
 
Delphi 7 Personal
 
#4

Re: Drag&Drop für Kartenspiel

  Alt 6. Mär 2009, 10:23
danke erstmal für die antworten.

Also bei der Methode von Frank gibbet Folgendes Problem:

Ich entwickle unter Linux mit Lazarus, das erste problem: Lazarus kennt ReleaseCapture nicht und das zweite problem ist das die methode mit windows messages funktioniert, was ein bisschen problematisch ist unter linux

Noch andere "quick 'n' dirty's"?

MfG
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#5

Re: Drag&Drop für Kartenspiel

  Alt 6. Mär 2009, 11:13
Dann verwende doch die Drag & Drop Events - gibts die unter Linux??

Also Dragmode bei den Eigenschaften auf dmautomatic
Bei OnDragover dann in etwa sowas
if source=image1 then accept:=true; oder auch
if (source as TImage) then accept:=true; um das akzeptieren des gezogenen Elements zu erlauben

Dann kannst du bei
OnDragDrop auswerten was mit dem gedroppten Elemnt gamcht wird

Das sollte dann auch funzn - zumindest unter WIN

Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Hybrid666

Registriert seit: 15. Jul 2006
Ort: Erster Stock
250 Beiträge
 
Delphi 7 Personal
 
#6

Re: Drag&Drop für Kartenspiel

  Alt 7. Mär 2009, 12:40
Jo, die gibt es, die funzen aber ein wenig verbuggt, also das verbuggte sind die cursor, die verändern sich da teilweiße wahllos und wenn man mim draggen fertig ist, bleibt das oft ein "hier kannst du nicht hindraggen"-symbol .

Außerdem wollte ich das ganze einfach ein wenig schöner machen und die karte mit der maus mitgehen lassen, so wie in solitaire

MfG
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#7

Re: Drag&Drop für Kartenspiel

  Alt 7. Mär 2009, 14:42
Zitat von Hybrid666:
Außerdem wollte ich das ganze einfach ein wenig schöner machen und die karte mit der maus mitgehen lassen, so wie in solitaire
Ich behaupte jetzt einfach mal, hättest du dir die Mühe gemacht den Link zu lesen, wäre das gelöst.
Man kann einen Barbier definieren als einen, der alle diejenigen rasiert, und nur diejenigen, die sich nicht selbst rasieren.
Rasiert sich der Barbier?
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#8

Re: Drag&Drop für Kartenspiel

  Alt 7. Mär 2009, 15:50
also nochmal manuell, sollte aso in der clx funktionieren:

Delphi-Quellcode:
    { Private-Deklarationen }
    fDragging:boolean;
    fRelPos:TPoint;
...
procedure TForm1.PanelMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  fDragging:=true;
  fRelPos:=Point(x,y);
  (sender as TPanel).Cursor:=crCross;
end;

procedure TForm1.PanelMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  fDragging:=false;
  (sender as TPanel).Cursor:=crDefault;
end;

procedure TForm1.PanelMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if fDragging then
  begin
    (sender as TPanel).left:=panel1.left+X-fRelPos.x;
    (sender as TPanel).top:=panel1.top+Y-fRelPos.y;
  end;
end;
HTH Frank
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz