AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia images bewegen mit maus delphi
Thema durchsuchen
Ansicht
Themen-Optionen

images bewegen mit maus delphi

Ein Thema von infofreak23 · begonnen am 11. Jun 2012 · letzter Beitrag vom 16. Jan 2014
Antwort Antwort
Seite 1 von 2  1 2      
infofreak23

Registriert seit: 11. Jun 2012
7 Beiträge
 
#1

images bewegen mit maus delphi

  Alt 11. Jun 2012, 12:40
hey meine programmierfreunde,

ich habe ein kleines problem :
ich bin gerade dabei schach zu programmieren.
ich habe mein schachfeld fertig und die figuren habe ich mit images gemacht.
mein problem ist jetzt dass ich nicht weiß wie ich diese nun bewegen kann.

könnt ihr mir helfen
wäre echt nett von euch ist wichtig
danke im voraus
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: images bewegen mit maus delphi

  Alt 11. Jun 2012, 12:53
Der Ansatz mit mehreren Images scheint mir nicht optimal gewählt, aber wenn Du es so versuchen willst

Delphi-Quellcode:
unit Unit5;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls;

type
  TForm5 = class(TForm)
    Image1: TImage;
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  private
    { Private-Deklarationen }
    FMDX,FMDY:Integer;
  public
    { Public-Deklarationen }
  end;

var
  Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   FMDX := X;
   FMDY := Y;
end;

procedure TForm5.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
   if ssLeft in Shift then
      begin
        TImage(Sender).Left := TImage(Sender).Left + X - FMDX;
        TImage(Sender).Top := TImage(Sender).Top + Y - FMDY;
      end;
end;

end.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
infofreak23

Registriert seit: 11. Jun 2012
7 Beiträge
 
#3

AW: images bewegen mit maus delphi

  Alt 11. Jun 2012, 14:00
danke schonmal für deine antwort.
was wäre denn deiner meinung nach besser geeignet anstelle von den images?
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: images bewegen mit maus delphi

  Alt 11. Jun 2012, 14:18
Ich würde entweder eine Komponente von TGraphicControl ableiten, oder wenn es kurz un schmerzlos gehen soll Feld und Figuren im OnPaint einer Paintbox (notfalls auch des Forms) malen, die Verwaltungsinformationen in einem Array vorhalten und Mousedown/move etc. der Paintbox/Komponete auswerten.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: images bewegen mit maus delphi

  Alt 11. Jun 2012, 16:37
als Ergänzung der anderen Posts :

er reicht ein TImage, in diesem Bild kannst Du Deine Figuren (sprites) über verschiedenen Funktionen ( Canvas.Paint, BitBlt, ....)
direkt zeichnen lassen. Schau dir mal folgendes Tutorial an :

http://delphi.about.com/od/gameprogr...rogramming.htm
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#6

AW: images bewegen mit maus delphi

  Alt 11. Jun 2012, 18:04
Anbei ein kleines Beispiel wie man das Problem nur mit Bitmaps lösen kann. Es ist nichts besonderes, es sind nur fünf Bitmap-Kisten die auf einer Untegrund-Bitmap mit gedrückter Maus verschoben werden können. Alles wurde mit TBitmaps gelöst. Es ist nur etwas Rechnen nötig.
Angehängte Dateien
Dateityp: rar Kisten verschieben.src.rar (3,3 KB, 27x aufgerufen)
Dateityp: zip Kisten verschieben.bsp.zip (192,3 KB, 22x aufgerufen)
  Mit Zitat antworten Zitat
infofreak23

Registriert seit: 11. Jun 2012
7 Beiträge
 
#7

AW: images bewegen mit maus delphi

  Alt 12. Jun 2012, 14:13
soo vielen dank erstmal für eure antworten

ich habe allerdings noch ein paar fragen die noch nicht ganz verstehe.

zuerst eine frage an bummi: kann ich den quellcode den du mir geschrieben hast so wie er da steht in meinen quelltext kopieren oder muss ich da noch was ändern und wenn ja was?

außerdem frage ich mich, wie ich dass dann machen soll wenn ich möchte, dass z.B. ein turm nur auf bestimmte felder ziehen kann und wie ich die felder überhaupt einteilen kann. habe das spielfeld mit moveto und lineto auf ein TImage gemalt und die felder mit brush gefärbt.

auch wenn das vlt nicht die beste lösung ist wäre es nett wenn ihr mir schreiben könntet wie ich das umsetzen kann OHNE großartig was zu verändern sprich mit den images als spielfiguren und dem spielfeld so wie ich es oben geschrieben habe, denn mir rennt leider die zeit davon kann nur noch freitag daran arbeiten
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: images bewegen mit maus delphi

  Alt 12. Jun 2012, 14:28
Du musst im Objektinspektor die Ereignisse OnMouseMove und OnMouseDown versorgen.
Du kannst für alle Images dieselben Routinen verwenden, weitergehende Entscheidungen kannst Du über z.B. über
if Sender=ImageTurm then realisieren.
Die Gültigkeit der Züge musst Du über Top / Left verifizieren, ich würde hierfür wie gesagt ein Array anlegen.
z.B.
Delphi-Quellcode:
type
TMyFieldInfo=Record
 Farbe:TColor;
 AktuelleFigur:Integer;
 //was auch immer noch
end;

TFieldArray=Array[0..7,0..7] of TMyFieldInfo;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
infofreak23

Registriert seit: 11. Jun 2012
7 Beiträge
 
#9

AW: images bewegen mit maus delphi

  Alt 12. Jun 2012, 14:34
okay danke werds mal so versuchen
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#10

AW: images bewegen mit maus delphi

  Alt 12. Jun 2012, 14:43
Du gleitest vielleicht etwas von dem Problem ab. Du möchtest einen Kuchen backen, fragst aber gerade wie du das Wasser aus dem Wasserhahn in den Messbecher kriegst?

Ich denke du hast dir am Anfang ein großes (Grafik) Hindernis gesetzt das erst überwunden werden muß. Du hast zwei "Probleme", ein Schachspiel programmieren und umgang mit Grafik verstehen.Vielleicht ein Tipp, lass das mit der Grafik-Bewegung. Du willst den Springer bewegen, dann blinke mit ihm drei mal am Position A (jetzt) und B (gleich), dann Figur aus Position A löschen und bei B setzten. So hat man früher auch gemacht. Das ist simpler und das Grafik-Hindernis ist weg.

Wie gesagt, nur ein Tipp, spart aber etwas Zeit.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 00:21 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