| Autor |
Beitrag |
Krefti
      
Beiträge: 164
Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
|
Verfasst: Mo 14.11.05 10:47
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
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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 
      
Beiträge: 164
Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
|
Verfasst: Mo 14.11.05 11:18
ok, alles klar, ich werds ausprobieren danke schon mal...!
|
|
Krefti 
      
Beiträge: 164
Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
|
Verfasst: 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
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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 
      
Beiträge: 164
Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
|
Verfasst: 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
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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 
      
Beiträge: 164
Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
|
Verfasst: Mo 14.11.05 12:08
ok. hier der ganze programm code
hab den code wieder rausgelöscht...
Zuletzt bearbeitet von Krefti am Mo 14.11.05 13:36, insgesamt 1-mal bearbeitet
|
|
chrisw
      
Beiträge: 439
Erhaltene Danke: 3
W2K
D7
|
Verfasst: 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; |
_________________ Man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug.
Zuletzt bearbeitet von chrisw am Mo 14.11.05 15:09, insgesamt 3-mal bearbeitet
|
|
Krefti 
      
Beiträge: 164
Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
|
Verfasst: 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
      
Beiträge: 439
Erhaltene Danke: 3
W2K
D7
|
Verfasst: 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 !
_________________ Man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug.
Zuletzt bearbeitet von chrisw am Mo 14.11.05 15:11, insgesamt 1-mal bearbeitet
|
|
Krefti 
      
Beiträge: 164
Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
|
Verfasst: 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!
|
|