![]() |
Aktive zelle in StringGrid
Wie Kan ich ermitteln welche Zelle ist in String Grid aktiv und Wert auslesen?
|
Re: Aktive zelle in StringGrid
stringgrid1.selection
wenn du pech hast ist nich nur eine zelle selectiert und auslesen Stringgrid1.cells stringgrid1.rows stringgrid1.cols |
Re: Aktive zelle in StringGrid
Hm das hilft mir leider nicht weiter.
Wen cih StrGrid.Selection eingebe dann wie soll ich dann auslesen. |
Re: Aktive zelle in StringGrid
Moin Dani,
schau Dir doch mal Selection in der Hilfe an. |
Re: Aktive zelle in StringGrid
Liste der Anhänge anzeigen (Anzahl: 1)
Habe folgendes Problem:
Ich möchte Inhalte in einer StringGrid bei Klick auf einen Button ändern. Und zwar soll nach Markierung einer Zeile deren Inhalte in Edit-Felder übertragen werden. Meine StringGrid ist so, wie auf dem Bild im Anhang zu erkennen, aufgebaut. Und zwar werden nach Eingabe von 6 Werten diese Daten in die StringGrid eingetragen. Jetzt soll nach einem Klick auf eine Zeile und dann auf den Ändern-Button die Inhalte jeder Zelle von dieser Zeile in die Edit-Felder (im Prinzip die gleichen wie bei Hinzufügen) übertragen werden. Mein Problem hierbei ist, daß ich nicht weiß, wie man die einzelnen Koordinaten der Zellen der aktiven Zeile ausliest, damit die Inhalte jeder Zelle an die Edit-Felder übergeben werden können. Für hilfreiche Infos danke ich im Voraus :wink: |
Re: Aktive zelle in StringGrid
Hab jetzt mal folgende Idee umgesetzt:
Delphi-Quellcode:
Deklarierung der akt_zeile-Variable:
procedure TForm1.bb_changeClick(Sender: TObject);
begin change.ShowModal; //change ist Formblatt, wo sich die Edit-Felder befinden change.edt_name.Text:=strgr.cells[0,akt_zeile]; //Variable für aktive Zeile change.edt_prename.Text:=strgr.cells[1,akt_zeile]; change.edt_class.Text:=strgr.cells[2,akt_zeile]; change.edt_run.Text:=strgr.cells[3,akt_zeile]; change.edt_kugel.Text:=strgr.cells[4,akt_zeile]; change.edt_jumping.Text:=strgr.cells[5,akt_zeile]; end;
Delphi-Quellcode:
Dabei soll nach Klick auf einen Button der sich in den Zellen der aktiven Zeile befindliche Inhalt in jeweils ein Edit-Feld übertragen werden. Nur wenn ich das Programm starte, wird erst nach einem 2. Klick auf den Button die Werte übernommen. Beim ersten Mal passiert nichts. Felder sind leer. Woran kann das vielleicht liegen?
procedure TForm1.strgrSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean); begin akt_zeile:=ARow; //Variable für aktuelle Zeile end; Vielen Dank für hilfreiche Hinweise :zwinker: |
Re: Aktive zelle in StringGrid
Ich schätze mal, du mußt erst den Focus auf dein Stringgrid setzen.
Gruß, Bernd |
Re: Aktive zelle in StringGrid
Vielen Dank für Deinen Tip. Leider funktioniert dies nicht, es werden auch erst beim 2. Klick die Daten übertragen. :cry:
|
Re: Aktive zelle in StringGrid
Versteh ich jetzt nicht. Ich hab mal ein StringGrid angelegt, und in FormCreate mit Werten vorbelegt:
Code:
Dann in Button1 OnClick:
procedure TForm1.FormCreate(Sender: TObject);
begin StringGrid1.Cells[1,1]:='AA'; StringGrid1.Cells[2,1]:='BB'; StringGrid1.Cells[3,1]:='CC'; StringGrid1.Cells[4,1]:='DD'; StringGrid1.Cells[5,1]:='EE'; end;
Code:
Bei mir werden beim ersten Click die Edits mit AA,BB,CC usw. gefüllt.
procedure TForm1.Button1Click(Sender: TObject);
begin Edit1.Text:=StringGrid1.Cells[1,1]; Edit2.Text:=StringGrid1.Cells[2,1]; Edit3.Text:=StringGrid1.Cells[3,1]; Edit4.Text:=StringGrid1.Cells[4,1]; Edit5.Text:=StringGrid1.Cells[5,1]; end; Oder hab ich da jetzt das Problem falsch verstanden? Gruß,Bernd |
Re: Aktive zelle in StringGrid
Nee nee, das Problem hast Du erkannt :wink: . Ich will die Werte einer Zeile in Edit-Felder übertragen (die sich auf einem neuen Formblatt befinden), aber ich weiß nicht, wieso das immer erst beim 2. Klick passiert :x
Ich komm in meinem Quelltext der Sache einfach nich auf den Grund... :cry: Wenn ich die Prozedur (also das Werte eintragen) als FormCreate auf das neue Formblatt (wo die Edit-Dinger sind) lege, bekomme ich die Bestimmung der aktuell ausgewählten Zeile des StringGrids (akt_zeile:=ARow) nicht hin. Dann wird immer die 1. Reihe (die ist fest) in die Felder übertragen. Kann man die Zeile in dem Formblatt auch irgendwie bestimmen? :gruebel: Danke, thawka |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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-2025 by Thomas Breitkreuz