![]() |
problem mit schleife
ich hab folgendes problem mit einer schleife.
beispiel: in zeile eins ist aus der combobox rechteck ausgewählt, es werden also die zellen in zeile 1 in der spalte 3 un 4 auf länge a bzw. höhe b umgestellt. soweit noch kein problem. jetzt gibt man zahlen in die zellen ein. dann geht man in die nächste zeile und wählt wieder etwas aus. jetzt werden die zellen in zeile 2 wie gewollt beschrieben, allerdings werden in zeile 1 die eingegebenen zahlen wieder von länge a und höhe b überschrieben. es ist natürlich logisch das das passiert, meine frage deshalb: wie kann ich umgehen, dass zeile 1 wieder überschrieben wird?
Code:
danke im voraus.For i:=1 to 6 do // von Zeile 1 bis 6 mache begin if Tab.Cells[1,i] = ComboBox1.Items[0] then // falls nichts aktiviert ist begin Tab.Cells[3,i]:=('0'); // ändern auf '0' Tab.Cells[4,i]:=('0'); // ändern auf '0' end; if Tab.Cells[1,i] = ComboBox1.Items[1] then // falls Rechteck aktiviert ist begin Tab.Cells[3,i]:=('Länge A'); // ändern auf 'Länge A' Tab.Cells[4,i]:=('Höhe B'); // ändern auf 'Höhe B' Tab.Cells[2,i]:=('+'); // Vorzeichen auf + stellen end; if Tab.Cells[1,i] = ComboBox1.Items[2] then // falls Dreieck aktiviert ist begin Tab.Cells[3,i]:=('Länge A'); // ändern auf 'Länge A' Tab.Cells[4,i]:=('Höhe B'); // ändern auf 'Höhe B' Tab.Cells[2,i]:=('+'); // Vorzeichen auf + stellen end; if Tab.Cells[1,i] = ComboBox1.Items[3] then // falls Kreissektor aktiviert ist begin Tab.Cells[3,i]:=('Radius'); // ändern auf 'Radius' Tab.Cells[4,i]:=('Winkel'); // ändern auf 'Winkel' Tab.Cells[2,i]:=('+'); // Vorzeichen auf + stellen end; if Tab.Cells[1,i] = ComboBox1.Items[4] then // falls Kreisabschnitt aktiviert ist begin Tab.Cells[3,i]:=('Radius'); // ändern auf 'Radius' Tab.Cells[4,i]:=('Winkel'); // ändern auf 'Winkel' Tab.Cells[2,i]:=('+'); // Vorzeichen auf + stellen end; if Tab.Cells[1,i] = ComboBox1.Items[5] then // wenn Kreis aktiviert begin Tab.Cells[3,i]:=('Radius'); // zum besseren Verständniss 'Radius' in Spalte 3 Tab.Cells[2,i]:=('+'); // Vorzeichen auf + stellen end; end; |
Re: problem mit schleife
Hallo herrentor,
die Frage ist ja, was genau du von dem Programm erwartest. Soll nur die aktuelle Zeile angepasst werden, dann kannst du das anstatt in einer Schleife über die Eigenschaft Row erledigen. Willst du alle, aber nur die unmodifizierten Felder bearbeiten, musst du vor dem Schreiben entweder den Inhalt lesen und dann entscheiden, ob du diesen überschreiben willst, oder du merkst dir beim Schreiben, ob eine Zelle bereits mit Werten überschrieben wurde. |
Re: problem mit schleife
es soll "einfach" nur in der zeile, in der man eine auswahl über die combobox anklickt, zwei zellen beschriftet werden und zwar nut in der zelle. in meiner variante wird das gemacht, jedoch ändern sich dann auch andere zeile, in der eine auswahl über die eingebaute combobox getroffen wurde.
|
Re: problem mit schleife
Hallo herrentor,
das sollte dann doch so funktionieren, dass du anstatt der Schleife alle Anweisungen mit Row anstelle von i ausführst. |
Re: problem mit schleife
ok, jetzt macht er es so. allerdings schreibt er erst in die zellen, wenn ich in sie klick. kann man nicht einstellen, dass die sofort beim klick auf die auswahl in der combobox beschrieben werden?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02: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