Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi StringGrid -> Selektierte Zeile nur umranden nicht ausfüllen (https://www.delphipraxis.net/104206-stringgrid-selektierte-zeile-nur-umranden-nicht-ausfuellen.html)

HolgerCW 29. Nov 2007 09:35


StringGrid -> Selektierte Zeile nur umranden nicht ausfül
 
Hallo zusammen,

wie kann ich bei einem StringGrid die selektierte Zeile nur umranden und nicht ausfüllen ?

Gruss

Holger

marabu 29. Nov 2007 10:03

Re: StringGrid -> Selektierte Zeile nur umranden nicht au
 
Hallo Holger,

wenn du die Selektion nicht farbig hervorgehoben sehen willst, dann hast du wahrscheinlich RangeSelect abgeschaltet:

Delphi-Quellcode:
procedure TDemoForm.StringGridSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  with Sender as TStringGrid do
    Selection := TGridRect(Rect(-1, -1, -1, -1));
end;
Grüße vom marabu

HolgerCW 29. Nov 2007 10:21

Re: StringGrid -> Selektierte Zeile nur umranden nicht au
 
Danke, aber egal obe ich RangeSelect abgeschaltet habe oder nicht, inkl. deinem Code bleibt die selektierte Zeile ausgefüllt.

Gruss

Holger

marabu 29. Nov 2007 10:54

Re: StringGrid -> Selektierte Zeile nur umranden nicht au
 
Hallo,

was verstehst du unter Umranden und was unter Ausfüllen?

Ich habe dein Umranden mit FocusRect gleichgesetzt und Ausfüllen mit der hervorgehobenen Selektion.
Wenn du RangeSelect eingeschaltet (default) hast, dann benötigst du eine visuelle Hervorhebung. Hast du diese Option abgeschaltet, dann brauchst du meinen Code garnicht, solange das Grid den Fokus hat, da eine einzelne Zelle nie farblich hervor gehoben wird.

Kannst du etwas mehr erklären?

Freundliche Grüße

HolgerCW 30. Nov 2007 08:43

Re: StringGrid -> Selektierte Zeile nur umranden nicht au
 
... habe RangeSelect auf True,

... und RowSelect auf True,

damit füllt und umrandet er alle Spalten in der selektierten Zeile.

... jetzt will ich aber die Füllung nicht haben.

Gruss

Holger

P.S.: Sorry, wenn ich mich nicht deutlich ausgedrückt habe ;)

marabu 30. Nov 2007 09:35

Re: StringGrid -> Selektierte Zeile nur umranden nicht au
 
Hallo Holger,

wenn es sehr schön aussehen soll, dann wirst du alles selbst zeichnen müssen. Einfach nur das HighLighting des Auswahlbereiches kannst du so eliminieren:

Delphi-Quellcode:
procedure TDemoForm.StringGridDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  with Sender as TStringGrid do
    if (gdSelected in State) then
    begin
      Canvas.Brush.Color := Color;
      Canvas.FillRect(Rect);
    end;
end;
Freundliche Grüße

HolgerCW 30. Nov 2007 12:41

Re: StringGrid -> Selektierte Zeile nur umranden nicht au
 
Alles klar,

mit der "einfachen Elliminierung" reicht mir schon.

Danke und Gruss

Holger


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz