AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Drag and Drop eines Images auf Teilimages

Ein Thema von Preddy2005 · begonnen am 28. Apr 2007
Antwort Antwort
Preddy2005

Registriert seit: 27. Nov 2005
Ort: Mettmann
38 Beiträge
 
#1

Drag and Drop eines Images auf Teilimages

  Alt 28. Apr 2007, 21:50
Hallo mal wieder!

Habe ein etwas schwieriger zu erklärendes Problem, welches an sich für Leute mit Programmiererfahrung nicht schwer zu lösen sein sollte. Soll im Prinzip Schiffe Versenken werden...

Zur Laufzeit erstelle ich Instanzen, welche ein Bild beinhalten. Ich erstelle die Instanzen, welche ein Bild beeinhalten und setzte die Bilder wie ein Schachbrett nebeneinander. Bis dahin alles gut.

Schaubild :

xxxx
xxxx
xxxx
xxxx

Macht hier zum Beispiel 16en Felder.

Nun erstelle ich noch Drag and Drop Prozeduren und weise diese dynamisch zu.
Dank des Forums habe ich es auch schon geschafft, ein Abbild des angeklickten Images zu machen.

Bild ist z.B. 32x32 Pixel groß.

Delphi-Quellcode:

procedure TfrmSpielfeld.imSchlachtSchiffHoriMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var Bmp : TBitmap;
    Position : TPoint;

begin
 if Button = mbright then
  if imSchlachtSchiffHori.Visible then
   begin
    imSchlachtSchiffVertikal.Visible := True;
    imSchlachtSchiffHori.Visible := False;
   end;

 if Button = mbLeft then
   if Sender is TImage then
    begin
     Position := ScreenToClient(Mouse.CursorPos);
     SourceImage := TImage(Sender);
     Bmp := TBitmap.Create;
      try
       Bmp.Width := TImage(Sender).Width;
       Bmp.Height := TImage(Sender).Height;
       Bmp.Canvas.StretchDraw(Bmp.Canvas.ClipRect,TImage(Sender).Picture.Graphic);
       ImageList.Width := Bmp.Width;
       ImageList.Height := Bmp.Height;
       Imagelist.AddMasked(Bmp,clYellow);
       ImageList.SetDragImage(0, Bmp.Width div 2, Bmp.Height div 2);
       ImageList.DragCursor := crHandPoint;
       ImageList.BeginDrag(Self.Handle, Position.x, Position.y);
      finally
       Bmp.Free;
     end;
   end;
end;
Nun mein Problem :

Ich habe dieses Bild und will es auf die Bilder ziehen.
Soll heissen, dass ich das 32 x 32 Pixel große Bitmap auf die z.B. 4 x 8 großen Felder verteilen will.


Also :

xxxx yyyy ( An dieser Stelle haben wir das eine Bild gedroppt)
xxxx xxxx
xxxx xxxx
xxxx xxxx

Nun meine Frage :

Wie funktioniert das Ganze?

Habe mir überlegt mit Bounds und PtinRect zu arbeiten, aber irgendwie habe ich keine Idee wie ich das eine Bild korrekt prüfe.
Das eine Bild muss mit den z.B. 4 Bildern verglichen werden... Quasi von Top bis Bottom des einen Bildes und von Left bis Right.
Und diese Werte müssen mit den 4 Bildstücken gegengeprüft werden.

Vielleicht kann mir jemand einen Vorschlag machen oder ein Stichwort angegeben, mit dem ich etwas zu diesem Thema finde.
Habe nämlich keine Idee mit welchem Suchbegriff ich etwas finden kann.
Zur Not auch kleine Codebeispiele, aber ich benötige auf keinen Fall eine komplette Lösung.

Vielen Dank für eure Hilfe

Gruß Matthias
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:58 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