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