![]() |
Drag and Drop eines Images auf Teilimages
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:
Nun mein Problem :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; 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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz