![]() |
FMX: Stringgrid
Eine Frage zu StringGrid in Firemonkey:
also bei einem StringGrid im VCL kann ich locker den Wert einer Zelle auslesen. bei FMX-Stringgrid gibts aber das Stringgrid.rows nicht. Wie muss ich das machen damit ich beim anklicken einer bestimmten Zelle dessen Koordinaten (Sprich col und row) rausbekomme? Danke und Gruss Seph Edit: die Column bekomme ich mit: Stringgrid1.ColumnIndex |
AW: FMX: Stringgrid
Gelöst:
Steht natürlich wieder mal niergends! Column:
Delphi-Quellcode:
Stringgrid1.ColumnIndex
Row:
Delphi-Quellcode:
!!???
stringgrid1.Selected
habe es im
Delphi-Quellcode:
ausprobiert.
procedure TForm2.StringGrid1DblClick(Sender: TObject);
Warum .selected aber nur für die Row ist und die Column anders ausgelesen werden muss ist mir schleierhaft. |
AW: FMX: Stringgrid
Ich hab gesucht und gesucht, aber gefunden hab ich nichts... :(:(:(
Ich möchte die selektierte Zeile löschen. Also wie ich die Zeile rausbekomme weiss ich jetzt, aber wie kann ich sie löschen? -Es gibt verschiedene Beispiele in DP und im Netz, aber die sind alle für die VCL-Stringgrids. Wenn es nicht anders geht wechsle ich auch auf TGrid (aber hier habe ich zum löschen auch nichts gefunden...), obwohl da das Befüllen und Rauslesen der Einzelnen Zellen viel zu umständlich ist! Warum gibts in Firemonkey nicht was gescheites? Oder eben halt die gleichen Funktionen wie in VCL-Stringgrid?!? :gruebel: :x *Frust* :( |
AW: FMX: Stringgrid
Das kannst Du wie in der VCL machen, z.B. so:
Delphi-Quellcode:
Generell sollte man aber seine Daten nicht im StringGrid verwalten. Auch das TStringrid dient i.d.R. nur zur Anzeige von Daten. Gut, wenn man es in einem Dialog verwendet, wo der Anwender ein paar Zeilen eingibt, kann man das natürlich für diese temporäre Aufgabe machen.
Procedure DeleteRowAt (var sg:TStringGrid; F: LongInt);
var R, C: LongInt; begin if sg.RowCount > 1 then begin if F > sg.Rowcount-1 then exit; if F <> sg.RowCount-1 then begin sg.BeginUpdate; for R := F to sg.RowCount-2 do begin for C := 0 to sg.ColumnCount-1 do begin sg.cells[C,R] := sg.Cells[C,R+1]; end; end; sg.EndUpdate; end; sg.Rowcount := sg.RowCount - 1; end else begin sg.RowCount := 0; end; end; Zur Anzeige eignet sich noch besser das TGrid, das hat das schöne "OnGetValue"-Ereignis wo man dem Grid einfach sagt, welche Daten es anzeigen soll. Seine Daten hat man dann z.B. in einer Stringlist oder eben in einer richtigen Datenbank. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz