Load flere controller af en slags!

Tags:    visual-basic

Hej, jeg prøver at lave et program! (surprise)

Jeg har min default form ,og den vil jeg gerne have lavet 9 andre forme af, hvordan er det nu jeg gør det??

Er det noget ala Dim form as form, jeg skal jo på en måde have lavet 10 af dem??

F.eks:

for i = 0 to 10
dim form(i) as form
form(i).show
next i

PS, denne kode stump virker ikke, men det er noget i den stil jeg lige kunne tænke mig til...
Og så håber jeg du forstår hvad jeg mener!!

If you don't succeed, redefine success...



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hej, jeg prøver at lave et program! (surprise)

Jeg har min default form ,og den vil jeg gerne have lavet 9 andre forme af, hvordan er det nu jeg gør det??

Er det noget ala Dim form as form, jeg skal jo på en måde have lavet 10 af dem??

F.eks:

for i = 0 to 10
dim form(i) as form
form(i).show
next i

PS, denne kode stump virker ikke, men det er noget i den stil jeg lige kunne tænke mig til...
Og så håber jeg du forstår hvad jeg mener!!

If you don't succeed, redefine success...



Jeg går som givet udfra det er i Delphi du ønsker at lave ovenstående? Du kunne eventuelt skrive således:

var
FormArray: array [0..10] of TMyForm;

procedure Something();
begin
for I:= low(FormArray) to high(FormArray) do
begin
FormArray[I] := TMyForm.Create(self);
FormArray[I].Caption := IntToStr(I);
FormArray[I].Show();
end;
end;

Problemet er selvsagt at du laver en række identiske vinduer (Forms) - altså med samme caption, placering m.m. Kort sagt du vil ikke umiddelbart opdage du har disse (derfor linien med Caption så du faktisk kan se de er unike vinduer).

Umiddelbart ville jeg nu ikke lave 11 vinduer (som det jo sker her) der er et kopi af default formen, men oprette en særskilt form (File | New | Form). Du skal jo også huske at frigive de oprettet vinduer med Free() eller Release() metoden, altså FormArray[I].Free() når du traversere den aktuelle FormArray for at nedlægge objekterne.








Hej, jeg prøver at lave et program! (surprise)

Jeg har min default form ,og den vil jeg gerne have lavet 9 andre forme af, hvordan er det nu jeg gør det??

Er det noget ala Dim form as form, jeg skal jo på en måde have lavet 10 af dem??

F.eks:

for i = 0 to 10
dim form(i) as form
form(i).show
next i

PS, denne kode stump virker ikke, men det er noget i den stil jeg lige kunne tænke mig til...
Og så håber jeg du forstår hvad jeg mener!!

If you don't succeed, redefine success...


Jeg går som givet udfra det er i Delphi du ønsker at lave ovenstående? Du kunne eventuelt skrive således:

var
FormArray: array [0..10] of TMyForm;

procedure Something();
begin
for I:= low(FormArray) to high(FormArray) do
begin
FormArray[I] := TMyForm.Create(self);
FormArray[I].Caption := IntToStr(I);
FormArray[I].Show();
end;
end;

Problemet er selvsagt at du laver en række identiske vinduer (Forms) - altså med samme caption, placering m.m. Kort sagt du vil ikke umiddelbart opdage du har disse (derfor linien med Caption så du faktisk kan se de er unike vinduer).

Umiddelbart ville jeg nu ikke lave 11 vinduer (som det jo sker her) der er et kopi af default formen, men oprette en særskilt form (File | New | Form). Du skal jo også huske at frigive de oprettet vinduer med Free() eller Release() metoden, altså FormArray[I].Free() når du traversere den aktuelle FormArray for at nedlægge objekterne.




Ups så ikke det var Basic, sorry - men så blev du da så klog ;-)





Hej, jeg prøver at lave et program! (surprise)

Jeg har min default form ,og den vil jeg gerne have lavet 9 andre forme af, hvordan er det nu jeg gør det??

Er det noget ala Dim form as form, jeg skal jo på en måde have lavet 10 af dem??

F.eks:

for i = 0 to 10
dim form(i) as form
form(i).show
next i

PS, denne kode stump virker ikke, men det er noget i den stil jeg lige kunne tænke mig til...
Og så håber jeg du forstår hvad jeg mener!!

If you don't succeed, redefine success...


Jeg går som givet udfra det er i Delphi du ønsker at lave ovenstående? Du kunne eventuelt skrive således:

var
FormArray: array [0..10] of TMyForm;

procedure Something();
begin
for I:= low(FormArray) to high(FormArray) do
begin
FormArray[I] := TMyForm.Create(self);
FormArray[I].Caption := IntToStr(I);
FormArray[I].Show();
end;
end;

Problemet er selvsagt at du laver en række identiske vinduer (Forms) - altså med samme caption, placering m.m. Kort sagt du vil ikke umiddelbart opdage du har disse (derfor linien med Caption så du faktisk kan se de er unike vinduer).

Umiddelbart ville jeg nu ikke lave 11 vinduer (som det jo sker her) der er et kopi af default formen, men oprette en særskilt form (File | New | Form). Du skal jo også huske at frigive de oprettet vinduer med Free() eller Release() metoden, altså FormArray[I].Free() når du traversere den aktuelle FormArray for at nedlægge objekterne.




Ups så ikke det var Basic, sorry - men så blev du da så klog ;-)



så dan gør du i vb

Dim i As Longn 'bruges til arrayet
Dim Formz(1 To 10) As Form1 'erklære et array as lægge mærke til Form1
For i = 1 To 10 'almindlige forløke
Set Formz(i) = New Form1 ' sætter formz(i) som en ny form1
Formz(i).Caption = i ' ændre caption til nået tal i forløkken
Formz(i).Show ' viser formen
Next i


mvh.
Thomas Christensen



Hej, jeg prøver at lave et program! (surprise)

Jeg har min default form ,og den vil jeg gerne have lavet 9 andre forme af, hvordan er det nu jeg gør det??

Er det noget ala Dim form as form, jeg skal jo på en måde have lavet 10 af dem??

F.eks:

for i = 0 to 10
dim form(i) as form
form(i).show
next i

PS, denne kode stump virker ikke, men det er noget i den stil jeg lige kunne tænke mig til...
Og så håber jeg du forstår hvad jeg mener!!

If you don't succeed, redefine success...

JT

Sådan Gør du

Private Sub Form_Load()
Dim MultiForm As New Form1

If FormeIalt < 10 Then

FormeIalt = FormeIalt + 1
MultiForm.Caption = "Form1 " & FormeIalt
MultiForm.Show

End If

End Sub
' ---------------Puttes I et Modul ------------------------
Public FormeIalt As Integer



t