AGB  ·  Datenschutz  ·  Impressum  







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

DBGrid Icon aus ImageList

Ein Thema von strom · begonnen am 3. Feb 2015 · letzter Beitrag vom 3. Feb 2015
Antwort Antwort
strom

Registriert seit: 23. Aug 2008
Ort: Keine Ergebnisse gefunden
290 Beiträge
 
#1

DBGrid Icon aus ImageList

  Alt 3. Feb 2015, 09:16
Hallo,

versuche aus einer Imagelist ein Bitmap zu laden.

Delphi-Quellcode:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
  var
   i : Integer;
  Wert: string;
   bmpImage: tBitmap;
   intX, intY: Integer;
   begin
     if (DBGrid1.DataSource.DataSet.RecordCount = 0) then
      Exit;

      if column.FieldName = 'ICONthen
       with DBGrid1.Canvas do
       begin
         fillRect(rect);
         bmpImage := tBitmap.Create;
         try


    Wert := DBGrid1.DataSource.DataSet.FieldByName('GRID').Value;
    if Wert = '0then begin
     DBGrid1.Canvas.Brush.Color := clwhite;
      DBGrid1.Canvas.Font.Color := clHighlight;
        end else
     if Wert = '1then begin
      //DBGrid1.Canvas.Brush.Color := clred;
      //DBGrid1.Canvas.Font.Color := clyellow;
       ImageList1.Draw(DBGrid1.Canvas,Rect.Left+(Column.Width-17),Rect.Top+1,0); // Was ist hier falsch?
        end else

Geändert von strom ( 3. Feb 2015 um 11:36 Uhr)
  Mit Zitat antworten Zitat
strom

Registriert seit: 23. Aug 2008
Ort: Keine Ergebnisse gefunden
290 Beiträge
 
#2

AW: DBGrid Icon aus ImageList

  Alt 3. Feb 2015, 13:36
Hier die Lösung!

Delphi-Quellcode:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  bitmap : TBitmap;
  fixRect : TRect;
  bmpWidth : integer;
  imgIndex : integer;
  Wert : String;
begin
  fixRect := Rect;
   if Column.Field = DBGrid1.DataSource.DataSet.FieldByName('ICON')then
    begin
      Wert := DBGrid1.DataSource.DataSet.FieldByName('GRID').Value;
      if Wert = '1then begin
       ImgIndex := 0;
      end else
       if Wert = '0'  then begin
        ImgIndex := 1
      end;
    bitmap := TBitmap.Create;
    try
     ImageList1.GetBitmap(imgIndex,bitmap);
      bmpWidth := (Rect.Bottom - Rect.Top);
      fixRect.Right := Rect.Left + bmpWidth;
      DBGrid1.Canvas.StretchDraw(fixRect,bitmap);
    finally
      bitmap.Free;
    end;
    fixRect := Rect;
    fixRect.Left := fixRect.Left + bmpWidth;
  end;
  DBGrid1.DefaultDrawColumnCell(fixRect,DataCol,Column,State);
end;
  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 23:25 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