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/)
-   -   Drawgrid mit Bilderarray füllen (https://www.delphipraxis.net/123983-drawgrid-mit-bilderarray-fuellen.html)

Entropie410 12. Nov 2008 16:19


Drawgrid mit Bilderarray füllen
 
Hallo also ich habe folgendes Problem: ich möchte ein Drawgrid mit Bildern füllen, die aus einem Array stammen, der Array ist ein 2dimensionaler Array Bsp. Spalte[1].Row[1].Bild;
Nun ist mein Problem das mein Array mit verschiedenen Bildern gefüllt ist, die in der Ordnung des arrays auf dem Drawgrid gezeichnet werden sollen
Bsp. Spalte[1].Row[1].Bild soll also im Drawgrid in der Spalte 1 und in der Zeile 1 liegen usw.
ich dachte mir nun einfach ich mache das so:

Delphi-Quellcode:
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var i,i2:integer;
begin
For i:=0 to 6 do
  begin
  For i2:=0 to 5 do
    begin
    drawgrid1.Row:=i2;
    drawgrid1.COl:=i;
    drawgrid1.Canvas.stretchdraw(rect,Spalte[i].Row[i2].Bild.Graphic);
    end;
  end;
end;
Funktioniert natürlich nicht. Nun ich stehe schon seit längerer Zeit auf Kriegsfuß mit dem Drawgird und würde mich sehr darüber freuen wenn mir irgendwer eine Lösung oder zummindest nen anderen Ansatz sagen könnte. Danke, schon im voraus.

Mfg

taaktaak 12. Nov 2008 16:30

Re: Drawgrid mit Bilderarray füllen
 
Delphi-Quellcode:
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  drawgrid1.Canvas.stretchdraw(rect,Spalte[acol].Row[arow].Bild.Graphic);
end;
Dürfte aber so noch nicht funktionieren, da vermutlich mindestens die Zeilenhöhe noch angepasst werden muss...

shmia 12. Nov 2008 16:35

Re: Drawgrid mit Bilderarray füllen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hätte hier ein Drawgrid Demo, dass ursprünglich mal ein Schachbrett hätte werden sollen.

Entropie410 12. Nov 2008 19:21

Re: Drawgrid mit Bilderarray füllen
 
Zitat:

Zitat von taaktaak
Delphi-Quellcode:
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  drawgrid1.Canvas.stretchdraw(rect,Spalte[acol].Row[arow].Bild.Graphic);
end;
Dürfte aber so noch nicht funktionieren, da vermutlich mindestens die Zeilenhöhe noch angepasst werden muss...

Vielen Dank!
@Shima auch dir :)
Ganz im Gegenteil funktioniert einwandfrei, allerdings das warum entzieht sich meiner Kenntnis, ich verstehe um ehrlich zu sein nicht ganz was die integer variablen acol und arow machen, speichern whatever... ich weiß nur das die bei der procedure mitgeliefert werden aber mehr!? Könnt ihr mir das vlt auch noch erklären, weil ich will nicht etwas in meinem Programm hab was ich nicht hundertprozent verstehe!?

Mfg

taaktaak 13. Nov 2008 07:26

Re: Drawgrid mit Bilderarray füllen
 
Moin, Moin.
Schön, dass es so schon funktioniert :-D

Die Parameter sind schnell erklärt: Dieses Event wird immer aufgerufen, wenn eine Zelle gezeichnet werden muss. ACol(Spalte) und ARow(Zeile) geben die Zelle an, die bei diesem Aufruf gezeichnet werden soll - daher kannst du diese beiden Variablen direkt zur Identifikation des Array-Elementes verwenden.

Solche Informationen kannst du auch von Delphi selbst bekommen: Setze das Caret auf den Namen der Methode und drücke F1. Dann wird dir in den meisten Fällen ein umfassender Hilfetext angezeigt, der manchmal auch ein Anwendungsbeispiel enthält.

Entropie410 13. Nov 2008 16:44

Re: Drawgrid mit Bilderarray füllen
 
Aha... ja das mit F1 war mit klar doch bei arow oder acol hab ich da irgendwie nichts gefunden! Vielen Dank nochmal :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 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