Archief - [PROG]visual basic Visual basic vraag(waarschijnlijk simpel)

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Dj RVR

Legacy Member
ik vroeg mij af of je bij visuabasic zodanig kon programeren, zodat je door 1 keer iets te programeren, je dit kan toepassen op meerdere forms...

Simpel voorbeeld, mijn programma zou normaal gezien door te klikken in het menu, gegevens moeten wissen uit tekst vakken. Ik heb in dat ene programma 9 forms, en op bijna elk form zou dit moeten toegepast worden. nu is het dom om 9 keer dezelfde code te moeten tippen, dus ik dacht wel dat er een andere manier was, maar weet zelf ni hoe. heb het al eens geprobeerd met een module maar hielp niet. (het is door een keuze te maken in een menu. vb:

private sub klantenfiche_klick()
productefiche.visible = true
klantefiche.visible = False
end sub

nu als ik dit 9 keer moet tippen in elke form heb ik veel te veel tip en print werk weet iemand hoe ik dit in één keer kan laten werken op al men forms???)

Please help me zeg liefst met wat ik het zou moeten doen en hoe de rest vind ik wel

bedankt op voorhand!!!

Dj RVR

Legacy Member
moet ik dat in een module plaatsen dan?
want heb het al eens in een module gedaan
alles hetzelfe gehouden alleen private door public vervangen, maar deed nog steeds niet...(moet het in een from blijven staan, maar dan maar in 1 form of moet het in een module is dus de vraag :p )

InFerNo

Legacy Member
wacht ne keer e
ik heb het zo simpel mogelijk gemaakt
:P

dit is voor VB6 SP6

mijn module:
Code:
Public publiekevar As Integer
Public Sub procedurenaam(ByVal invoer As Integer)
invoer = publiekevar + 1
publiekevar = invoer

'met de invoer variabele (ByVal) steekt ge waardes IN de procedure _
De uitvoer gebeurt door een publieke var, maar als die apart uitgevoerd _
moet zijn moet ge een ByRef gebruike (ByRef uitvoer as integer er nog achter) _
gescheiden met een ',' ge kunt zoveel byreffe en valle als ge wilt _
maar das te zot e :p
End Sub

mijn form1:
Code:
Private Sub Form_Load()
publiekevar = 3
procedurenaam 1 '1 is hier de invoer in de procedure
Label1.Caption = publiekevar
End Sub
dus gewoon alles in die module als public declareren
en probeer alle specifieke vars voor uw programma in 1 module te steke en alles wa herbruikbaar is in een ander programma in een andere module

als iets enkel in die module word gebruikt en ni ergens anders in het programma (dus een procedure die een geven berekent BINNEN de module) dan mag deze ook private :)

die label moet trouwens 4 tonen :P
als ge een module aanmaakt en op die eerste form 1 label zet en ge kopieert deze code klakkeloos, dan moet er een 4 op uw form staan als ge ze runt


edit:
specifiek voor uw probleem, die textboxes leegmake
da gaat helaas ni anders dan wanneer ge uw menu aanklikt om elke textbox apart leeg te maken (althans in VB6 was dit zo) want op school moeste we ze telkens leegmaken
en daarnaast om conflicte te vermijde unloadde ik altijd ALLE andere forms wanneer ik een menu aanklikte (en die menu clicks kunne groot worden zenne amai)

nog een edit:
ik ben mezelf aan't tegenspreke (half)
ge kunt zoiets idd ni automatisere door 1 keer te doen in een module maar
ik unloadde dus NIET alle andere forms, maar elke keer ik een andere form aanklikte unloadde automatisch de vorige form (door in de formnaam_deactivate() unload formnaam te zette)

Voor het geval ik dezelfde form aanklikte in het menu moest deze bij mij gereset worden en deed ik bijvoorbeeld wel telkens:
Code:
frmBehandelingen.txtBehandelingsnaam.Text = vbNullChar
frmBehandelingen.txtPrijs.Text = vbNullChar
frmBehandelingen.txtBeschrijving.Text = vbNullChar
frmBehandelingen.txtBehandelingsnaam.Enabled = True
frmBehandelingen.txtPrijs.Enabled = True
frmBehandelingen.txtBeschrijving.Enabled = True
frmBehandelingen.cmbUren.Enabled = True
frmBehandelingen.cmbMinuten.Enabled = True
frmBehandelingen.cmbUren.Clear
frmBehandelingen.cmbMinuten.Clear

ik werk trouwens met MDI forms (een Parent form met childforms erin)

dus als ge uw vorige forms wilt resette elke keer dage op een menu klikte kunde die beter altijd gewoon unloade en terug loade als ge ze nodig hebt
ik zie geen reden waarom ze gelade moete blijve want de gegevens moete toch weg...


nog een edit:
als ge hulp nodig hebt dan PM'd ge me maar en dan geef ik m'n GTalk gmail wel :p (of msn als da perse moet :sop: )

Dj RVR

Legacy Member
!nFy zei:
specifiek voor uw probleem, die textboxes leegmake
da gaat helaas ni anders dan wanneer ge uw menu aanklikt om elke textbox apart leeg te maken (althans in VB6 was dit zo) want op school moeste we ze telkens leegmaken
en daarnaast om conflicte te vermijde unloadde ik altijd ALLE andere forms wanneer ik een menu aanklikte (en die menu clicks kunne groot worden zenne amai)

pakt van wel als ik het dee zoals ik nu dee dan was de code van 1 form al bijna 90 lijnen zuiver van al die forms up te loaden en terug de doen verdwijnen plus die tekst leeg te maken=s

Ma in ieder geval ge ze al een grotere hulp geweest dan men leerkracht stoeme trut me diplom kent der zelf niks van:tongue:

En da msn adres zou wel handig zen anders zelle
heb nog wel een paar vragen waar dak niks meer van snap =p


en zo ni zoveeeel merci al kan weer effe verder =p

InFerNo

Legacy Member
tja, als ge een form unload en terug load dan zijn die vakjes ook leeg :P
het is gewoon wanneer ge dezelfde form NOG eens aanklikt in het menu dage die moet leegmake e

als dit niet voorvalt: je kan bijvoorbeeld wanneer een menu is aangeklikt deze grijs make en wanneer de procedure voorbij is en alles weer leeg is terug aanklikbaar make
publieke vars (die ge in de module publiek maakt) moet ge, indien nodig, wél nog telkens leegmaken bij het laden van een form

ge kunt kieze om deze bij de menu click te doen of bij het effectief laden van de form

ook nog een kleine tip:
we hadde soms probleme bij het programmere (en nu ik er aan denk :P) kunde als ge dinge wilt doen wanneer uw form wordt geladen die dingen beter doen bij een form_activate dan bij een form_load

ik weet ni meer exact waarom maar het had zijn reden wel, en ik maak er een gewoonte van om telkens een activate te namen ipv een load (buiten in het voorbeeld :P da moest rap rap zijn ;) )

FEW

Legacy Member
:offtopic:
@dj rvr, uw profiel is compleet achterlijk, waarom zou ge willen dat mensen ernaar kijken?

(sorry, het moest er gewoon uit)

Dj RVR

Legacy Member
FEW zei:
:offtopic:
@dj rvr, uw profiel is compleet achterlijk, waarom zou ge willen dat mensen ernaar kijken?

(sorry, het moest er gewoon uit)

heel simpel ni :lol:
godver ze hebbe het weeral gedaan:p jah was is een keer op tforum hier gekomen op de laptops int tschool en was het vergeten af te zetten toen hadden de mannen van men klas da gedaan ma wist ni da het nu terug was lol

Dj RVR

Legacy Member
FEW zei:
onder wie zijn naam?

maakt da uit?!?

Mijn post was hier om een vraag op te lossen ni om naar iedereen zen profiel te kijken hoe dom het al dan niet ook mogen zijn

R3Deye

Legacy Member
Dj RVR,

Zijn uw 9 Forms identiek? Ik bedoel ermee hebben ze dezelfde hoeveelheid textboxen met dezelfde namen?
Zoja, zet dit in een module en hernoem 'Text1' tot 'Text4' met uw eigen textbox namen.
Code:
Option Explicit
Public Sub ClearTextBoxes(Frm As Form)
    Frm.Text1.Text = ""
    Frm.Text2.Text = ""
    Frm.Text3.Text = ""
    Frm.Text4.Text = ""
    ' etc ....
End Sub

En in elke Form (van 1 tot 9) zet je ClearTextBoxes Me in je event waar je de textboxen wilt leeg maken. bv;
Code:
Private Sub Command1_Click()
    ClearTextBoxes Me
End Sub

Zo zal je telkens de textboxen leegmaken die op dezelfde Form staan als waarvan je deze sub oproept.

Dus als je vanuit Form1 ClearTextBoxes Me oproept worden de textboxen op Form1 leeg gemaakt, doe je dit vanuit Form2 dan worden de textboxen op Form2 leeg gemaakt, etc...

Als de textboxes op uw 9 Forms niet identiek zijn, ja, dan is dit niet van toepassing, maar dan is er wel een andere oplossing, maar hier ga ik met wachten totdat ik zeker weet ofdat ze identiek zijn of niet.

InFerNo

Legacy Member
ik wil wel wete hoe ge da doet :)
't zou iets heel nuttig zijn :)

ik moet ze altijd apart clearen (als dezelfde form opnieuw wordt opgeroepen)
als een form nieuw wordt opgeroepen dan zijn ze zowiezo clear :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan