Autor Beitrag
mrtfr
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 26



BeitragVerfasst: Mi 30.01.19 11:43 
Hi,

ich möchte eine Abfrage beim laden des Programms starten. Diese soll testen, ob es zwei txt gibt und dann ggf diese auslesen.
In einem Ticker soll dann die Anzeige der txt umschalten.
Nun sind die strings aber rot markiert...


ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
public void AppBox_Load(object sender, EventArgs e)
        {

      --> hier müsste die if Abfrage rein (if File.Exists) <--

            string monn = File.ReadAllText(@">path<\FoodManager\texte\Montag.txt", Encoding.UTF8);
            string monv = File.ReadAllText(@">path<\FoodManager\texte\Montag_v.txt", Encoding.UTF8);
        }

 int tickstr = 1;
    
      void ticker2(object sender, EventArgs e)
        {
            switch (Convert.ToInt32(DateTime.Now.DayOfWeek))
            {
                 case 1:
                   if (monn == ("✘ Heute gibt es nur Vegetarisch. ✘") && monv == ("✘ Heute gibt es kein Vegetarisch. ✘"))
                        {
                            lblticker.Text = ("Heute ist die Kantine geschlossen.");
                            lblticker.BackColor = Color.White;
                        }
                        else
                        {

                            switch (tickstr)
                            {
                                case 1:
                                    lblticker.Text = monn;
                                    tickstr = 0;
                                    lblticker.BackColor = Color.FromArgb(205255240246);
                                    break;
                                case 0:
                                    lblticker.Text = monv;
                                    tickstr = 1;
                                    lblticker.BackColor = Color.FromArgb(220240255244);
                                    break;
                            }
                        }
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4433
Erhaltene Danke: 908


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 30.01.19 13:49 
Du hast die Variablen monn, monv in der AppBox_Load Methode definiert. Damit ist der Scope dieser Variablen nur diese Methode, heißt sie sind nur dort benutzbar und existieren auch nur während der Laufzeit dieser Methode. Möchtest du das diese Variablen länger Leben und auch in anderen Methoden dieser Klasse nutzbar sind solltest du daraus Klassenvariablen machen.

Edit:

Nebenbei füllt sich der Code falsch an. Der Load Event wird einmal beim öffnen der Form aufgerufen. Ein ticker Event klingt so als hättest du dir irgendeine Art Timer gebaut der regelmäßig läuft.
Denn Inhalt der beiden Variablen dann in diesem ticker Event zu prüfen klingt nutzlos da der Inhalt immer gleich ist. Wenn du denn Inhalt in ticker2 prüfst musst du auch dafür sorgen das sich der Inhalt dieser Variablen, falls notwendig, ändert im Rahmen dieser Methode.
mrtfr Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 26



BeitragVerfasst: Fr 01.02.19 11:17 
Du hast recht, der Inhalt ist immer der gleiche. Aber mit SwitchCase wechselt er zwischen monn und monv. Er soll diese wechselnd anzeigen.

Mein Ziel ist eine einmalige Abfrage am Anfang und dann laufend der Wechsel.

Moderiert von user profile iconTh69: Vollzitat entfernt.