Pagina 1 van 1

C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 15:58
door Loeri
Ik ben bezig met een programma te maken imv de Telemeter maar zit even vast :P

Ik heb deze code:

Code: Selecteer alles

        private void CheckDag(DateTime dag)
        {
            switch (dag.DayOfWeek)
            {
                case DayOfWeek.Monday:
                    CheckUren(DateTime.Now, "maandag");
                    break;
                case DayOfWeek.Tuesday:
                    CheckUren(DateTime.Now, "dinsdag");
                    break;
                case DayOfWeek.Wednesday:
                    CheckUren(DateTime.Now, "woensdag");
                    break;
                case DayOfWeek.Thursday:
                    CheckUren(DateTime.Now, "donderdag");
                    break;
                case DayOfWeek.Friday:
                    CheckUren(DateTime.Now, "vrijdag");
                    break;
                case DayOfWeek.Saturday:
                    CheckUren(DateTime.Now, "zaterdag");
                    break;
                case DayOfWeek.Sunday:
                    CheckUren(DateTime.Now, "zondag");
                    break;
            }
        }

        private void timer2_Tick(object sender, EventArgs e)
        {
            DateTime dag = DateTime.Now;
            timer2.Interval = 1000;
            CheckDag(dag);
        }
Maar blijkt niet elke 1000ms opnieuw te checken, iemand een idee wat ik fout doe?

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 16:05
door ubremoved_539
Hierbij een link naar MSDN.

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 16:16
door elmariachi2920
timer2.interval vroeger zetten
nu zet je deze waarde pas als timer2_Tick wordt getriggerd
is er geen "page load" of iets dergelijks?

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 16:22
door Loeri
elmariachi2920 schreef:timer2.interval vroeger zetten
nu zet je deze waarde pas als timer2_Tick wordt getriggerd
is er geen "page load" of iets dergelijks?
Sorry ik ben nog maar een beginner in C# :p

Wat bedoel je met "timer2.interval vroeger zetten" ?
En wat is een "page load"?

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 16:26
door elmariachi2920
ik dacht dat je er al iets meer van wist
mijn excuses

Code: Selecteer alles

        private void timer2_Tick(object sender, EventArgs e)
        {
            DateTime dag = DateTime.Now;
            timer2.Interval = 1000;
            CheckDag(dag);
        }
hierboven staat

Code: Selecteer alles

timer2.interval=1000;
heb je ergens het volgende staan?

Code: Selecteer alles

timer2.start();
je kan best

Code: Selecteer alles

timer2.interval=1000;
voor

Code: Selecteer alles

