AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi StrinGrid (goRowSelect) zelleneintrag in ein form laden

StrinGrid (goRowSelect) zelleneintrag in ein form laden

Ein Thema von dopeline · begonnen am 9. Mai 2003 · letzter Beitrag vom 13. Mai 2003
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
dopeline

Registriert seit: 7. Mär 2003
Ort: Berlin
304 Beiträge
 
Delphi 7 Enterprise
 
#1

StrinGrid (goRowSelect) zelleneintrag in ein form laden

  Alt 9. Mai 2003, 21:07
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
  Mit Zitat antworten Zitat
Neo2084

Registriert seit: 1. Mai 2003
Ort: Thüringen
35 Beiträge
 
Delphi 5 Professional
 
#2
  Alt 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
  Mit Zitat antworten Zitat
dopeline

Registriert seit: 7. Mär 2003
Ort: Berlin
304 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 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)?
  Mit Zitat antworten Zitat
dopeline

Registriert seit: 7. Mär 2003
Ort: Berlin
304 Beiträge
 
Delphi 7 Enterprise
 
#4
  Alt 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
  Mit Zitat antworten Zitat
dopeline

Registriert seit: 7. Mär 2003
Ort: Berlin
304 Beiträge
 
Delphi 7 Enterprise
 
#5
  Alt 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)
  Mit Zitat antworten Zitat
Neo2084

Registriert seit: 1. Mai 2003
Ort: Thüringen
35 Beiträge
 
Delphi 5 Professional
 
#6
  Alt 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
  Mit Zitat antworten Zitat
Neo2084

Registriert seit: 1. Mai 2003
Ort: Thüringen
35 Beiträge
 
Delphi 5 Professional
 
#7
  Alt 9. Mai 2003, 21:40
Hallo,


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

Gruß Neo
  Mit Zitat antworten Zitat
dopeline

Registriert seit: 7. Mär 2003
Ort: Berlin
304 Beiträge
 
Delphi 7 Enterprise
 
#8
  Alt 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)
  Mit Zitat antworten Zitat
Neo2084

Registriert seit: 1. Mai 2003
Ort: Thüringen
35 Beiträge
 
Delphi 5 Professional
 
#9
  Alt 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
  Mit Zitat antworten Zitat
Marco Haffner
(Gast)

n/a Beiträge
 
#10
  Alt 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 StringGrid1.RowCount - 1 .
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr.
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