Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - mit spinedit Formular ändern
Krefti - Mo 14.11.05 10:47
Titel: mit spinedit Formular ändern
Morgen zusammen!
Ich habe ein Formular mit mehreren Textboxen in mehreren Spalten. Je nachdem, was der Anwender im Spinedit(erlaubt 1 bis 10) eingibt werden 1 bis 10 Reihen angezeigt. Ich weiß zwar, dass ich das mit dem OnChange machen muss, aber nicht wie ich den Value des spinedits auswerten kann, da ich alle komponenten dynamisch erzeuge muss ja die Variable der for-schleifen im Form1Create eine lokale Variable sein, also kann ich nicht den Wert des Value nehmen. Oder muss ich dann das Formular nach dem ändern des wertes im spinedit wieder neu zeichnen lassen?
Danke schon mal für eure Hilfe!
Narses - Mo 14.11.05 11:16
Moin!
Die Laufvariable muss eine lokale Var. sein, sonst nix; so sollte es gehen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var i: Integer;
begin for i := 0 to SpinEdit1.Value do ... |
cu
Narses
Krefti - Mo 14.11.05 11:18
ok, alles klar, ich werds ausprobieren danke schon mal...!
Krefti - Mo 14.11.05 11:23
jetzt wird beim starten des programmes nur eine reihe geziechnet, weil ja im spinedit value 1 steht, aber wie mache ich es, dass ich es während der Laufzeit wieder ändern kann? sobald ich hoch oder runter klicke, dass dann automatisch sich die anzahl der reihen ändert???
Narses - Mo 14.11.05 11:36
Moin!
Das hast du doch schon geschrieben, im OnChange des SpinEdits muss natürlich entsprechendes passieren. Ich finde, so langsam ist mal etwas Code fällig, sonst kann man da nix gescheites raten.
cu
Narses
Krefti - Mo 14.11.05 11:51
sorry, aber ich hab im onchange noch keinen code, weil ich nicht weiß, wie ich es machen muss, habe mit dem onchange bis jetzt noch nicht gearbeitet und hier im forum hab ich in verbindung mit spinEdits noch nichts passendes gefunden....
Narses - Mo 14.11.05 11:59
Moin!
Krefti hat folgendes geschrieben: |
| sorry, aber ich hab im onchange noch keinen code, weil ich nicht weiß, wie ich es machen muss |
Aber du hast doch schon Startup-Code, im OnChange passiert doch nix anderes.
Krefti hat folgendes geschrieben: |
| hier im forum hab ich in verbindung mit spinEdits noch nichts passendes gefunden.... |
Deshalb: zeig mal deinen Code, dann kann man auch gezielter helfen.
cu
Narses
Krefti - Mo 14.11.05 12:08
ok. hier der ganze programm code
hab den code wieder rausgelöscht...
chrisw - Mo 14.11.05 12:56
Ich hab da mal was geschrieben, muss natürlich angepasst werden; insbesondere die Position der TEdit Objekte.
Geht sicherlich noch einfacher, ist aber ein Schubser in die richtige Richtung.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| ..... TheEditArray : array [1..10] of TEdit; .....
procedure TForm1.SpinEdit1Change(Sender: TObject); var i,j : Integer; begin j := 0; for i := 0 to ControlCount -1 do if Controls[i] is TEdit then if pos('Edit',(Controls[i] as TEdit).name) <> 0 then inc(j);
if j < SpinEdit1.Value then begin for i := (j +1) to SpinEdit1.Value do begin TheEditArray[i] := TEdit.Create(self); TheEditArray[i].Left := i *60; TheEditArray[i].top := 10; TheEditArray[i].Parent := Form1; TheEditArray[i].name := 'Edit' + Inttostr(i); end; end else for i := SpinEdit1.Value +1 to j do TheEditArray[i].Free; end; |
Krefti - Mo 14.11.05 13:11
danke habs ausprobiert.. prinzipiell gehts auch.. jetzt noch die eine oder andere frage dazu:
1. das neue erzeugen ist ja jetzt nur für ein Edit oder? kann ich da nicht auf die form1create prozedur verweisen oder so ähnlich? damit ich nicht alle anlegen muss und die ganzen Positionen wieder eingeben mus...??
chrisw - Mo 14.11.05 13:22
Erstmal grundsätzlich : Neue Frage, neuer Thread !
Natürlich kann man sich für das Erzeugen der einzelnen Objekte eine Prozedur machen und diese aufrufen. Man kann aber nicht auf Teile des in FormCreate genutzten Codes zugreifen.
Hoffe trotzdem ich konnte helfen !
Krefti - Mo 14.11.05 13:35
werd nächstes mal dran denken
joar prinzipiell kontest mir helfen..danke!werd allerdings noch ganz schö eh weng was mache müsse, damits genau auf mein formular passt!!
danke trotzdem!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!