Autor Beitrag
Krefti
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 164

Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 14.11.05 11:16 
Moin!

Die Laufvariable muss eine lokale Var. sein, sonst nix; so sollte es gehen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
  i: Integer;

begin
  for i := 0 to SpinEdit1.Value do
    ...

cu
Narses
Krefti Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 164

Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
BeitragVerfasst: Mo 14.11.05 11:18 
ok, alles klar, ich werds ausprobieren danke schon mal...!
Krefti Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 164

Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 164

Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 14.11.05 11:59 
Moin!

user profile iconKrefti 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.

user profile iconKrefti 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 164

Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 439
Erhaltene Danke: 3

W2K
D7
BeitragVerfasst: 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.

ausblenden 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:
//declaration
.....
TheEditArray : array [1..10of TEdit;
.....

//implementation
procedure TForm1.SpinEdit1Change(Sender: TObject);
var i,j : Integer;
begin
  j := 0;
  for i := 0 to ControlCount -1 do  //erst mal schaun, ob es schon das eine oder andere Edit gibt !
  if Controls[i] is TEdit then
    if pos('Edit',(Controls[i] as TEdit).name) <> 0 then inc(j);

  if j < SpinEdit1.Value then // dann Neue anlegen
  begin
    for i := (j +1to 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 // dann Überflüssige löschen
    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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 164

Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 439
Erhaltene Danke: 3

W2K
D7
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 164

Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
BeitragVerfasst: 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!