AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid Markierung deaktivieren

Ein Thema von Hallo_Thomas · begonnen am 30. Jul 2005 · letzter Beitrag vom 14. Feb 2007
Antwort Antwort
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#1

Stringgrid Markierung deaktivieren

  Alt 30. Jul 2005, 21:57
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),

StringGrid1.Canvas.Brush.Color:=clgreen aber kann man diese Markierung auch richtig deaktivieren?

Danke
Angehängte Grafiken
Dateityp: bmp stringgrid2_360.bmp (40,9 KB, 110x aufgerufen)
Dateityp: bmp stringgrid1_187.bmp (38,5 KB, 97x aufgerufen)
  Mit Zitat antworten Zitat
SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#2

Re: Stringgrid Markierung deaktivieren

  Alt 30. Jul 2005, 22:16
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.
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Stringgrid Markierung deaktivieren

  Alt 30. Jul 2005, 22:38
Yo,das klappt so weit, nur das Tabellenfeld(RowCount x ColCount) wird bis zum ersen Eintrag weis angezeigt.
Angehängte Grafiken
Dateityp: bmp stringgrid2_868.bmp (31,2 KB, 53x aufgerufen)
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Stringgrid Markierung deaktivieren

  Alt 30. Jul 2005, 23:06
Moin,

habe gerade kein Delphi zur Hand, aber mit

Delphi-Quellcode:
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;
sollte die Markierung eigentlich weg sein.

MfG
Thorsten
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Stringgrid Markierung deaktivieren

  Alt 30. Jul 2005, 23:23
@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
Angehängte Dateien
Dateityp: zip bpl_191.zip (23,4 KB, 24x aufgerufen)
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Stringgrid Markierung deaktivieren

  Alt 30. Jul 2005, 23:56
Ich hab das Problem mal eingekreist, wenn ich diese Zeilen lösche, tritt die Weiße Zeile nicht auf.


Delphi-Quellcode:
       Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, cells[acol, arow]);
       Canvas.FrameRect(Rect);
       s:=Cells[ACol,ARow];
       Canvas.FillRect(Rect); // Zellfarbe zeichnen
allerdings funktioniert dann diese Procedur nicht
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;
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

Re: Stringgrid Markierung deaktivieren

  Alt 31. Jul 2005, 07:06
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:
Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, cells[acol, arow]);
       Canvas.FrameRect(Rect);
       s:=Cells[ACol,ARow];
       Canvas.FillRect(Rect); // Zellfarbe zeichnen
überleg mal ganz genau, was du hier machst. Insbesondere das fillrect am Ende. Tapezierst du erst und verputz du dann die Wand ?.

Mfg Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#8

Re: Stringgrid Markierung deaktivieren

  Alt 31. Jul 2005, 10:16
Yuhu ich habs

Delphi-Quellcode:
canvas.Brush.Color := clgreen;
canvas.FillRect(Rect);
canvas.TextOut(rect.Left + 2, rect.Top + 2, cells[acol, arow]);
zumindest so klappts
  Mit Zitat antworten Zitat
edmu

Registriert seit: 27. Jul 2004
41 Beiträge
 
#9

Re: Stringgrid Markierung deaktivieren

  Alt 14. Feb 2007, 04:47
hallo,
probiert es mal so.

Delphi-Quellcode:
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;
beim verlassen des stringgrid das ereignis exit ausführen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:36 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