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 StringGrid + Icon einfügen (https://www.delphipraxis.net/34544-stringgrid-icon-einfuegen.html)

Piro 24. Nov 2004 14:51


StringGrid + Icon einfügen
 
Moin,

ich bräuchte mal eure Hilfe. Wie kann ich in ein StringGrid ein Icon aus einer Imageliste einfügen?

Danke. Sven

Luckie 24. Nov 2004 15:00

Re: StringGrid + Icon einfügen
 
Die Zellen selber zeichnen und das Icon mit BitBlt in die Zelle blitten. Wie man selber die Zellen zeichnet, solltest du ihr im Forum finden. Stichwort: Hier im Forum suchenOnDrawCell.

Piro 24. Nov 2004 15:12

Re: StringGrid + Icon einfügen
 
Danke Lukie, aber das Zeichnen ist kein Problem. Ich bekomme bloß nicht die Verbindung von der Imageliste zum StringGrid im OnDrawCell Ereignis.

Luckie 24. Nov 2004 15:13

Re: StringGrid + Icon einfügen
 
Du musst das Icon aus der ImageListe in eine TIcon Variabel laden und dann mit BitBlt arbeiten.

Piro 24. Nov 2004 15:17

Re: StringGrid + Icon einfügen
 
Ok ich werdemich dann mal an die Arbeit machen.

Piro 24. Nov 2004 15:35

Re: StringGrid + Icon einfügen
 
Irgendwie verstehe ich das nicht!?! Kann mir nicht mal einer einen Ansatz geben? Ich habe noch nie mit solchen Komponenten gearbeitet.

Sven

Piro 24. Nov 2004 16:08

Re: StringGrid + Icon einfügen
 
Delphi-Quellcode:
procedure Tfrm_main.sg_systeminfoDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
var
 icon : TIcon;
Begin
 icon := TIcon.Create;
 icon.LoadFromFile('D:\Delphi\Delphi 7\SystemUtilities\icon\16main.ico');
 with sg_systeminfo do
 begin
   if ACol = 0 then
     case ARow of
       1: Canvas.Draw(Rect.Left,Rect.Top, icon);
     end;

   if ACol = 1 then
     case ARow of
       1: DrawText(Canvas.handle,PChar(' Betriebssystem'),-1, Rect, DT_SINGLELINE+DT_LEFT+DT_VCENTER);
     end;

   if ACol = 2 then
     case ARow of
       1: DrawText(Canvas.handle,PChar(' '+GetOperatingSystem),-1, Rect, DT_SINGLELINE+DT_LEFT+DT_VCENTER);
     end;
  end;
end;
So funktioniert es aus einer Datei. Aber wie aus der Imageliste?

Sven


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