[VB6] Na form_load iets aanroepen

Pagina: 1
Acties:

  • Jeldert
  • Registratie: Juni 2001
  • Niet online

Jeldert

Rozijntjes

Topicstarter
Hallo, de search is stuk, dus sorry als het al is geweest.

Ik heb in VB6 het spel Yahtzee gemaakt.
Zodra je opstart vraagt hij met hoeveel speler je wilt spelen (radio buttons).
Hierna start het hoofdformulier, maar ik wil dat hij pas om de spelernaam vraagt nadat hij klaar is met laden van het formuler (dus zichtbaar is).

Nu heb ik dit zo opgelost, maar vindt het nogal een vuil trucje. Is er misschien een betere oplossing?

Visual Basic 6:
1
2
3
4
5
6
7
8
Private Sub Form_Paint()

    If NieuwSpel = True Then
        NieuwSpel = False
        Call mnuAantalSpelers_Click(AantalSpelers)
    End If
    
End Sub

Juist


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 23:39

mulder

ik spuug op het trottoir

Misschien Form_Activate of een van de andere goed gedocumenteerde events. Dat met die boolean vind ik zo slecht niet hoor.

oogjes open, snaveltjes dicht


  • Tukk
  • Registratie: Januari 2002
  • Laatst online: 26-05 16:45

Tukk

De α-man met het ẞ-brein

Volgens mij zoek je


Visual Basic:
1
2
Private Sub Form_Activate()
End sub


Als ik een tip mag geven, koop een goed VB boek. Daar staan dit soort dingen en de volgorden van de events goed beschreven.

Q: How many geeks does it take to ruin a joke? A: You mean nerd, not geek. And not joke, but riddle. Proceed.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je kunt in de form load me.show aanroepen en daarna je code uitvoeren? Of mis ik iets?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Markieman
  • Registratie: December 2001
  • Laatst online: 15-05 12:16
Misschien:

Visual Basic 6:
1
2
3
4
5
6
7
8
9
Private Sub Form_Load()

'wat code

Me.Show

Call mnuAantalSpelers_Click(AantalSpelers)
    
End Sub

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.


  • Jeldert
  • Registratie: Juni 2001
  • Niet online

Jeldert

Rozijntjes

Topicstarter
Tukk schreef op 07 april 2004 @ 11:49:
Volgens mij zoek je


Visual Basic:
1
2
Private Sub Form_Activate()
End sub


Als ik een tip mag geven, koop een goed VB boek. Daar staan dit soort dingen en de volgorden van de events goed beschreven.
Probleem hiermee is dat als je buiten je scherm klikt, en daarna je programma weer actief maakt dat hij dus meteen een nieuw spel opstart (of je moet weer met die boolean gaan werken.

Me.Show zal ik vanavond eens proberen, heb hier geen VB6 bij de hand :)

[ Voor 8% gewijzigd door Jeldert op 07-04-2004 12:03 ]

Juist


Verwijderd

Volgens mij zet je in je 'sub main' (in een module) de volgorde van form tonen en menu aanroepen.

Sub Main()

End Sub

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
Denk niet dattie een sub main heeft .....

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Markieman
  • Registratie: December 2001
  • Laatst online: 15-05 12:16
farlane schreef op 07 april 2004 @ 13:12:
Denk niet dattie een sub main heeft .....
Zou die wel moeten hebben...

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Markieman schreef op 07 april 2004 @ 13:13:
[...]

Zou die wel moeten hebben...
Waarom? je hebt OF een startup FORM nodig, OF een sub main.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Jeldert schreef op 07 april 2004 @ 11:47:
Hallo, de search is stuk, dus sorry als het al is geweest.

Ik heb in VB6 het spel Yahtzee gemaakt.
Zodra je opstart vraagt hij met hoeveel speler je wilt spelen (radio buttons).
Hierna start het hoofdformulier, maar ik wil dat hij pas om de spelernaam vraagt nadat hij klaar is met laden van het formuler (dus zichtbaar is).

Nu heb ik dit zo opgelost, maar vindt het nogal een vuil trucje. Is er misschien een betere oplossing?
[/code]
Hij vraagt toch of er een andere oplossing is?
Nou, die bieden we aan.

In je sub main geef je de startup volgorde weer, dan heb je daarna ook niet dat wanneer je buiten het form klikt (als je form_activate gebruikt) het spel opnieuw opstart.

Bijvoorbeeld:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Main()
    
    Dim fUsernameAs New frmUsername
    fUsername.Show vbModal

    If Not fUsername.OK Then
        'doe iets
        End
    End If
    Unload fUsername

    'start je andere formulier

End Sub

  • Markieman
  • Registratie: December 2001
  • Laatst online: 15-05 12:16
RobIII schreef op 07 april 2004 @ 13:29:
[...]

Waarom? je hebt OF een startup FORM nodig, OF een sub main.
Met een Sub Main creeer je een beheersbaardere situatie. De problemen die de TS heeft worden door middel van het voorbeeld van 4Advanced opgelost.

Ook ben je niet meer afhankelijk van het startup form. Het is ook raar dat in VB deze mogelijkheid geboden wordt. Een form is bedoeld voor interactie met de gebruiker, niet voor het opstarten (inc initialisaties) van de applicatie.

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Markieman schreef op 07 april 2004 @ 14:03:
[...]


Met een Sub Main creeer je een beheersbaardere situatie. De problemen die de TS heeft worden door middel van het voorbeeld van 4Advanced opgelost.

Ook ben je niet meer afhankelijk van het startup form. Het is ook raar dat in VB deze mogelijkheid geboden wordt. Een form is bedoeld voor interactie met de gebruiker, niet voor het opstarten (inc initialisaties) van de applicatie.
Helemaal mee eens, dat was mijn punt ook niet. Als hij dan toch al als startup dinges het form heeft staan, kan hij het het makkelijkst oplossen met me.show in de form load... Maar daarmee zeg ik niet dat een Sub Main niet netter is (ik gebruik deze zelf sowieso altijd)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Jeldert
  • Registratie: Juni 2001
  • Niet online

Jeldert

Rozijntjes

Topicstarter
Oke, bedankt!
Met een "Me.Show" in de Form_Load is het opgelost, maar is zal vanavond nog eens kijken naar die Sub Main, want die lijkt me nog netter.

Juist

Pagina: 1