[gelöst] Stringgrid zur hinzugefügten Reihe/Zeile springen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
sstvmaster
Beiträge: 576
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

[gelöst] Stringgrid zur hinzugefügten Reihe/Zeile springen

Beitrag von sstvmaster »

Hi ich habe mir ein kleines Tool geschrieben. Hier kann ich im Stringrid neue Spalten und Reihen einfügen.
Nun möchte ich gern, wenn ich eine Reihe (oberhalb/unterhalb) eingefügt habe, das ich per Code in die
Reihe und die erste Zelle der Spalte springen. Hier soll auch gleich der EditorMode gesetzt werden.

Ich habe versucht das über OnColRowInserted (Zeile 84) zu lösen.
Probiert habe ich:

Code: Alles auswählen

SG.Col := 0;
SG.Row := sIndex; 
SG.SetFocus;
Auch mit SG.Selection := TGridRect(Rect(...)); habe ich probiert.

Kann mir jemand bitte helfen?

Programm im Anhang, Bergliste.txt wäre hier die Datei.
Dateianhänge
Bergliste.zip
(148.59 KiB) 50-mal heruntergeladen
Zuletzt geändert von sstvmaster am Fr 1. Jan 2021, 11:43, insgesamt 2-mal geändert.
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

wp_xyz
Beiträge: 4889
Registriert: Fr 8. Apr 2011, 09:01

Re: Stringgrid zur hinzugefügten Reihe springen

Beitrag von wp_xyz »

Das geht beim Einfügen einer Zeile, indem du einfach SG.Row auf die Nummer der neuen Zeile setzt, und SG.Col auf die erste nicht feste Spalte (SG.Col := SG.FixedCols). Beim Einfügen einer Spalte nimmst du entsprechend SG.Col/SG.Row anstelle von SG.Row/SG.Col. Beim Einfügen einer Zeile "unterhalb" wäre das folgender Code (Im Unterschied zu deinem Code ist hier auch der Fall abgefangen, dass eine Zeile ganz unten angefügt werden soll):

Code: Alles auswählen

procedure TForm1.tbInsertRowBelowClick(Sender: TObject);
begin
  if SG.Row = SG.RowCount then
  begin
    SG.RowCount := SG.RowCount + 1;
    SG.Row := SG.RowCount-1;
  end else
  begin
    SG.InsertColRow(False, SG.Row + 1);
    SG.Row := SG.Row + 1;
  end;
  SG.Col := SG.FixedCols;
end; 

sstvmaster
Beiträge: 576
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Stringgrid zur hinzugefügten Reihe springen

Beitrag von sstvmaster »

Klappt wunderbar, vielen Dank.
Alles Gute und Gesundheit für Dich und Deine Familie für 2021.
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

Antworten