form sluiten na een bepaalde tijd

Status
Niet open voor verdere reacties.

Abel Visscher

Gebruiker
Lid geworden
28 mei 2007
Berichten
171
Hoi,

Ik wil graag het volgende berijken. Als ik in een form op een knop druk moet er een andere form worden geopend die ten alle tijde op de voorgrond is en zich in de linkerbovenhoek van het scherm bevind. Maar het is ook de bedoeling dat deze form na +/- 45 sec weer sluit. Deze form heeft een tekstvak met tekst (geheugensteuntje) dus je moet wel in de eerste form kunnen werken, die een volledig scherm bekleed.
Ik hoop dat ik duidelijk genoeg ben geweest. Iemand een suggestie?
Ik werk met vb6.
 
Hoi,

Ik wil graag het volgende berijken. Als ik in een form op een knop druk moet er een andere form worden geopend die ten alle tijde op de voorgrond is en zich in de linkerbovenhoek van het scherm bevind. Maar het is ook de bedoeling dat deze form na +/- 45 sec weer sluit. Deze form heeft een tekstvak met tekst (geheugensteuntje) dus je moet wel in de eerste form kunnen werken, die een volledig scherm bekleed.
Ik hoop dat ik duidelijk genoeg ben geweest. Iemand een suggestie?
Ik werk met vb6.

je maakt een timer. interval zet je de tijd ie je wil. In de timer.tick
zet je Application.exit en klaar
 
Maak een form lookalike op je form die na 45 seconden sluit. Op die manier is die altijd op de "voorgrond" en kan je altijd in het "onderliggende" form verder werken. Als je een form opent die altijd op de voorgrond moet zijn dan heb je het over een dialoog scherm en dan ben je de controle kwijt over het form eronder. Pas als het dialoog scherm verdwenen is kan je verder. Dat lijkt me niet wat je wilt dus ik zou de boel faken met een form lookalike. Je moet overigens wel je timer event programmeren zoals hierboven staat. Of je gelijk de applicatie wil sluiten mag jij zeggen.

Succes!
 
Laatst bewerkt:
Voe toe aan je form:
Je zet het neer bij het form die moet sluiten na 45 seconden

Timer1
Label1
Label2

Bij het laden van het form zet je neer:

Code:
Label1.Text = Second(Now)

Bij de timer_tick event zet je neer de volgende code:

Code:
If label1.Text + 1 then
Label2.text += 1
end if

If label2.Text = 45 then
me.close
end if

Simpel en eenvoedig

En ik heb de code van 2005
Als je dingen tegen komt die je vb6 niet kennen moet je het effen zeggen hoor;)
Ik kan je dan helpen de juiste woord voor die foute te vinden
 
Laatst bewerkt:
Met deze code kan je een venster bovenaan houden en terug 'normaal' maken, zodat het weer achter een ander venster kan gaan. Plaats de code in een module (bas-bestand), dan kan je ze vanuit elk form aanroepen.
Code:
Global Const HWND_TOPMOST = -1
Global Const hWnd_NOTOPMOST = -2
Global Const SWP_NOMOVE = &H2
Global Const SWP_NOSIZE = &H1
Global Const TOPMOST_FLAGS = SWP_NOMOVE Or SWP_NOSIZE

Declare Function SetWindowPos Lib "user32" ( _
  ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, y, ByVal cX As Long, ByVal cY As Long, ByVal wFlags As Long) As Long

Public Sub ZetVensterNormaal(Handle As Long)
  '--------------------------------------------------------------
  ' Een venster "normaal" maken
  '--------------------------------------------------------------
  SetWindowPos Handle, hWnd_NOTOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS
End Sub

Public Sub ZetVensterVooraan(Handle As Long)
  '--------------------------------------------------------------
  ' Een venster "on top" plaatsen
  '--------------------------------------------------------------
  SetWindowPos Handle, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS
End Sub

Je roept de subs aan met als parameter de form zijn hWnd (handle)
voorbeeld:
Code:
ZetVensterVooraan(Me.hWnd)
plaatst het huidige form op de voorgrond. Wil je een ander form op de voorgrond zetten, dan gebruik je de naam van dat form in plaats van Me. Vanuit vb Form1 wordt dat dan:
Code:
ZetVensterVooraan(Form2.hWnd)
Om het venster terug normaal te maken gebruik je dezelfde methode, maar dan met een aanroep van ZetVensterNormaal.
voorbeeld:
Code:
ZetVensterNormaal(Me.hWnd)
Of als je een ander form terug normaal wil maken vanuit vb Form1:
Code:
ZetVensterNormaal(Form2.hWnd)

Het form dat je op de voorgrond plaatst mag je in GEEN geval modaal openen, want dan kan je niet verder werken in je eerste form...
Je doet dus:
Code:
Form2.Show vbModeless
ZetVensterVooraan Form2.hWnd
De vbModeless mag je weglaten, maar dus in geen geval vbModal gebruiken!
Bij het sluiten van het form doe je:
Code:
ZetVensterNormaal Form2.hWnd
Unload Form2
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan