Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi drawgrid (https://www.delphipraxis.net/43458-drawgrid.html)

missy 4. Apr 2005 14:29


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...

Hansa 4. Apr 2005 17:04

Re: drawgrid
 
Schreibe das ganze doch in OnSelectCell.

missy 4. Apr 2005 17:16

Re: drawgrid
 
jupp hab ich schon...irgednwie klappt das nich...also er fügt die bitmap einfahc net rein.... :cry:

missy 4. Apr 2005 17:20

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 :?

missy 4. Apr 2005 17:47

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:

kiar 4. Apr 2005 17:50

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

shmia 4. Apr 2005 17:53

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:
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;
4.) in OnSelectCell wird der Inhalt des Spielfelds geändert und die Zelle neu gezeichnet
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 12:50 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