Thema: Delphi TStringGrid

Einzelnen Beitrag anzeigen

Willie1

Registriert seit: 28. Mai 2008
657 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

AW: TStringGrid

  Alt 12. Apr 2021, 19:28
Ich habe mir StringGrid nochmal genau angesehen.
Zitat:
Beim Drehen des Mausrades wird halt immer weiter in den Zeilen nach oben oder unten gescrollt. Leider wird dabei vergessen auf das Ende des Grids zu achten und damit aus dem Grid rausgescrollt, anstatt dann mit dem Scrollen aufzuhören, wenn die erste bzw. die letzte Zeile im Grid erreicht ist.
Nein, daran liegt es nicht. Wenn das StrGr mit Mausklick oder SetFocus den Fokus hat, wird ein Rahmen um ein Feld gelegt = selektiert. Dann lässt sich mit dem Mausrad oder Pfeltasten/Blättern scrollen oder blättern ohne Problem auch bis zum Ende und wieder zum Anfang zurück.
Delphi-Quellcode:
procedure TSpitzeForm.SpitzeTabExit(Sender: TObject);
var
  MyRect: TGridRect;
begin
  MyRect.Left:=-1; // Löscht das selektierte Feld in der Tabelle
  MyRect.Top:=-1;
  MyRect.Right:=-1;
  MyRect.Bottom:=-1;
  TStringGrid(Sender).Selection:=MyRect
end; //dieser Tipp aus einer Tippsammlung ist unvollständig geprüft worden!
Wenn man diese Routine einfügt und dann das StrGr verlässt und jetzt das Mausrad über dem StrGr dreht, löst das den beschriebenen Fehler aus. Falls man die Routine weglässt, wird das Feld beim Verlassen des StrGr blau eingefärbt aber der Fehler tritt nicht auf!
Es bleibt also die Wahl, entweder die Blaufärbung des Feldes hin zu nehmen oder die Fehlermeldung zu provozieren. Blöd gemacht.

Himitsu, ich bin der "Niemand", der ganz gerne StrGr benutzt und finde diese Komponente nicht so schlecht aber ich bin auch nur Hobby-Programmierer. StrGr ist tatsächlich seit Delphi 3 unverändert.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.

Geändert von Willie1 (12. Apr 2021 um 19:34 Uhr)
  Mit Zitat antworten Zitat