AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi bild in draw- oder stringgrid laden
Thema durchsuchen
Ansicht
Themen-Optionen

bild in draw- oder stringgrid laden

Offene Frage von "michback"
Ein Thema von Dragonhunter1720 · begonnen am 1. Apr 2008 · letzter Beitrag vom 20. Sep 2008
Antwort Antwort
Seite 1 von 3  1 23      
Dragonhunter1720
(Gast)

n/a Beiträge
 
#1

bild in draw- oder stringgrid laden

  Alt 1. Apr 2008, 21:48
Hallo

mein problem:
ich habe ein stringgrid (oder drawgrid) mit 1 zeile und 36 spalten
darin wollte ich nun 36 verschiedene bilder laden, also pro zelle ein anderes bild

ich habe es mit dem drawcell probiert, musste aber feststellen das das nicht geht, weil er immer das erste bild in alle 36 zellen lädt

procedure TForm1.DrawGriddhDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var Bild: Timage;
begin
Bild := Timage.Create(self);
Bild.Picture.LoadFromFile('N:\Dokumente\info\deskt op.ini projekt\bilder\hintergrundbilder\hintergrund.jpg') ;
DrawGriddh.Canvas.StretchDraw(rect, bild.Picture.Graphic);
end;
//--------------------
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var Bild: Timage;
begin
Bild:=Timage.Create(self);
Bild.Picture.LoadFromFile('N:\Dokumente\info\deskt op.ini projekt\bilder\icons\icon6.ico');
StringGrid1.Canvas.StretchDraw(rect,Bild.Picture.G raphic);

nun habe ich versucht die einzelnen zellen mit Row und Cow anzusprechen, um so meine ziel ver verwirklichen
leider geht das auch nicht

auch im formcreate habe ich das nicht hinbekommen



meine frage:
kann man im drawcell einzelne zellen ansprechen oder kann ich das irgendwie anders (z.B. im FormCreate) realisieren ???

THANKS für jede idee
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#2

Re: bild in draw- oder stringgrid laden

  Alt 1. Apr 2008, 21:59
Moin, Moin,
kenne zwar DrawGrid nicht, wird aber wohl nicht grundlegend anders sein als StringGrid. Schau dir die Parameter der Methode mal an: ACol, ARow >> da hast du deine Zellansprache

PS : Jedes mal das Bild aus der Datei laden? Ist da nicht eine ImageList praktischer und schneller?
Ralph
  Mit Zitat antworten Zitat
Dragonhunter1720
(Gast)

n/a Beiträge
 
#3

Re: bild in draw- oder stringgrid laden

  Alt 1. Apr 2008, 22:11
ja das habe ich schon getan

aber leider finde ich nichts, wie ich das verwenden soll

ARow:=0;
ACol:=0;
trozdem spricht er alle zellen an

DrawGriddh.Canvas.FillRect(CellRect(0, 0),bild.Picture.Graphic);

geht auch nicht!!

zudem bin ich noch nicht so der spezialist (nur schüler 8) )

hast du noch eine andere idee oder am besten gleich ein Bsp.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#4

Re: bild in draw- oder stringgrid laden

  Alt 1. Apr 2008, 22:25
na, auf die Schnelle mal was zum StringGrid:
Delphi-Quellcode:
procedure u_sgTopicsDrawCell(Sender:TObject;ACol,ARow:Integer;Rect:TRect;State:TGridDrawState);
begin
  if ARow=3 then
    if ACol> 2 then
      with Sender as TStringGrid do
        with (Sender as TStringGrid).Canvas do begin
          Font.Color:=clBlack;
          if EditMode then if gdSelected in State then Brush.Color:=clBtnFace
                                                  else Brush.Color:=Color
    
                      else if gdSelected in State then begin Brush.Color:=clHighLight;
                                                             Font. Color:=clWhite;
                                                             end
  
                                                  else Brush.Color:=Color;
          FillRect(Rect);
          Rect.Right:=Rect.Right-lbLeftBorder;
          TextRect(Rect,Rect.Left+lbLeftBorder,Rect.Top+2,Cells[ACol,ARow]);
          end;
end;
Hat mit deiner konkreten Anforderung leider nix zu tun. Hier wird nur Text mit besonderer Formatierung ausgegeben, wenn die Zeile 3 und die Spalten >2 gezeichnet werden. Statt der Textausgabe musst du dann dein Icon zeichnen. - Hab' jetzt leider keine Zeit mehr: Muss für Töchterlein noch ein Referat fertig machen
Ralph
  Mit Zitat antworten Zitat
Dragonhunter1720
(Gast)

n/a Beiträge
 
#5

Re: bild in draw- oder stringgrid laden

  Alt 1. Apr 2008, 22:28
Thanks erstmal
geht trotzdem nicht
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#6

Re: bild in draw- oder stringgrid laden

  Alt 1. Apr 2008, 22:51
So, Referat ist fertig!

Funktioniert trotzdem nicht?
Hm, ist OwnerDraw des Grids aktiviert?
DrawGriddh.Canvas.FillRect(CellRect(0, 0),bild.Picture.Graphic); << CellRect(0,0) spricht natürlich immer die erste Zelle an!
Ralph
  Mit Zitat antworten Zitat
Dragonhunter1720
(Gast)

n/a Beiträge
 
#7

Re: bild in draw- oder stringgrid laden

  Alt 1. Apr 2008, 22:56
procedure TForm1.DrawGriddhDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var Bild: Timage;
begin
Bild := Timage.Create(self);
Bild.Picture.LoadFromFile('N:\Dokumente\info\deskt op.ini projekt\bilder\hintergrundbilder\hintergrund.jpg') ;
DrawGriddh.Canvas.FillRect(CellRect(0, 0),bild.Picture.Graphic);
end;

Fehler: Undefinierter Bezeichner: CellRect

wie muss ich ihn denn definieren??
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#8

Re: bild in draw- oder stringgrid laden

  Alt 1. Apr 2008, 23:00
Du musst das Rect aus den MethodenParametern verwenden!
Ralph
  Mit Zitat antworten Zitat
Dragonhunter1720
(Gast)

n/a Beiträge
 
#9

Re: bild in draw- oder stringgrid laden

  Alt 1. Apr 2008, 23:04
procedure TForm1.DrawGriddhDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);

alt: DrawGriddh.Canvas.FillRect(CellRect(0, 0),bild.Picture.Graphic);

neu: DrawGriddh.Canvas.Rect(CellRect(0, 0),bild.Picture.Graphic); -->undefinierter bezeichner: rect
DrawGriddh.Canvas.FillRect(Rect(0, 0),bild.Picture.Graphic); -->operator oder semikolan fehlt

***bin noch anfänger
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#10

Re: bild in draw- oder stringgrid laden

  Alt 1. Apr 2008, 23:11
So:
Alles Quatsch, was wir bisher gemacht haben! Mit FillRect werden keine Bilder gezeichnet! Wenn die Icons in einer ImageList sind (was sehr zu empfehlen ist), dann würden wir z.B. wie folgt ausgeben:
ImageList.Draw(StringGrid.Canvas,Rect.Left,Rect.Top,0); Schau dir mal in Ruhe die DelphiHilfe zu diesem Befehl an, dann wird es auch funktionieren!

PS: Formatiere deinen Code bitte!
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 15:51 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