Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

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 StringGrid Zeile per Mausclick auslesen (https://www.delphipraxis.net/121427-stringgrid-zeile-per-mausclick-auslesen.html)

klausmaus 27. Sep 2008 09:56


StringGrid Zeile per Mausclick auslesen
 
Hallo Leute,

bin ein Newbie und habe folg. Problem:
Über Editfelder werden Daten in ein StringGrid eingelesen, gespeichert und sortiert. Habe auch `ne Suche, die gewünschte Datensätze in den Editfeldern ausgibt.
Möchte nun zusätzlich, dass beim anklicken einer Zeile die Editfelder mit den entsprechenden Daten gefüllt werden. Wie krieg ich das hin? (Options.goRowSelect ist true)

Klaus01 27. Sep 2008 10:57

Re: StringGrid Zeile per Mausclick auslesen
 
Hallo,

du könntest mit dem Event/Ereignis OnSelectCell arbeiten:

Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin

end;
Dort wird dir die markierte Zeile und Spalte übergeben.

Grüße
Klaus

klausmaus 27. Sep 2008 11:12

Re: StringGrid Zeile per Mausclick auslesen
 
Danke für den Tipp,

komme heute leider nicht mehr dazu, es auszuprobieren. Melde mich morgen wieder mit dem Ergebnis.

Schönes WE

klausmaus 28. Sep 2008 15:20

Re: StringGrid Zeile per Mausclick auslesen
 
Nach reichlich Bastelei bin jetzt soweit, das was ausgegeben wird.
Aber: wg. zeile
Delphi-Quellcode:
ARow:=Filepos(ChemDat)+1;
wird immer der erste Datensatz ausgegeben.
Wie krieg ich den aktuellen (angeklickten) Datensatz?
Hier der Code
Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
  begin
  If CanSelect=True then
    seek(ChemDat,0);
      with Chem do
        ARow:=Filepos(ChemDat)+1;
        begin
          read(ChemDat,Chem);
          EditNr.Text:=(StringGrid1.Cells[1,ARow]);
          EditName.Text:=StringGrid1.Cells[2,ARow];
          DateTimePicker1.Date:=StrToDate(StringGrid1.Cells[4,ARow]);
        end;
  end;
Wäre prima, wenn jemand `nen Tipp hätte.

DeddyH 28. Sep 2008 15:22

Re: StringGrid Zeile per Mausclick auslesen
 
Zitat:

Delphi-Quellcode:
ARow:=Filepos(ChemDat)+1;

Du willst ARow setzen statt es auszuwerten?

klausmaus 28. Sep 2008 15:35

Re: StringGrid Zeile per Mausclick auslesen
 
Oh Mann was bin ich doof.
Zeile entfernt und schon klappt es.

Besten Dank

BTW
Möchte den in den Edit-Feldern angezeigten Datensatz im StringGrid löschen. Wie stelle ich das an?

DeddyH 28. Sep 2008 15:41

Re: StringGrid Zeile per Mausclick auslesen
 
Spontan würde ich sagen:
- StringGrid zeilenweise durchlaufen und Inhalte vergleichen
- wenn gefunden, dann nachfolgende Zeilen aufrücken lassen
und RowCount neu setzen

klausmaus 28. Sep 2008 15:48

Re: StringGrid Zeile per Mausclick auslesen
 
Ein Datenvergleich ist m.E. nicht nötig. Habe die Daten im Edit. Demzufolge müsste der Zeiger doch auf diesen bzw. den nächsten Datensatz zeigen.
Ergo: Filepos irgendwie auswerten und anschließend RowCount um 1 zuurücksetzen und dann das Grid neu einlesen.
Soweit meine Idee.
Aber mit der Umsetzung haperts.

DeddyH 28. Sep 2008 15:55

Re: StringGrid Zeile per Mausclick auslesen
 
Nochmal zum Verständnis: wenn Du eine Zelle im StringGrid anklickst, werden dessen Daten in den Edits angezeigt?

klausmaus 28. Sep 2008 16:04

Re: StringGrid Zeile per Mausclick auslesen
 
Habs nochmal gecheckt. Egal, welche Zelle ich anklicke, der entsprechende Datensatz wird in den Edits gezeigt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 Uhr.
Seite 1 von 4  1 23     Letzte »    

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