AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Image in DrawGrid :(

Ein Thema von shareholder · begonnen am 15. Nov 2003 · letzter Beitrag vom 16. Nov 2003
Antwort Antwort
Benutzerbild von shareholder
shareholder

Registriert seit: 1. Nov 2003
Ort: Denmark, Lolland, Marielyst
280 Beiträge
 
Delphi 7 Enterprise
 
#1

Image in DrawGrid :(

  Alt 15. Nov 2003, 14:32
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  ImageList1: TImageList;
begin
  DrawGrid1.Canvas.Draw(1,1,ImageList1[0]);
end;
klick auf den button
im drawgrid zeile 1 und spalte 1 soll bild aus ImageList
geladen werden.

Fehler: Klasse besitzt keine Standarteigenschaft.
Kann mir jemand helfen ?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#2

Re: Image in DrawGrid :(

  Alt 15. Nov 2003, 14:51
Erst mal, wird an einer anderen Stelle ins Grid gezeichnet. (OnDrawCell)
Und zum Anderen, sollte auch ein Bild in der ImageList sein.
Ach ja, wie man die Grafiken eine ImageList zeichnet, steht in der OH. (TImageList / Draw)

Delphi-Quellcode:
Procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
Begin
  If (ACol = 1) and (ARow = 1) Then Begin
    ImageList1.Draw(DrawGrid1.Canvas, Rect.Left, Rect.Top, 0);
    { Der Bereich des Feldes, welches gezeichnet werden soll,         }
    {   liegt innerhalb des in Rect fesgelegten Bereich.              }
    { Und es ist besser nicht ausserhalb dieses Bereichs zu zeichnen. }
    { Also sollten für dieses Beispiel die Bilder nicht               }
    { grösser als die entsprechende Zelle sein.                       }
  End;
End;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von shareholder
shareholder

Registriert seit: 1. Nov 2003
Ort: Denmark, Lolland, Marielyst
280 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Image in DrawGrid :(

  Alt 15. Nov 2003, 18:09
ich steig da nicht hinter !

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Rect: TRect;
begin
    Rect.Left := 0; Rect.Top := 0;
    ImageList1.Draw(DrawGrid1.Canvas, Rect.Left, Rect.Top, 10);
end;
wenn ich nun auf den button drücke, so wird mir das 10. bild aus der ImageList1 ausgegeben.
doch wie stelle ich das an, das das bild, in reihe 2 spalte 4 positioniert wird ?

das bild und die zellen sind jeweils 50px * 50px groß.
das schon mit SELECTION probiert, bin dabei aber auch gescheitert.

was meinst du mit OnDrawCell. Kannst du mal bitte den Code posten ?

EDIT: Das Bild ist 50px * 50px groß, wird aber nur sehr verschrumpelt klein angzeigt, also nicht in der Originalgröße ! wie passe ich das bild an die zellengröße an ?

Habe schon mit DrawGrid1.CellRect(x,y); probiert...

VIELN DANK !!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Image in DrawGrid :(

  Alt 15. Nov 2003, 18:13
Hai shareholder,

OnDrawCell ist ein Ereigniss von TStringGrid. Dort, und nur dort, musst Du das Image zeichnen.
Genau wie es himitsu beschrieben hat. Du brauchst seinen Code doch nur noch so zu erweitern das die Funktion zum Zeichnen des Images nur ausgeführt wird wenn eine zusätzliche Bedingung (Boolean-Variable) zutrifft.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von shareholder
shareholder

Registriert seit: 1. Nov 2003
Ort: Denmark, Lolland, Marielyst
280 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Image in DrawGrid :(

  Alt 15. Nov 2003, 18:14
muah, ich dreh durch... ich setze mich nochmal ran ! thx
  Mit Zitat antworten Zitat
Benutzerbild von shareholder
shareholder

Registriert seit: 1. Nov 2003
Ort: Denmark, Lolland, Marielyst
280 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Image in DrawGrid :(

  Alt 15. Nov 2003, 18:31
ich krieg's net gebacken !!!

was bezwecke ich denn überhaupt mit dieser abfrage:
if (ACol = 1) and (ARow = 1) Then Begin ? sehe darin keinen sinn. bitte klärt mich auf.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Image in DrawGrid :(

  Alt 15. Nov 2003, 18:35
OnDrawCell wird beim Zeichnen von jeder Zelle des StringGrids aufgerufen.
Über ACol und ARow kannst Du nun abfragen welche Reihe bzw. Spalte (und damit welche Zelle) gerade gezeichnet wird.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von shareholder
shareholder

Registriert seit: 1. Nov 2003
Ort: Denmark, Lolland, Marielyst
280 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Image in DrawGrid :(

  Alt 16. Nov 2003, 19:51
ich hab die lösung von himitsu genommen und es funzt jetzt wunderbar.
Danke Euch Beiden !
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 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