Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: VCL / WinForms / Controls (https://www.delphipraxis.net/24-library-vcl-winforms-controls/)
-   -   Delphi Aktuell markierte Zeile in TStringgrid sichtbar machen... (https://www.delphipraxis.net/7962-aktuell-markierte-zeile-tstringgrid-sichtbar-machen.html)

Alexander 25. Aug 2003 17:15


Aktuell markierte Zeile in TStringgrid sichtbar machen...
 
Wurde gerade gefragt wie man sowas bei einem normalen TStringgrid machen könnte (sollte aber für alle Grids funtkionieren....)
Das DBGrid soll das ja von Haus auf können... Ich habe allerdings nicht nach einem entsprechenden Befehl suchen könenn mangels Delphi D:

So könnte man das zb machen:
Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
 Stringgrid1.Cells[0, ARow] := '»';
 if (Stringgrid1.Row <> ARow) then
  Stringgrid1.Cells[0, Stringgrid1.Row] := '';
end

Alexander 26. Aug 2003 14:34

Re: Aktuell markierte Zeile in TStringgrid sichtbar machen..
 
oben habe ich das für ein Zeichen gezeigt und nun kommt das gleiche nur mit einem Bild :mrgreen:
Also hier der Source:
Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
var
  aIcon : TIcon;
  aRect : TRect;
  IconHeight : Integer;
begin
  IconHeight := 16;

  {Bild entfernen}
   aRect := Stringgrid1.CellRect(StringGrid1.Col, StringGrid1.Row);
  aRect.Left := 0;
  //das hier muss evtl angepasst werden, das passte irgendwie beim Testen nciht so super...
  aRect.Right := IconHeight + 2;
  aRect.Bottom := aRect.Bottom - 1;
  aRect.Top := aRect.Top + (Stringgrid1.RowHeights[aRow] - IconHeight) div 2;

  Stringgrid1.Canvas.Brush.Color := Stringgrid1.FixedColor;
  Stringgrid1.Canvas.FillRect(aRect);

  {Bild hinzufügen}
  aIcon := TIcon.Create;
  aIcon.LoadFromFile('c:\test.ico');

  aRect := Stringgrid1.CellRect(aCol, aRow);
  aRect.Left := 0;
  aRect.Right := IconHeight;
  aRect.Top := aRect.Top + (Stringgrid1.RowHeights[aRow] - IconHeight) div 2;

  Stringgrid1.Canvas.StretchDraw(aRect, aIcon);
end;
Ich denke der Source ist recht selbst erklärend.
Nur der Pfad, IconHeight und die markierte Zeile müssen angepasst werden.
Viel Spaß damit ;-)

[edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit]
[edit=Matze]Code formatiert. Mfg, Matze[/edit]


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