Gibt es eine Möglichkeit, einen ausgewählten DBGrid-Datensatz in einem Memo anzuzeigen? Ich habe diese Art von Code versucht, aber das zeigt die Titel der Spalten und ich möchte den Text der Felder anzeigen.DBGrid-Zeilen in einem Memo angezeigt
procedure TForm6.btnShowClick(Sender: TObject);
var
l: String;
p: Integer;
i: Integer;
m: String;
begin
m:='';
for p := 0 to dbGrid1.Columns.Count - 1 do
m:=m+(format('%s',[dbGrid1.Columns[p].Title.Caption]))+lm;
Memo1.Lines.Add(m);
if Dbgrid1.SelectedRows.Count>0 then
begin
with dbgrid1.DataSource.DataSet do
begin
l:=' ';
GoToBookMark(tBookmark(dbGrid1.SelectedRows[i]));
for p := 0 to Dbgrid1.Columns.Count - 1 do
begin
l:=l+(format('%s',[dbgrid1.Columns[p].Field.AsString]));
end;
Memo1.Lines.Add(l) ;
end;
end;
end;
end.
Ich versuchte, die [DBGrid1.Columns [p] .Field.AsString] zu ändern, so dass es den Text des Feldes verwendet, aber es funktioniert nicht. Hinweis: Dies ist der Vorlagencode, den ich zu verwenden hoffe.
Gibt es einen einfacheren Weg ohne Sql, um einfach einen ausgewählten Datensatz in einem Memo anzuzeigen?
Entschuldigung, ich kann Ihre Frage nicht verstehen. Erstens liefert dbgrid1.Columns [p] .Field.AsString] ** ** den Wert in der Spaltenzelle, nicht den Titel, und zweitens, was hat Sql mit dem zu tun, was Sie fragen? – MartynA
Ist Ihnen der Unterschied zwischen der _current row_ und _selected rows_ bekannt? Die 'SelectedRows'-Eigenschaft ruft die Liste der Zeilen ab, die als _selected_ markiert sind. Das ist nicht dasselbe wie die aktuelle Zeile, die dem aktuellen Datensatz des zugrunde liegenden Datensatzes entspricht. Ich bin mir nicht sicher, ob Sie 'SelectedRows' wirklich hier haben wollen. –
Sie scheinen den 'i' -Index von' GoToBookMark (tBookmark (dbGrid1.SelectedRows [i])) nicht an einer beliebigen Stelle zu setzen. –