Hej. Hej hittade detta: Hej, vill du ha ett MDI där du har en meny med "nytt fönster" där du klickar o öppnar ett nytt fönster? Nja, det som är beskrivet ovan, den lilla kodsnutten som finns där, den fungerar på så sätt jag vill ha det, d.v.s. att den skapar en ny instans av en vist from så man kan ha flera fönster öppna av samma form. Fast det kanske din kodsnutt också gör? Jo, den öppnar fler fönster av form1. Ja, det fungerar ju på samma sätt som den koden jag postade själv. Nu förstår jag inte hur du menar med att "komma åt" ? Jag har en listbox med ett antal filer, d.v.s. sökvägen till filerna. Jahaa, ok. http://www.pellesoft.nu/login/tips/t_view4.asp?tid=635Form array
Jag håller på med att göra ett eget interface för Hi-tech picc c.
I detta ska jag ha en editor för textfiler bland annat.
Det är MDI form jag använder.
Jag har nu gjort så när jag klickar på en fil i en lista så öppnas ett nytt form där man kan redigera filen i en richtextbox. Men hur gör jag för att kunna redigera flera samtidigt?
Kan jag göra en array av detta MDI child fönster jag öppnar så jag kan öppna flera sådana?
Hoppas ni förstår vad jag menar.
//JohanSv: Form array
I din VB 6 mapp ligger en mapp Sample, i den finns en mapp MDI
där ligger ett utmärkt exempel på detta.
Sök efter Mdinote.vbp och kör det exemplet.
När du trycker New där får du vad du söker.
/SvenSv: Form array
<code>
Public Instance() As frmFileEdit
Dim i As Long
ReDim Instance(0)
ReDim Preserve Instance(UBound(Instance()) + 1) As frmFileEdit
Set Instance(UBound(Instance)) = New frmFileEdit
i = UBound(Instance)
Instance(i).Show
</code>
När jag skapar ett nytt "editor" fönster för en fil så sätter jag Instance(i).caption till filnamnet. Om jag öppnar samma fil igen genom att dubbelklicka på fillistan så öppnas ett till fönster med samma fil öppen, och det vill jag ej.
Jag försökte då loopa igenom alla öppna fönster för att gemföra *.caption på varje form med filen jag skulle öppna för att se om den redan var öppen, men jag fick inte det att fungera.
UBound(Instance) är alltid 1, oavsett hur många form man har öppna. Hur kommer man åt öppna fönster?
//JohanSv: Form array
<code>
dim Form as new form1
load form
form.visible=true
</code>
detta öppnar ett till nytt fönster.
Jag kanske förstod dig fel?Sv: Form array
Sv: Form array
allt som ligger på form1, alla kontroller o så följer med till nästa form.
skapa ett nytt projekt o lägg till en form2 med en richtextbox på.
lägg till en filelist på form1
i form1:
<code>
private sub file1_click
dim form as new form2
form.visible=true
form.richtextbox1.loadfile file1.filename
end sub
</code>
nu kan du klicka upp flera fönster med olika innehåll i textboxarna.Sv: Form array
Frågan är bara hur jag ska kunna se hur många instanser som är öppna och kunna komma åt var och en efteråt?Sv: Form array
Du får ju massa fönster som du klickar på. antalet fönster kan du lägga en räknare på varje gång ett sådant skapas o varje gång ett sådant stängs så blir det minus 1.
/BSv: Form array
När jag dubbelklickar på en fil så öppnas ett nytt form som då skapas på ovanämda sätt ett form med filens innehåll.
När jag sedan dubbelklickar på samma fil som redan är öppen, så ska inte ett till fönster öppnas, utan det fönster som då redan är öppet med den filen, ska visas.
//JohanSv: Form array
Du kan tex spara commondialog1.filename en listbox
sen när du klickar på file1 så kollar den i listboxen...
stänger du ett fönster så tar du bort den ur listboxen.
sen skulle jag tro att nån här kommer ge dig kod som hämtar nått id för varje nytt fönster men det har jag ingen koll på nu.:)
Jag fnular på det tills jag kommer på nån bra ide eller tills nån annan löst det.
/BSv: Form array
kolla detta tips som har med fönster o göra.