timer2.start();
zetten

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 16:31
door Loeri
Doet het ook niet..
Weird ik heb een andere timer die zonder die start werkt :-(

Code: Selecteer alles

private void timer1_Tick(object sender, EventArgs e)
        {            
            timer1.Interval = 1000;
            label1.Text = DateTime.Now.ToLongTimeString();            
        }

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 17:09
door ubremoved_539
Staat hij enabled ?

Trouwens je kan alles vinden over timers op de URL die ik al gepost heb (heb hem zonet aangepast wat hij was niet klikbaar).

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 17:19
door Loeri
Jup enable = true.
En bij jouw link vind ik de uitleg nogal onduidelijk :p
Ik gebruik dezelfde site om iets te zoeken maar bij mij is de 'ElapsedEventArgs' iets onbekend :p

Code: Selecteer alles

The type or namespace name 'ElapsedEventArgs' could not be found (are you missing a using directive or an assembly reference?
Edit: ik zie dat je link voor .NET framework 1.1 is, ik zit op 4.5 :p
Nvm het voorbeeld is hetzelfde...

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 18:33
door cptKangaroo
Als je die Timer2 manueel gecreëerd hebt, dan ben je waarschijnlijk vergeten om een event handler aan te maken voor Timer2.

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 18:39
door Loeri
Over welke time heb je het?
Timer2 is mijn timer die ik gebruikt die error met evenhandler is de code die naar de pagina verwijst van r2054.

Maar in mijn code in mijn eerste post zie ik dat ik wss de methode verkeerd oproep, heb deze nu aangepast en werkt nog steeds niet dus die timer of methode is verkeerd :?

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 18:54
door gm123
Maar je start hem dus niet expliciet? Werkt het als je dat wel doet? Dus timer2.start() oproepen bv. on load of zo. En zoals al eerder gezegd: uw intervaltijd ook on load al initialiseren (of via de properties) en voor de start.

Als je hem er in hebt gesleept zou die handler inderdaad automatisch gemaakt moeten zijn.

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 18:59
door Loeri
gm123 schreef:Maar je start hem dus niet expliciet? Werkt het als je dat wel doet? Dus timer2.start() oproepen bv. on load of zo. En zoals al eerder gezegd: uw intervaltijd ook on load al initialiseren (of via de properties) en voor de start.

Als je hem er in hebt gesleept zou die handler inderdaad automatisch gemaakt moeten zijn.
Ik heb geen idee wat je met 'on load' bedoelt, bedoel je als het programma start?
Dus "Formnaam_Load" ? Daar heb ik alleen: CheckDag(DateTime.Now); staan, moet ik daar Timer2.start(); zetten?
Zou wel raar zijn aangezien Timer1 zonder die start code wel iets doet?

Edit: ok lijkt te werken! :D Alleen roept de timer precies maar 1 keer de method op?
Zoals je in de eerste post ziet check ik steeds met DateTime.now, dus zou toch elke 1000ms en nieuwe tijd moeten zijn?

Ik vergelijk dan in een andere method tussen 2 tijden die werkt( ben ik zeker van :p ).
Heb dus geen idee waarom :?

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 19:07
door gm123
Inderdaad, ik bedoel in de _Load functie. Timers starten automatisch wanneer ze Enabled staan, maar voor de zekerheid kan je altijd eens de start functie oproepen. Als het dan nog niet werkt, dan weet ik het ook niet. :D Misschien toch eens proberen de timer opnieuw er in te slepen, misschien dat er iets is misgelopen met de evenhandler.

Het is misschien handig om eens een basic tutorial reeks van C# en .NET te volgen vooraleer je al 'echte' programma's begint te schrijven.

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 19:09
door Loeri
gm123 schreef: Het is misschien handig om eens een basic tutorial reeks van C# en .NET te volgen vooraleer je al 'echte' programma's begint te schrijven.
Ik zit momenteel op Howest in het eerste jaar van informatica en krijg dus nu voor de eerste keer C# .
Wat ik hier al toon zien we daar nog niet eens :roll:

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 19:13
door gm123
Loeri schreef:Edit: ok lijkt te werken! :D Alleen roept de timer precies maar 1 keer de method op?
Zoals je in de eerste post ziet check ik steeds met DateTime.now, dus zou toch elke 1000ms en nieuwe tijd moeten zijn?
Haal die timer2.interval toekenning eens uit je timer2_Tick functie , die is daar sowieso niet nodig. Om te kijken of je timer effectief om de seconde afgaat kan je er een simpele console output zetten met Console.WriteLine("hallo\n"). Dan krijg je voor elke timer tick hallo te zien in je output window en weet je zeker dat hij afgaat. Werkt denk ik wel enkel wanneer je het programma runt in Debug mode in Visual Studio.

Allez, het gaat om het idee. Roep iets op waarvan je écht 100% zeker bent dat het werkt. In jouw functie kunnen nog altijd onvoorziene fouten zitten, in iets simpel zoals bv. console output niet.

Edit: ik denk dat het Debug.WriteLine is dat je moet gebruiken voor tekst output in een winforms programma, weet het niet meer vanbuiten. Je krijgt dat dan in je debug window te zien in Visual Studio.
Loeri schreef: Ik zit momenteel op Howest in het eerste jaar van informatica en krijg dus nu voor de eerste keer C# .
Wat ik hier al toon zien we daar nog niet eens :roll:
Als het nog maar je eerste jaar is dan komt dat nog wel hoor, geen paniek.

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 19:19
door Loeri
gm123 schreef: Haal die timer2.interval toekenning eens uit je timer2_Tick functie , die is daar sowieso niet nodig. Om te kijken of je timer effectief om de seconde afgaat kan je er een simpele console output zetten met Console.WriteLine("hallo\n"). Dan krijg je voor elke timer tick hallo te zien in je output window en weet je zeker dat hij afgaat. Werkt denk ik wel enkel wanneer je het programma runt in Debug mode in Visual Studio.
Het is een Windows Applicatie, console.write werkt hier niet, heb het met een messagebox.show gedaan en spamt idd vol.
Zal dus ergens in mn method liggen of geef ik de verkeerde variable mee.
gm123 schreef:Als het nog maar je eerste jaar is dan komt dat nog wel hoor, geen paniek.
Ik bedoel dat je over kwam alsof ik er niks van kon en dat we op school met de basis bezig zijn dacht ik om even een stap verder te zetten en niet bvb een jaar te wachten..

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 19:21
door gm123
Loeri schreef:Ik bedoel dat je over kwam alsof ik er niks van kon en dat we op school met de basis bezig zijn dacht ik om even een stap verder te zetten en niet bvb een jaar te wachten..
Ik bedoelde dat niet slecht hoor, je bent toch ook effectief met de basis bezig? ;) Timers zijn nu niet echt geavanceerd hé. Ook omdat je niet wist wat ik bedoelde met on load, dat zijn echt wel basis dingen in C#.

Wat ik zei geldt nog steeds: of je nu in een informaticaopleiding zit of niet, met tutorials doe je niets mis, integendeel zelfs! En het is zeker goed dat je al voorloopt op wat je op school te zien krijgt! :) Wat ik wil zeggen is dat tutorials (of msdn) al veel van je vragen direct kunnen oplossen, dan hoef je in de toekomst niet steeds te zitten wachten op een antwoord van iemand op een forum. (niet dat we niet graag helpen natuurlijk)

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 19:37
door Loeri
Ik had al gekeken op MSDN en stackoverflow, maar ik had dus precies die timer over het hoofd gezien :-)
Maar als je een tutorial niet kan volgen of niet echt snapt dan versta je het ook niet he.

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 20:03
door Astralon
Er zit duidelijk iets fout in je programma.
Probeer eens een lege applicatie te maken en sleep twee timer componenten op je main form.

Maak de event handlers voor beide timers

Code: Selecteer alles

        private void timer1_Tick(object sender, EventArgs e)
        {            
            Debug.WriteLine("timer1");            
        }

        private void timer2_Tick(object sender, EventArgs e)
        {
            Debug.WriteLine("timer2");
        }
Maak een event handler voor Activated. Deze event handler wordt aangeroepen als het form actief wordt.
In onderstaand voorbeeld worden de twee timers geactiveerd.

Code: Selecteer alles

        private void Form1_Activated(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            timer2.Enabled = true;
        }
Om de Debug class te kunnen gebruiken moet je de System.Diagnostics namespace toevoegen.

Code: Selecteer alles

using System.Diagnostics;
Druk F5 om je Debug sessie te starten.

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 21:52
door Loeri
Bedankt voor de info!
Maar waar moet ik nu iets zien?

Thx iedereen het werkt nu!
Nu kan ik weer verder sukkelen :P

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 23:02
door gm123
Loeri schreef:Maar waar moet ik nu iets zien?
In het debug window in visual studio. Dat zie je normaal gezien standaard bij het starten van een debug sessie, en anders aanzetten onder View.

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 21 nov 2013, 23:14
door Astralon
Loeri schreef:Bedankt voor de info!
Maar waar moet ik nu iets zien?

Thx iedereen het werkt nu!
Nu kan ik weer verder sukkelen :P
Ik denk dat je best eens tijd neemt om een aantal basisprincipes van Visual Studio EN van C# onder de knie te krijgen want anders ga je blijven sukkelen.
Het Output (Debug) window is zowat het eerste scherm dat je nodig hebt :P .

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 22 nov 2013, 09:51
door Loeri
Astralon schreef:Ik denk dat je best eens tijd neemt om een aantal basisprincipes van Visual Studio EN van C# onder de knie te krijgen want anders ga je blijven sukkelen.
Het Output (Debug) window is zowat het eerste scherm dat je nodig hebt :P .
Moeten we dat dan niet eerst zien op school? :P
We zijn direct begonnen met wat een int, long, string, if, while, for, switch, .. is.
Niet hoe je Visual Studio moet gebruiken...

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 22 nov 2013, 10:23
door Astralon
Mijn ervaring leert mij dat debuggen en de daarbijhorende tools even belangrijk zijn als het programmeren zelf.
Gebruik daarom een deel van je vrije tijd om vertrouwd te raken met Visual Studio, vooral het debuggen dan.

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 22 nov 2013, 11:33
door ubremoved_539
Loeri schreef:Moeten we dat dan niet eerst zien op school? :P
Om met timers te werken heb je blijkbaar ook niet gewacht tot je het gezien hebt op school :lol:
Loeri schreef:We zijn direct begonnen met wat een int, long, string, if, while, for, switch, .. is.
Niet hoe je Visual Studio moet gebruiken...
De taal is theorie... ik veronderstel dat je ook praktijk krijgt en dat je daar kan leren hoe je een IDE gebruikt.

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 22 nov 2013, 15:57
door Loeri
Astralon schreef:Mijn ervaring leert mij dat debuggen en de daarbijhorende tools even belangrijk zijn als het programmeren zelf.
Gebruik daarom een deel van je vrije tijd om vertrouwd te raken met Visual Studio, vooral het debuggen dan.
r2504 schreef:Om met timers te werken heb je blijkbaar ook niet gewacht tot je het gezien hebt op school :lol:
De taal is theorie... ik veronderstel dat je ook praktijk krijgt en dat je daar kan leren hoe je een IDE gebruikt.
Merci voor de tips zal dit zeker bekijken :wink:

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 13 dec 2013, 18:47
door Loeri
Bij deze wou ik laten weten dat we 2 weken geleden dus timers hebben gezien en vandaag debugging!
:beerchug:

Ondertussen zit ik al bij mysql en MD5 hashing (login applicatie voor bvb phpbb3) :-D
Raden jullie aan om mijn mysql gegevens in het programma zelf te stoppen of is dit niet veilig?

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 13 dec 2013, 19:56
door liber!
Loeri schreef: Ondertussen zit ik al bij mysql en MD5 hashing (login applicatie voor bvb phpbb3) :-D
MD5 is absoluut niet (meer) bedoeld voor paswoord encryptie. Hoe je het wel moet doen?
http://stackoverflow.com/questions/4016 ... -passwords (principes gelden ook voor C# en andere talen).

Wat bedoel je juist met "mysql gegevens in het programma zelf te stoppen"?

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 13 dec 2013, 20:13
door Loeri
Bedankt voor de link en ik bedoel daarmee de gegevens om connectie te maken met mysql database.
Die hashing is nodig om in te loggen met phpbb3.

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 13 dec 2013, 20:25
door ubremoved_539
Iets hardcoded in een programma zetten is nooit een goed idee.

Paswoorden leesbaar in een configuratie file trouwens ook niet.

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 13 dec 2013, 20:54
door Loeri
Hoe maak je dan anders een verbinding?
Met http post/request? Of met cookies?

De code voor mysql ziet er zo uit:

Code: Selecteer alles

MySql.Data.MySqlClient.MySqlConnection conn;
string myConnectionString;

myConnectionString = "server=127.0.0.1;uid=root;" +
    "pwd=12345;database=test;";

try
{
    conn = new MySql.Data.MySqlClient.MySqlConnection();
    conn.ConnectionString = myConnectionString;
    conn.Open();
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
    MessageBox.Show(ex.Message);
}
r2504 schreef: Paswoorden leesbaar in een configuratie file trouwens ook niet.
Dat wist ik :P Daarmee dat ik phpbb3 nam om eens te testen met geëncrypteerde paswoorden.
Maar zo te zien blijkt MD5 niet veilig te zijn?

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 13 dec 2013, 21:35
door boran_blok
> Paswoorden leesbaar in een configuratie file trouwens ook niet.

bwoah, eerlijkgezegd zie ik dat wel heel vaak hoor. Het is een kwestie dat je filesysteem secure is hé.

Re: C# Method bepaalde tijd herhalen?

Geplaatst: 13 dec 2013, 22:05
door ubremoved_539
Het is niet omdat je iets vaak ziet dat het ook goed is hé. Ik heb al verschillende security audits meegemaakt waarbij dergelijke dingen op de zwarte lijst (zelfs die die geencrypteerd zijn met een zwak algorithme) komen.