StringGrid selektiere Zeile in Erfahrung bringen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6857
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

StringGrid selektiere Zeile in Erfahrung bringen

Beitrag von af0815 »

Ich habe ein leeres Grid, also ohne definierte Spalten, das wie folgt befülle

Code: Alles auswählen

procedure TFrmTransfer.ActGetDataSQLExecute(Sender: TObject);
var
  Z: TXXZeilen;
  i: integer;
  Res: integer;
begin
  ActGetDataSQL.Enabled:= false;
  try
    SetLength(Z,0);
    SG1.Clear;
    Res:= GetCon.LadeZeilen(Z);
    SG1.RowCount:= Z.Length + 1;
    SG1.ColCount:= 7;
    For i:= 0 to Z.Length-1 do begin
      SG1.Cells[0,1+i]:= (i+1).ToString;
      SG1.Cells[1,1+i]:= Z[i].XX;
      SG1.Cells[2,1+i]:= Z[i].AAArt.ToString;
      SG1.Cells[3,1+i]:= Z[i].Lager;
      SG1.Cells[4,1+i]:= Z[i].Teilenummer;
    end;
  finally
    ActGetDataSQL.Enabled:= true;
  end;
end;
Der Benutzer kann eine Reihe anwählen, dazu sind die entsprechenden Optionen im Grid gesetzt, auch das er nur EINE Reihe anwählen kann.

A) Drückt er jetzt einen Button, so möchte ich wissen, welche Reihe er angewählt hat ?
Ich kann zwar Selection oder SelectedRange scheinbar benutzen, damit bekomme ich aber nur Points Retour, aber nicht welche Zelle(n) es betrifft. Irgendwie stehe ich da auf dem Schlauch.

B) Kann ich einem Grid, wo ich die Columns per ColCout definiert habe, eine Buttonspalte hinzufügen ?
Ich wollte da den ColCount um eines erweitern, aber scheinbar kann ich dann nicht auf normale Coloumn Objekte zugreifen.

Kann mich bitte wer in die richtige Richtung schubsen (von mir aus treten).

---
Hinweis: TXXZeilen sind ganz einfach ein normales dynamisches array, dem ich ein paar Helper wie zB. Length verpasst habe, also nichts spezielles :-) Man wird ja bequemer.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Re: StringGrid selektiere Zeile in Erfahrung bringen

Beitrag von theo »

af0815 hat geschrieben: Fr 13. Sep 2024, 14:29 A) Drückt er jetzt einen Button, so möchte ich wissen, welche Reihe er angewählt hat ?

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
begin
  Caption:=StringGrid1.Row.ToString;
end;   

Antworten