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 StrinGrid (goRowSelect) zelleneintrag in ein form laden (https://www.delphipraxis.net/4726-stringrid-gorowselect-zelleneintrag-ein-form-laden.html)

dopeline 9. Mai 2003 21:07


StrinGrid (goRowSelect) zelleneintrag in ein form laden
 
Ich habe eine Tabelle, die nur Zeilenweise markiert werden kann. in einem anderen formular werden daten in edit-felder eingetrage und in die tabelle auf dem mainform übertragen. für jeden eintrag schreibt er eine neue zeile. wenn man einen bestehenden eintrag auf rechtsklick(popup-menu) "Eintrag bearbeiten" klickt, soll das eingabe-formular wieder aufgerufen werden und dort wieder die entsprchenden daten der angeklickten zeile wieder in die edit-felder geschrieben werden. hintergrund ist, die bereits erstellten einträge zu ändern und wieder in die tabelle zu übernehmen.

uff



Irgentwelche vorschläge?

Grüße, dopeline

Neo2084 9. Mai 2003 21:17

Hi,

wie währe es denn damit ???

Code:
// Holt die Daten aus der 2. !!! Spalte des Stringgrids in der ausgewälten
// Reiche in das Edit
edit1.text :=Stringgrid1.Rows[Stringgrid1.Row].Strings[1];
ungetestet ..., sollte aber so gehen

Gruß Neo

PS: Mit 17 Delphi 7.0 Enterprise.... Ihr seid bestimmt ganz schlimm reich :lol:

dopeline 9. Mai 2003 21:26

das funktioniert schon mal! wenn ich die erste zeile markiere und auf den button klicke, steht in dem editfeld der string (zeile 1 spalte 2)

aber wie veralgemeinere ich das (das es mit allen spalten (und allen editfelder(es sind mehrere>> name, adresse, telefon...) klappt)?

dopeline 9. Mai 2003 21:29

hat sich schon erledigt! hab es gefunden:
Code:
FormNeuerEintrag.EditName.Text :=Stringgrid1.Rows[Stringgrid1.Row].Strings[0];
FormNeuerEintrag.EditTelefon.Text :=Stringgrid1.Rows[Stringgrid1.Row].Strings[1];
FormNeuerEintrag.EditAdresse.Text :=Stringgrid1.Rows[Stringgrid1.Row].Strings[2];
FormNeuerEintrag.EditMobil.Text :=Stringgrid1.Rows[Stringgrid1.Row].Strings[3];
FormNeuerEintrag.EditMail.Text :=Stringgrid1.Rows[Stringgrid1.Row].Strings[4];
Trotzdem DANKE!!!

Gruß, dopeline :dancer:

dopeline 9. Mai 2003 21:33

achso, da ist aber noch eine sache:
wenn ich das bearbeiten-fenster öffne, den eintrag bearbeie und wieder abspeichere, denkt er es sei ein neuer eintrag und erstellt auch einen neuen(neue zeile in der tabelle) :(

Neo2084 9. Mai 2003 21:35

Hi,

das wirst du wohl gar nicht können, da du deine Edit-Felder nicht in einem Array hast..
Die Spalten sind ja nicht das Problem, die kannst du ja in einer for-Schleife durchlaufen.
Einzige möglichkeit währe die Edit-Felder dynamisch zu generieren und dann Pointer auf die Edits in einem Array zu verwalten.

Gruß Neo

Neo2084 9. Mai 2003 21:40

Hallo,


kehr meine Funktion einfach un :
Delphi-Quellcode:
Stringgrid1.Rows[Stringgrid1.Row].Strings[1]; :=edit1.text;
Stringgrid1.Row bezeichnet immer die markierte Zeile.

Gruß Neo

dopeline 9. Mai 2003 21:57

ja letzteres funktioniert! jetzt noch eine sache:

gibt es eine möglichkeit abzufragen, wiewiele zeilen der tabelle belegt sind?

denn wenn ich eine datei lade, und einen eintrag erstelle, fängt er ganz ober an und ersetzt den schon bestehenden in zeile 1. doch eigentlich sollte er gucken "wielviele zeilen sind schon belegt? >> also ist der nächste eintrag zeile:=zeile+1"
(iah hab die variable eingesetzt, dass er bei jedem eintrag eine zeile weiter springt)

Neo2084 9. Mai 2003 22:19

Hi,

StringGrid1.Rows ist dein Freund ;-)

Um eine Zeile erweitern :
StringGrid1.Rows :=StringGrid1.Rows+1;

auf letzte Zeile stellen :

StringGrid1.Row :=StringGrid1.Rows-1;


Gruß Neo

Marco Haffner 9. Mai 2003 22:19

Wie jetzt belegt? Nicht leere Zeilen oder was?
Mit RowCount kannst Du jedenfalls die Anzahl der Zeilen abrufen.
Um auf die letzte Zeile des StringGrids zuzugreifen nimmst Du dann
Delphi-Quellcode:
StringGrid1.RowCount - 1
.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:04 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