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 Selected Cell nach Focuswechsel nicht einfärben (https://www.delphipraxis.net/88573-selected-cell-nach-focuswechsel-nicht-einfaerben.html)

Old M 17. Mär 2007 11:17


Selected Cell nach Focuswechsel nicht einfärben
 
Hallo,

ich habe eine Frage zu TStringGrid

Wenn mein StrigGrid den Focus verlieht möchte ich das die SelectedCell nicht blau mit weißer Schrift eingefärbt wird.

Habe mir schon einiges hier angesehen (OnDrawCell ...) aber keine passende Antwort gefunden :cyclops:

marabu 17. Mär 2007 13:36

Re: Selected Cell nach Focuswechsel nicht einfärben
 
Hallo,

wenn du keine eigene Zeichenroutine einsetzen möchtest, dann kannst du auch einfach die Selection entfernen, sobald das Grid verlassen wird:

Delphi-Quellcode:
type
  TDemoForm = class(TForm)
    StringGrid: TStringGrid;
    procedure StringGridExit(Sender: TObject);
    procedure StringGridEnter(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    GridRect: TGridRect;
  end;

{ ... }

procedure TDemoForm.FormCreate(Sender: TObject);
begin
  StringGridExit(StringGrid);
end;

procedure TDemoForm.StringGridExit(Sender: TObject);
begin
  with Sender as TStringGrid do
  begin
    GridRect := Selection;
    Selection := TGridRect(Rect(-1,-1,-1,-1));
  end;
end;

procedure TDemoForm.StringGridEnter(Sender: TObject);
begin
  with Sender as TStringGrid do
    Selection := GridRect;
end;
Grüße vom marabu

guidobrose 5. Apr 2007 13:30

Re: Selected Cell nach Focuswechsel nicht einfärben
 
Danke für die Hilfe, das Thema hatte sich mitterweile erledigt, weil ich es aus Versehen zweimal erstellt hatte.

joule 29. Feb 2008 21:03

Re: Selected Cell nach Focuswechsel nicht einfärben
 
Ich habe den Programmcode von Marabu gerade ausprobiert. Leider funktioniert es aber nicht.
Beim Starten zeigt Delphi ein Fehlermeldung an folgender Stelle:
Zitat:

Selection := TGridRect(Rect(-1,-1,-1,-1));
Vielleicht kann mir doch noch geholfen werden, beim Versuch die blöden Markierungen in gerade nicht angeklickten Stringgrids loszuwerden. Würde mich sehr freuen.

Lg

Hansa 29. Feb 2008 21:18

Re: Selected Cell nach Focuswechsel nicht einfärben
 
Das steht bei mir im Source :

Delphi-Quellcode:
procedure Tfrm.sg(Sender: TObject);
begin
  sg.EditorMode := true; // sonst blau markiert
end;
Aber ohne Gewähr, dass das auch bei dir geht. 8)

joule 29. Feb 2008 21:24

Re: Selected Cell nach Focuswechsel nicht einfärben
 
tschuldigung, dass ich so blöd frage. Aber wo muss das denn jetzt hin und was steht dann dementsprechend bei type und so?

s-off 29. Feb 2008 21:29

Re: Selected Cell nach Focuswechsel nicht einfärben
 
Hallo,

wie lautet die Fehlermeldung?
Prinzipiell sollte das so, wie es marabu beschrieben hat, funktionieren.

Beim Verlassen wird die aktuelle Selektion zwischengespeichert und gelöscht - beim erneuten Betreten dann gesetzt.
Bei mehreren Grids würde sich anbieten, das direkt in die Komponente zu implementieren, also eine neue Komponente zu erzeugen, die das kann.


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