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 String Grid - Klick auf Fixed Felder (https://www.delphipraxis.net/36146-string-grid-klick-auf-fixed-felder.html)

GoTo0815 16. Dez 2004 13:15


String Grid - Klick auf Fixed Felder
 
Hallo,

ich bin mal wieder an einem Punkt an dem ich denke, dass es ganz leicht weitergehen müsste, aber ich wohl ein Stück Holz vorm Kopf habe:

Habe ein StrinGrid mit FixedCols:=1 und FixedRows:=1

Wenn ich ganz links auf die Fixed Cols drücke und die Maus unten lasse, dann kann ich durch Mausbewegung die Reihen vertauschen. Das läuft super! Allerdings soll, wenn man einen Doppelclick macht eine neues Fenster aufgehen und etwas anhand der Daten in der aktuellen Reihe berechnet werden.

Leider aber ist nicht die automatisch die ganze Reihe markiert, wenn ich auf eine fixed Cell klicke.

Das bedeutet im Klartext. Mache ich auf einer Fixed cell einen Doppelclick, dann ist meistens noch eine ganz andere Reihe mit dem Focus versehen. Ich möchte aber, dass durch klicken auf eine Fixed Cell auch die entsprechende Row dahinter selectiert wird.

So.... kurzer Sinn...lange Rede... wer kann helfen??

Gruß

Hendrik :wall:

omata 16. Dez 2004 23:58

Re: String Grid - Klick auf Fixed Felder
 
Moin,

hoffe das hilft dir...

Delphi-Quellcode:
procedure TForm.FormCreate(Sender: TObject);
var GridRect:TGridRect;
begin
  with GridRect do begin
    Left:=-1;
    Right:=-1;
    Top:=-1;
    Bottom:=-1;
  end;
  StringGrid.Selection:=GridRect;
end;

procedure TForm.StringGridMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var Col, Row:integer;
    GridRect:TGridRect;
    StringGrid:TStringGrid;
begin
  if Sender is TStringGrid then begin
    StringGrid:=TStringGrid(Sender);
    StringGrid.MouseToCell(X, Y, Col, Row);
    if (Col >= 0) and (Row >= 0) then begin
      GridRect.Left:=0;
      GridRect.Right:=StringGrid.ColCount;
      GridRect.Top:=Row;
      GridRect.Bottom:=Row;
      StringGrid.Selection:=GridRect;
    end;
  end;
end;

procedure TForm.StringGridSelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  CanSelect:=false;
end;
MfG
Thorsten


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