![]() |
Stringgrid Markierung deaktivieren
Liste der Anhänge anzeigen (Anzahl: 2)
1.
Lässt sich etwas schwer erklären, das kleine gestrichelte(Siehe Bild1), wie kann mann die deaktivieren! 2. Die Zweite Markierung hab ich so unsichtbar gemacht(Bild),
Delphi-Quellcode:
aber kann man diese Markierung auch richtig deaktivieren?
StringGrid1.Canvas.Brush.Color:=clgreen
Danke |
Re: Stringgrid Markierung deaktivieren
Das ist das "Focus Rectangle", wird normalerweise mit der Windows API Funktion DrawFocusRect gezeichnet.
Ich fürchte so ohne weiteres wirst du das nicht deaktivieren können. Wenn man die Eigenschaft DefaultDrawing des StringGrids auf False setzt, dann wird es nicht mehr gezeichnet - aber leider auch die festen Zellen, Markierungen und Strings nicht mehr. Das müsstest du dann alles selbst machen. |
Re: Stringgrid Markierung deaktivieren
Liste der Anhänge anzeigen (Anzahl: 1)
Yo,das klappt so weit, nur das Tabellenfeld(RowCount x ColCount) wird bis zum ersen Eintrag weis angezeigt.
|
Re: Stringgrid Markierung deaktivieren
Moin,
habe gerade kein Delphi zur Hand, aber mit
Delphi-Quellcode:
sollte die Markierung eigentlich weg sein.
var GR:TGridRect;
begin with GR do begin GR.Left:=-1; GR.Right:=-1; GR.Top:=-1; GR.Bottom:=-1; end; StringGrid.Selection:=GR; end; MfG Thorsten |
Re: Stringgrid Markierung deaktivieren
Liste der Anhänge anzeigen (Anzahl: 1)
@omata
Irgendwie klappts nich wirklich, also die Befehle werden zwar angenommen aber es ändert sich nicht alt zuviel. bei DefaultDrawing:False überhaupt nichts bei DefaultDrawing:True da ist beim Starten noch die blaue Markieung da, wenn ich auf die klicke, erscheint die andere Markierung, wenn ich jetzt einen Durchlauf bei Stringgrid mache, wird das Maximum um-1 überschritten. Dies kann zwar durch Dragmode Automatic ausschalten, da erscheint dann immer wenn ich auf das Stringgrid klicke der CRnoDrop,kann das ein normaler Cursor sein? hab hier mal das Beispielprogramm angehängt |
Re: Stringgrid Markierung deaktivieren
Ich hab das Problem mal eingekreist, wenn ich diese Zeilen lösche, tritt die Weiße Zeile nicht auf.
Delphi-Quellcode:
allerdings funktioniert dann diese Procedur nicht
Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, cells[acol, arow]);
Canvas.FrameRect(Rect); s:=Cells[ACol,ARow]; Canvas.FillRect(Rect); // Zellfarbe zeichnen richtig
Delphi-Quellcode:
procedure TForm1.insertGridLine(Grid :TStringGrid; index: integer);
var i:integer; begin Grid.RowCount :=Grid.RowCount +1; for i :=Grid.RowCount -2 downto index do begin Grid.Rows[i] :=Grid.Rows[i-1]; Grid.Rows[i-1].clear; end; end; |
Re: Stringgrid Markierung deaktivieren
Hallo
zu beiden Problem nutz bitte die Forensuche, das ist schon öfters behandelt wurden. da mit "noselection" (gridrect auf -1) führt eigentlich nur in Verbindung mit dem mausrad zu einer AV.
Delphi-Quellcode:
überleg mal ganz genau, was du hier machst. Insbesondere das fillrect am Ende. Tapezierst du erst und verputz du dann die Wand ;) ?.
Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, cells[acol, arow]);
Canvas.FrameRect(Rect); s:=Cells[ACol,ARow]; Canvas.FillRect(Rect); // Zellfarbe zeichnen Mfg Frank |
Re: Stringgrid Markierung deaktivieren
Yuhu ich habs
Delphi-Quellcode:
zumindest so klappts
canvas.Brush.Color := clgreen;
canvas.FillRect(Rect); canvas.TextOut(rect.Left + 2, rect.Top + 2, cells[acol, arow]); |
Re: Stringgrid Markierung deaktivieren
hallo,
probiert es mal so.
Delphi-Quellcode:
beim verlassen des stringgrid das ereignis exit ausführen
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState); var GR:TGridRect; begin with StringGrid1 do begin if gdFixed in State then Canvas.Brush.Color := FixedColor else Canvas.Brush.Color := Color; Rect.Top := Rect.Top + 1; Rect.Left := Rect.Left + 1; Rect.Right := Rect.Right - 1; Rect.Bottom := Rect.Bottom - 1; Canvas.FillRect(Rect); Canvas.TextOut(Rect.Left+2, Rect.Top+2, Cells[ACol, ARow]); if gdFocused in State then Canvas.DrawFocusRect(Rect); end; end; procedure TForm1.StringGrid1Exit(Sender: TObject); var GR:TGridRect; begin with GR do begin GR.Left:=0; GR.Right:=0; GR.Top:=0; GR.Bottom:=0; end; StringGrid1.Selection:=GR; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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