![]() |
StringGrid Zelle wird erst nach verlassen der Zelle eingefär
Hallo,
Delphi-Quellcode:
mit dieser Procedure wird jede Zelle individuelle eingefärbt. Wenn ich die StringGrid-Options goEditing= False habe wird die Zelle sofort eingefärbt. Ist die Options goEditing = True wird die Zelle erst nach dem Verlassen eingefärbt.
procedure TfrmStringGridDemo.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState); begin with Sender as TStringGrid do begin if ((aCol >= FixedCols) and (aRow>=FixedRows) and (Objects[aCol, aRow]<> NIL)) then begin Canvas.Brush.Color:= TColor(Objects[aCol, aRow]); Canvas.FillRect(Rect); DrawText(Canvas.Handle, PChar(Cells[aCol, aRow]), Length(Cells[aCol, aRow]), Rect, DT_CENTER); end; end; end; Wie kann man es erreichen das die Zelle sofort eingefärbt wird, auch wenn goEditing auf True steht? Bis bald Chemiker |
Re: StringGrid Zelle wird erst nach verlassen der Zelle eing
Da ist noch der Inplace-Editor aktiv.
Im Standard-Stringgrid ist dieses Teil etwas störrisch. Versuche doch, ob man für diesen Color setzen kann. Peter |
Re: StringGrid Zelle wird erst nach verlassen der Zelle eing
Hallo hanspeter,
Zitat:
Bis bald Chemiker |
Re: StringGrid Zelle wird erst nach verlassen der Zelle eing
Für die Eingabe wird ein Editor-Element erzeugt, welches an der Stelle eingeblendet wird, beim Verlassen wird dein Code aufgerufen.
|
Re: StringGrid Zelle wird erst nach verlassen der Zelle eing
Hallo mkinzler,
das bedeutet, dass man das Editor-Element verändern muss, um das Verhalten zu ändern? Bis bald Chemiker |
Re: StringGrid Zelle wird erst nach verlassen der Zelle eing
Möglicherweise. Vielleicht hilft es auch die Farbe zu ändern
|
Re: StringGrid Zelle wird erst nach verlassen der Zelle eing
Hallo,
habe nach Inplace-Editor gesucht und bin auf einen Beitrag von Sakura gestoßen, der für StringGrid eine neue Komponente schreibt. ![]() @ mkinzler: Meinst Du das mit Farbe ändern, oder gibt es noch eine andere Methode um das Verhalten zu verändern? Bis bald Chemiker |
Re: StringGrid Zelle wird erst nach verlassen der Zelle eing
Lass mal DefaultDrawing auf True und setzte nur die Farbe
|
Re: StringGrid Zelle wird erst nach verlassen der Zelle eing
Hallo mkinzler,
DefaultDrawing habe ich nicht verstellt, sie steht auf TRUE. Was meinst Du mit nur die Farbe setzen? Mit Doppel-Click auf die Zelle, wird ein ColorDialog geöffnet und man kann die Farbe aussuchen.
Delphi-Quellcode:
Bis bald Chemiker
procedure TfrmStringGridDemo.StringGrid1DblClick(Sender: TObject);
begin with Sender as TStringGrid do begin if ColorDialog1.Execute then begin Objects[Col,Row]:= pointer (ColorDialog1.Color); Invalidate; end; end; end; |
Re: StringGrid Zelle wird erst nach verlassen der Zelle eing
Moin Chemiker,
wenn du mit der Standardkomponente TStringGrid arbeitest, dann genügt es, wenn du im richtigen Augenblick die Farbe deines Editors an die in Objects[] hinterlegte Farbe anpasst:
Delphi-Quellcode:
Grüße vom marabu
uses
Mask; type TGridCracker = class(TStringGrid); procedure TDemoForm.StringGridGetEditText(Sender: TObject; ACol, ARow: Integer; var Value: String); begin with TGridCracker(Sender) do if Assigned(InplaceEditor) then if Assigned(Objects[Col, Row]) then TMaskEdit(InplaceEditor).Color := TColor(Objects[ACol, ARow]) else TMaskEdit(InplaceEditor).Color := Color; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 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