Toon posts:

[VB.NET] Loop voor alle timers in een form ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Normaal kan je in VB.NET een loop maken waarmee je bijvoorbeeld alle Button's binnen een formulier overloopt.

iets als dit :
code:
1
2
3
4
5
        Dim cntObject As Control

        For Each cntObject In me.controls
            MsgBox(cntObject.Name)
        Next


maar deze manier heeft geen timers weer die je op je formulier gezet hebt ...
en dat heb ik natuurlijk nodig. Waar er iemand waar de verzameling van alle timers bijgehouden word ?

Verwijderd

Als je nou eens begint met
1) wat je wilt bereiken
2) waarom je dat wilt bereiken
wellicht krijg je dan een antwoord, want het doorsjouwen van een objectlist van alle controls lijkt me niet echt nuttig en timers zitten niet meer 'op een form', maar zijn losse objects waar je dmv delegates een abonnement op neemt. Zie documentatie System.Timers namespace

Verwijderd

Topicstarter
1. Ik wil bereiken dat ik een loop kan maken door alle timer (zoals hierboven staat)
2. Waarom ik dat wil bereiken => om een link te kunnen leggen tussen chkTest en tmrTest en het is voor PowerLCD

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Verwijderd schreef op 29 augustus 2002 @ 13:22:
1. Ik wil bereiken dat ik een loop kan maken door alle timer (zoals hierboven staat)
2. Waarom ik dat wil bereiken => om een link te kunnen leggen tussen chkTest en tmrTest en het is voor PowerLCD


Lekker duidelijk hoor.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ok sluit het dan maar ...

Vraag me af wat niet duidelijk genoeg is.

Ik wil dus op dezelfde manier loop'en door timers als dat ik dat kan met buttons.
Het is bijvoorbeeld heel makkelijk om ALLE buttons in 1 formulier met een lusje op .enabled = false te zetten

Maar aangezien op de formulieren geen timers meer aanwezig zijn in VB.NET, kan ik niet loop'en door timers en kan ik ze dus niet allemaal aan of uitdoen met 1 lusje.

alle namen intypen en uitzetten is niet echt een optie, als ik er dan later 1 bijzet moet ik daar ook weer een regeltje bijdoen.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Verwijderd schreef op 29 augustus 2002 @ 13:36:
Ok sluit het dan maar ...

Vraag me af wat niet duidelijk genoeg is.

Ik wil dus op dezelfde manier loop'en door timers als dat ik dat kan met buttons.
Het is bijvoorbeeld heel makkelijk om ALLE buttons in 1 formulier met een lusje op .enabled = false te zetten

Maar aangezien op de formulieren geen timers meer aanwezig zijn in VB.NET, kan ik niet loop'en door timers en kan ik ze dus niet allemaal aan of uitdoen met 1 lusje.

alle namen intypen en uitzetten is niet echt een optie, als ik er dan later 1 bijzet moet ik daar ook weer een regeltje bijdoen.
Ze zitten dan niet meer in een collection op het form maar dat houdt je toch niet tegen om zelf een collection te maken met al je timers? of zie ik dat nou zo verkeerd

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Timers creeer je, zijn dus objects, leven dus ergens. Lees dan eens de docs in System.Timers!!!!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 01-09 13:54

Crazy D

I think we should take a look.

Array (of collectie) van timers?

Overigens kun je je afvragen of je wel zoveel timers wilt hebben dat het teveel werk is om de namen in te typen. Mij is altijd verteld om zo zuinig mogelijk met die dingen om te gaan...

Exact expert nodig?


Verwijderd

Topicstarter
Verwijderd schreef op 29 augustus 2002 @ 14:05:
Timers creeer je, zijn dus objects, leven dus ergens. Lees dan eens de docs in System.Timers!!!!
Heb ze al 2 keer gelezen
wat heb ik jou eigenlijk ooit misdaan
rwb schreef op 29 augustus 2002 @ 14:03:

Ze zitten dan niet meer in een collection op het form maar dat houdt je toch niet tegen om zelf een collection te maken met al je timers? of zie ik dat nou zo verkeerd
hmm ... ik zie het blijkbaar wat anders

Stel je hebt een formulier met 5 timers
en een knop waarmee je alle timers aan en uit kan zetten

wat later zet ik een 6de timer op het formulier en compile onmiddelijk
dan zou ik ook willen dat ik met een druk op de knop een functie uitvoer die nu gewoon alle 6 de timers uitzet. Zonder dat ik ergens de naam van die timer in moet typen in de code.

Verwijderd

Topicstarter
Crazy_D schreef op 29 augustus 2002 @ 14:10:
Array (of collectie) van timers?

