Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Rückgabe aus Stringgrid (https://www.delphipraxis.net/110820-rueckgabe-aus-stringgrid.html)

Privateer3000 25. Mär 2008 15:00

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;

mkinzler 25. Mär 2008 15:04

Re: Rückgabe aus Stringgrid
 
Da ein DBGrid ein DataSet visualisiert, würde ich direkt über das DataSet zugreifen

Privateer3000 26. Mär 2008 09:06

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;

Sharky 26. Mär 2008 09:19

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.

Privateer3000 26. Mär 2008 09:27

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.

Sharky 26. Mär 2008 09:32

Re: Rückgabe aus Stringgrid
 
Zitat:

Zitat von Privateer3000
... Im Endeffekt soll der Datensatz gelöscht werden
der im DBGrid markiert wurde.

Na dann mache es doch einfach. Das DBGrid zeigt nur Daten an. Der Datensatzzeiger des Query steht immer auf dem im Gridmarkierten Datensatz. Also musst Du doch nur ein:
Delphi-Quellcode:
begin
  query.delete;
end;
machen.

Privateer3000 26. Mär 2008 12:19

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

Privateer3000 26. Mär 2008 13:01

Re: Rückgabe aus Stringgrid
 
um ihn zur Kontrolle auch anzuzeigen hab ich das versucht:
Delphi-Quellcode:
procedure Tartgruppen.ggridCellClick(Column: TColumn);
begin
  if ggrid.SelectedRows.Count>0 then
  gruname.Text:=gquer.Fields[1].Value;
end;
das funktioniert nicht.

Das mit dem löschen klappt aber!


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz