![]() |
drawgrid
Hallo,
ich habe ein Problem und zwar habe ich ein drawgrid, und ich möchte wenn man eine zelle mit der maus anklickt dort eim bild erscheint, aber halt genau da wo die maus druf klickt. hab schon was probeirt, aber entweder er zeichnet das bitmap sofort hinein oder es geht gar nicht :( :gruebel: hab da was von selectCell gelesen, aber irgednwie kappt das alle net- könnte mir bitte wer helfen? also das was ich habe :
Delphi-Quellcode:
Procedure TForm1.DrawGrid1ondrawcell(Sender:TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState); var Bitmap1: TBitmap; Begin Bitmap1:= TBitmap.Create; If(ACol = 3) and (ARow = 3) then BEGIN Bitmap1.LoadFromFile('D:\Dokumente und Einstellungen\INFORMATIK\Mein PROGRAM\Steine.bmp'); DrawGrid1.Canvas.Draw(Rect.Left, Rect.Top, bitmap1); END; Bitmap1.Free; end; brauche dringend hilfe... |
Re: drawgrid
Schreibe das ganze doch in OnSelectCell.
|
Re: drawgrid
jupp hab ich schon...irgednwie klappt das nich...also er fügt die bitmap einfahc net rein.... :cry:
|
Re: drawgrid
ich habs aber nur halb.hatte irgednwie nen brett vorm kopp :wall:
er fügt jetzt zwar bitmap ein,. aber nie auf die richtige position(nie da wo die maus hinklickt)..kann man die position nich durch den mausclick ermitteln oder so?? weil ich mein....irgednwie is das alle net so wie ich will :? |
Re: drawgrid
mot mousetocell??? wie denn dann? ..hmm ich hab den eindruck ich diskutier mit mir allein :lol:
also...wenn mir nochmal wer helfen könnt wer ganz ganz toll :mrgreen: |
Re: drawgrid
hallo missy,
einfach mal ondrawcell in der suche eingeben, das hatten wir schon so oft. die suche sollte, bevor mann sein problem postet, immer erst benutzt werden. raik |
Re: drawgrid
1.) die Bitmaps sollten in FormCreate erzeugt und geladen werden
also z.B. ein Bitmap für einen grünen Stein und ein Bitmap für ein rotes Männchen. 2.) du musst dir in einem 2-dimensionalen Array merken, auf welcher Position welches bitmap anzuzeigen ist. spielfeld : array[0..100, 0..100] of Byte; 3.) in OnDrawCell wird nur gezeichnet, sonst nix!!!
Delphi-Quellcode:
4.) in OnSelectCell wird der Inhalt des Spielfelds geändert und die Zelle neu gezeichnet
Procedure TForm1.DrawGrid1ondrawcell(Sender:TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState); Begin case spielfeld[ACol, ARow] of 0: ; // kein Bild 1: DrawGrid1.Canvas.Draw(Rect.Left, Rect.Top, bitmapGStein); 2: DrawGrid1.Canvas.Draw(Rect.Left, Rect.Top, bitmapRotesMann); end; end;
Delphi-Quellcode:
procedure TForm1.DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean); var wert : Byte; begin wert := spielfeld[ACol, ARow]; wert := (wert+1) mod 3; spielfeld[ACol, ARow] := wert; DrawGrid1.Invalidate; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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-2025 by Thomas Breitkreuz