Overigens kun je je afvragen of je wel zoveel timers wilt hebben dat het teveel werk is om de namen in te typen. Mij is altijd verteld om zo zuinig mogelijk met die dingen om te gaan...
Ik heb minstens 20 tot 30 timers nodig, dat weet ik nu al en daar zijn gen omwegen voor. Het is voor PowerLCD en alle info moet op tijd geupdate worden en dan moet nog eens per categorie een timer komen voor de output naar het LCD...

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Crazy_D schreef op 29 augustus 2002 @ 14:10:
Array (of collectie) van timers?

Overigens kun je je afvragen of je wel zoveel timers wilt hebben dat het teveel werk is om de namen in te typen. Mij is altijd verteld om zo zuinig mogelijk met die dingen om te gaan...


Ik geloof zelfs dat het aantal (actieve) timers dat je tegelijk kan gebruiken beperkt wordt door het OS....

https://fgheysels.github.io/


Verwijderd

Topicstarter
Nog even voor de duidelijkheid heb ik mijn idee eens gemaakt in VB6.
Daar gaat het dus wel nog op deze manier :
code:
1
2
3
4
5
6
7
8
Private Sub Command1_Click()
    Dim test As Control
    For Each test In Form1.Controls
        If TypeName(test) = "Timer" Then
            MsgBox (test.Name)
        End If
    Next
End Sub


Dan krijg ik dus mooi de namen van de timers in het formulier Form1.
Als er nu 10 of 100 staan ik krijg alle namen in msgbox'en.

En wat ik zoek is dus hetzelfde voor VB.NET

Verwijderd

VB.NET is *NIET* het zeldfe als VB..dus het werkt ook anders nou kan je heel nukkig gaan doen van ik wil het toch zo, of je past je aan op de nieuwe maner...

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 31-08 15:46

mulder

ik spuug op het trottoir

foreach(Timer tmr in ??Controls) zou toch moeten kunnen? Wat zegt MSDN over foreach in VB?

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Ik ben ook niet achterlijk en weet dat het NIET MEER KAN op die manier die ik ken, ik vraag gewoon een manier waarop het WEL kan en als het niet kan zeg dan "Het kan gewoon niet meer"

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 31-08 15:46

mulder

ik spuug op het trottoir

- wat heb je zelf in .Net gedaan, er worden voorzetjes gegeven
- drop the attitude

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
aangezien ik nergens kan vinden waar moet kijken om alle timers in een formulier te zien, kan ik niet echt veel testen

Ik heb het dus geprobeert zoals in de eerst post, kwam tot de conclusie dat je geen timers kreeg bij het overlopen van alle controls in het formulier. Dan ben ik op zoek gegaan waar de timers wel te vinden waren. In de help, op google... conclusie ik vond het nie en nee niet na 10 minuten, maar ben er ongeveer 2-3 uur op aan het zoeken vandaag.

Dus ik wou weten of hier iemand kon vertellen waar de colletie kon vinden. Uit de reacties hierboven weet ik het dus nog niet, maar ik begin te denken dat je echt verplicht bent om zelf een collectie/array aan temaken en dus om handmatig de namen bij te voegen als je een nieuwe timer toevoegd

Verwijderd

Waarom heb je eigenlijk zoveel timers nodig? Is dat niet te combineren of op een andere manier te doen?

Verwijderd

ik gok dat ie de timers gebruikt als tegenhanger van threads?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:01

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op 29 augustus 2002 @ 14:11:
hmm ... ik zie het blijkbaar wat anders

Stel je hebt een formulier met 5 timers
en een knop waarmee je alle timers aan en uit kan zetten

wat later zet ik een 6de timer op het formulier en compile onmiddelijk
dan zou ik ook willen dat ik met een druk op de knop een functie uitvoer die nu gewoon alle 6 de timers uitzet. Zonder dat ik ergens de naam van die timer in moet typen in de code.


allereerst wil ik zeggen dat ik geen verstand heb van vb.NET, maar dat heb ik ook niet nodig aangezien ik alleen even probeer duidelijk te maken wat anderen ook zeggen, maar dan op een andere manier.

1) Timers zitten niet meer op een Form! Probeer ze er dus ook niet op te zetten
2) Hou zelf een collectie bij met alle timers erin
3) Bij toevoegen van een timer voeg je m toe aan je eigen collectie (en dus niet op de form, want dat kan immers niet)
4) Bij druk op de knop doorloop je je eigen timer collectie, en dus niet alle controls op je form

zo moeilijk moet dat toch niet zijn :?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
.oisyn schreef op 29 augustus 2002 @ 19:09:
Eindelijk iemand die het duidelijk uitlegt ...
Bedankt .oisyn !
Nu begrijp ik tenminste hoe het idee ahcter .NET over timers in elkaar zit en kan ik het dus verder wel uitwerken.
Pagina: 1