![]() |
Re: Rückgabe aus Stringgrid
so, habs ausprobiert.
Bekomme aber keine Werte zurück mittels Selectedrows... um zu sehen ob ausgelesen wird wird es mittels Listbox angezeigt. Quell ist aus der OH.
Delphi-Quellcode:
procedure Tartgruppen.ggridCellClick(Column: TColumn);
var i, j: Integer; s: string; begin if ggrid.SelectedRows.Count>0 then with ggrid.DataSource.DataSet do for i:=0 to ggrid.SelectedRows.Count-1 do begin GotoBookmark(pointer(ggrid.SelectedRows.Items[i])); for j := 0 to FieldCount-1 do begin if (j>0) then s:=s+', '; s:=s+Fields[j].AsString; end; Listbox1.Items.Add(s); s:= ''; end; end; |
Re: Rückgabe aus Stringgrid
Da ein DBGrid ein DataSet visualisiert, würde ich direkt über das DataSet zugreifen
|
Re: Rückgabe aus Stringgrid
Hiho,
das ganze funktioniert einfach nicht. Die Listbox bleibt leer... hier mal der ganze Code, wenn ihr bitte mal drüber guckt:
Delphi-Quellcode:
type
Tartgruppen = class(TForm) gruname: TEdit; gquer: TADOQuery; sPanel1: TsPanel; speichern: TsButton; loesch: TsButton; sLabel1: TsLabel; sLabel2: TsLabel; ggrid: TDBGrid; gsource: TDataSource; upquer: TADOQuery; ListBox1: TListBox; upds: TDataSource; procedure speichernClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure ggridCellClick(Column: TColumn); private { Private-Deklarationen } public { Public-Deklarationen } end; var artgruppen: Tartgruppen; implementation {$R *.dfm} uses haupt,DatenModulUnit; procedure auslesen(const grid:TDBGrid; ugquer:TADOQuery); var xc: Integer; begin grid.Columns[0].Width:=20; grid.Columns[1].Width:=170; ugquer.Close; ugquer.SQL.Clear; ugquer.SQL.Add('SELECT * FROM artgr'); ugquer.Open; end; procedure Tartgruppen.speichernClick(Sender: TObject); begin gquer.Close; gquer.SQL.Clear; gquer.SQL.Add('INSERT INTO artgr (NAME) VALUES ('+QuotedStr(gruname.Text)+')'); gquer.ExecSQL; auslesen(ggrid,upquer); gruname.SetFocus; gruname.Text:=''; end; procedure Tartgruppen.FormActivate(Sender: TObject); begin auslesen(ggrid,upquer); end; procedure Tartgruppen.ggridCellClick(Column: TColumn); var i, j: Integer; s: string; begin if ggrid.SelectedRows.Count>0 then with ggrid.DataSource.DataSet do //with ggrid1.DataSource.DataSet do for i:=0 to ggrid.SelectedRows.Count-1 do begin GotoBookmark(pointer(ggrid.SelectedRows.Items[i])); for j := 0 to FieldCount-1 do begin if (j>0) then s:=s+', '; s:=s+Fields[j].AsString; end; Listbox1.Items.Add(s); s:= ''; end; end; |
Re: Rückgabe aus Stringgrid
Hai Privateer3000,
wie mkinzler schon sagte würde ich nicht über das TDBGrid arbeiten. Den Spaltenwechsel bekommst Du im OnAfterScroll des DataSet. Dort würde ich dann die Listbox füllen. |
Re: Rückgabe aus Stringgrid
Hai
ich will keine Listbox füllen, die ist nur zur kontrolle da. Im Endeffekt soll der Datensatz gelöscht werden der im DBGrid markiert wurde. |
Re: Rückgabe aus Stringgrid
Zitat:
Delphi-Quellcode:
machen.
begin
query.delete; end; |
Re: Rückgabe aus Stringgrid
Danke,
welche komponenten sind dafür nötig? zu dem DBGrid gehören im Moment ein Datasource und ein ADOQuery und wie müssen die konfiguriert werden. Grüße |
Re: Rückgabe aus Stringgrid
um ihn zur Kontrolle auch anzuzeigen hab ich das versucht:
Delphi-Quellcode:
das funktioniert nicht.
procedure Tartgruppen.ggridCellClick(Column: TColumn);
begin if ggrid.SelectedRows.Count>0 then gruname.Text:=gquer.Fields[1].Value; end; Das mit dem löschen klappt aber! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 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