Avatar billede dth Nybegynder
28. april 2001 - 13:01 Der er 12 kommentarer og
3 løsninger

Arrays mellem Forms

Jeg har et Array i Form2: navne_local = Array(\".....\"), som skal tages med over i Form1 som Navne = array(\".....\").

På form2 har jeg en trykknap: \"Command1\"

Jeg har prøvet alt, men kan overhovedet ikke få det til at funke.... HVAD SKAL JEG GØRE????

Avatar billede tzr Nybegynder
28. april 2001 - 13:15 #1
Jeg kunne forestille mig at du skal lave en property på Form1 der styrer navne_local

Derefter kan du fra Form2 få adgang til den property på Form1 ved at bruge Form1.<property navn>
Avatar billede wizzcat Nybegynder
28. april 2001 - 17:40 #2
Du kan ikke føre den over umiddelbart da de to forms er i forskellige namespaces. Men alle forms er i det globale namespace. Så opret et modul og skriv
global navne_local(bla bla), i den generelle del under definitions,  så vil det være tilgængeligt i alle forms.

Hvis begge forms er åbne samtidigt kan du hente fra den ene ved at adressere den anden. med Formname.varname(arrayentry, men arrayet dør med sin ejerform!!

Arbejde du i VBA? (access) for så er det lidt anderledes.

Til tzr: Du kan ikke lave en ny property på en form da en form er en component defineret i et classmodule. men du kan lave dit eget classmodule og nedarve fra en form og tilføje dine egne properties, men det ville være at gå over åen efter vand. og du ville have de sammen begrænsninger formene imellem! :)



Avatar billede dth Nybegynder
28. april 2001 - 17:58 #3
Til wizzcat

Jeg arbejder i VB6!!!
Avatar billede wizzcat Nybegynder
28. april 2001 - 18:43 #4
Ja men så kan du jo bare gå igang
Du tilføjer moduler fra menuen Projekt/add module
i den første section general / declarations
skriver du
Global Arrayname(<n>,<m>, <osv> ) As <Type>
så kan arrayet tilgåes fra hele din projekt og så behøver du ikke oprette en kopi.
Avatar billede dth Nybegynder
28. april 2001 - 18:52 #5
Til wizzcat:

Kan du ikke give mig et mere konkret eks??
Mit array skal bestå af op til 5 tekster fra Form2(Text1(Index)). Og så skal de føres over i form1 som \"Navne = array(text1(0), text1(1),....osv)

på forhånd tak!!
Avatar billede dth Nybegynder
28. april 2001 - 19:36 #6
Jeg tror næsten jeg har den, mit eneste problem i øjeblikket er at jeg ikke helt kan gennemtænke flg.:

array\'et skal tilpasses efter hvor mange af text1(index) felterne der er skrevet i.

Hvordan kan det evt. lige klares??

Dennis
Avatar billede pou_vad Nybegynder
28. april 2001 - 19:38 #7
Du kan ikke overførearrays i VB.
det eneste du kan gøre at at oprette array\'et globalt.

dette gøres ved at tilføje et modul til dit projekt.

tryk >Projekt>Add module

i det nye modul kan du så oprette dit array, og husk at skrive public foran.

public mit_array(50)

du kan så få adgang til dit array fra alle dine forms....
Avatar billede wizzcat Nybegynder
28. april 2001 - 19:51 #8
At tilpasse et array. tja du kan enten lave det så stort at du ved at du altid vil have plads nok. eller du kan starte med at definere det som
Global Array()
og så når du skal bruge det og ved hvor stort du vil have det så
Redim Array(f.eks 10) eller hvad du ønsker
Et array resettes ved redim med mindre du bruger kommandoen <Preserve> som i
ReDim Preserve X(10, 10, 15)
Hvis du formindsket et array forsvinder den information der ikke kan være der men ikke hvis du forstørrer.

Avatar billede dth Nybegynder
28. april 2001 - 19:51 #9
Til pou_vad

Problemet er bare at array\'ets længde afhænger af hvor mange Text1(Index)-felter der er udfyldt i Form2!! Ellers er det ok!!

Dennis
Avatar billede dth Nybegynder
28. april 2001 - 20:09 #10
Et andet spørgsmål, hvis jeg sætter Form2.Visible til False, kan jeg så ikke stadig hente data fra Text1(Index)?
Avatar billede pou_vad Nybegynder
28. april 2001 - 20:12 #11
så rører du bare en \"redim\" på dit array, og så skulle den være hjemme...
Avatar billede wizzcat Nybegynder
28. april 2001 - 20:46 #12
jo du kan
Avatar billede dth Nybegynder
28. april 2001 - 20:58 #13
Er der ikke også en funktion, hvor jeg kan fjerne alle kontrolarray\'s i form1, har både prøvet:

unload form1
load form1,

form1.cls
og
form1.refresh

Dennis
Avatar billede wizzcat Nybegynder
29. april 2001 - 00:19 #14
At fjerne alle kontrolarrays vil fjerne de kontroller som er arrays.
Det kan jeg ikke forstille mig man bruger særligt ofte. Er det mon det du mener?
Men det er helt standard:
Unload object(index%)
så har du et kontrol array af feks textbokse og de hedder text1() så kan du fjerne dem alle sammen med
for index= text1.count-1 to 0 step -1
unload text1(index)
next
så er de væk.
HUSK man kan kun fjerne de kontrols og kontrolarrys i run-tiem som man har oprettet i run-time, altså med den tilsvarene load kommando.
wizzcat
Avatar billede dth Nybegynder
29. april 2001 - 15:59 #15
Jubiiiiii jeg har fundet ud af det.... Tak til jer allesammen..... I får alle point!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester