AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Problem mit onSelectCell-Eigenschaft beim stringgrid
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit onSelectCell-Eigenschaft beim stringgrid

Ein Thema von Ayumi · begonnen am 5. Okt 2006 · letzter Beitrag vom 5. Okt 2006
Antwort Antwort
Ayumi

Registriert seit: 20. Apr 2005
18 Beiträge
 
#1

Problem mit onSelectCell-Eigenschaft beim stringgrid

  Alt 5. Okt 2006, 14:38
Hallo,

Wenn der Anwender auf die Spalte 0 des StringGrids klickt, soll die ganze Zeile markiert werden.

Jetzt habe ich folgendes Problem: Wenn der Anwender irgendwo ins stringgrid klickt und danach in die Spalte 0, reagiert mein Programm nicht. Erst beim zweiten Klick auf die Spalte 0 wird die ganze zeile markiert. Wenn der Anwender gleich danach in einer anderen Zeile in spalte 0 klickt, wird die ganze Zeile sofort markiert. Sobald der Anwender aber wieder irgendwo anders ins Stringgrid klickt und danach in Zeile 0, tritt das Problem wieder auf?

Hat dafür einer eine Erklärung?


Hier ist der Programm-Code:

Delphi-Quellcode:
procedure TForm1.GridSelectCell( Sender : TObject;
                                  ACol,
                                  ARow : Integer;
                              var CanSelect : Boolean);
begin
if Grid.cells[1,1] = 'then
    exit
  else
    SelectRowInCol0(Acol,ARow,0);
end;


procedure TForm1.SelectRowInCol0(const ACol, ARow, titelzeile : integer);
begin
 if (ACol=0) and (ARow>titelzeile) then begin
  Grid.Options := Grid.Options + [goRowSelect];
  Grid.Options := Grid.Options + [goRangeSelect];
 end
 else begin
  Grid.Options:= Grid.Options - [goRowSelect];
  Grid.Options:= Grid.Options - [goRangeSelect];
 end;
end;
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Problem mit onSelectCell-Eigenschaft beim stringgrid

  Alt 5. Okt 2006, 17:20
Hi Filiz,

es liegt wahrscheinlich daran, dass du das falsche Ereignis verwendest:

Delphi-Quellcode:
procedure TDemoForm.StringGridMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  iCol, iRow: Integer;
begin
  with Sender as TStringGrid do
  begin
    MouseToCell(X, Y, iCol, iRow);
    if iRow < FixedRows then
      Exit else
    if (iCol < FixedCols) or (iCol = 0) then
      Options := Options + [goRowSelect] else
    begin
      Options := Options - [goRowSelect];
      if iCol = Col then
        Selection := TGridRect(Rect(iCol, iRow, iCol, iRow));
      Col := iCol;
    end;
    Row := iRow;
  end;
end;
Grüße vom marabu
Angehängte Dateien
Dateityp: zip ayumi_140.zip (1,8 KB, 15x aufgerufen)
  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 14:09 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