Aktuelle Zeit: 28.02.2020 02:00

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Aufruf zwei gleicher For-Schleifen
BeitragVerfasst: 13.12.2019 12:21 
Offline

Registriert: 13.12.2019 11:48
Hallo,

da ich seit Tagen nicht auf die Lösung eines Rätsels komme, möchte ich es mal hier versuchen.

Ich rufe zwei For-Schleifen bei einem Linksklick, auf ein ImageGadget, auf. Das Resultat wird nur von der ersten For-Schleife angezeigt und ich weiß nicht wieso.

Vielleicht sieht jemand von euch die Lösung.

For-Schleifen:
Code:
If DM_Settings_Navi_Mode.i = 0 And DM_Settings_Navi_ModeString.s = "Text"

  For DM_Content_Navi_Show.i = CP::List_Func(5, 0, "", "", "", "", 0, "Digital Media", "Vars Cons Coords", "Navi Main Switch ID") To (DM_Helper_List_Count_NaviMainEntries() * 58) Step 58

    If IsGadget(DM_Content_Navi_Show.i) <> 0
      HideGadget(DM_Content_Navi_Show.i, 1)
    EndIf

    If IsGadget(DM_Content_Navi_Show.i + 29) <> 0
      HideGadget(DM_Content_Navi_Show.i + 29, 0)
    EndIf

  Next

ElseIf DM_Settings_Navi_Mode.i = 1 And DM_Settings_Navi_ModeString.s = "Icons"

  For DM_Content_Navi_Show.i = CP::List_Func(5, 0, "", "", "", "", 0, "Digital Media", "Vars Cons Coords", "Navi Main Switch ID") To (DM_Helper_List_Count_NaviMainEntries() * 58) Step 58

    If IsGadget(DM_Content_Navi_Show.i) <> 0
      HideGadget(DM_Content_Navi_Show.i, 0)
    EndIf

    If IsGadget(DM_Content_Navi_Show.i + 29) <> 0
      HideGadget(DM_Content_Navi_Show.i + 29, 1)
    EndIf

  Next

EndIf



If DM_Settings_Navi_Mode.i = 0 And DM_Settings_Navi_ModeString.s = "Text"

  For DM_Content_Navi_Show.i = CP::List_Func(5, 0, "", "", "", "", 0, "Digital Media", "Vars Cons Coords", "Navi Games Switch ID") To (DM_Helper_List_Count_NaviGamesEntries() * 58) Step 58

    If IsGadget(DM_Content_Navi_Show.i) <> 0
      HideGadget(DM_Content_Navi_Show.i, 1)
    EndIf

    If IsGadget(DM_Content_Navi_Show.i + 29) <> 0
      HideGadget(DM_Content_Navi_Show.i + 29, 0)
    EndIf

  Next

ElseIf DM_Settings_Navi_Mode.i = 1 And DM_Settings_Navi_ModeString.s = "Icons"

  For DM_Content_Navi_Show.i = CP::List_Func(5, 0, "", "", "", "", 0, "Digital Media", "Vars Cons Coords", "Navi Games Switch ID") To (DM_Helper_List_Count_NaviGamesEntries() * 58) Step 58

    If IsGadget(DM_Content_Navi_Show.i) <> 0
      HideGadget(DM_Content_Navi_Show.i, 0)
    EndIf

    If IsGadget(DM_Content_Navi_Show.i + 29) <> 0
      HideGadget(DM_Content_Navi_Show.i + 29, 1)
    EndIf

  Next

EndIf


Der Code DM_Helper_List_Count_NaviGamesEntries() * 58, DM_Helper_List_Count_NaviGamesEntries() * 58 gibt die Anzahl der Einträge aus der Liste (List_Main()) zurück. Die * 58 beziehen sich auf 58 Elemente je Eintrag und da nur die Einträge gezählt werden sollen, werden mit * 58 die Elemente übersprungen. Zu jedem Eintrag gehört außerdem ein Icon-Eintrag, welcher ebenfalls die selben Elemente verwendet (sowohl der Eintrag als auch der Icon-Eintrag verwenden jeweils diese Elemente aber jeder Eintrag und jeder Icon-Eintrag kann seine eigenen Werte zu den Elementen haben). Daher * 58, um wirklich nur jeden einzelnen Eintrag zu zählen.

Zur Verdeutlichung:

Eintrag
Switch
Switch Icon
Summary
Summary Icon
...

List_Main
Eintrag ID
Eintrag X
Eintrag Y
Eintrag W
Eintrag H
Eintrag Text
Eintrag TextFont
Eintrag SubText
Eintrag SubTextFont
Eintrag IconID
Eintrag IconOverID
Eintrag IconOpacity
Eintrag IconOpacityOver
Eintrag ImageID
Eintrag ImageOverID
Eintrag Color Text
Eintrag Color TextOver
Eintrag Color SubText
Eintrag Color SubTextOver
Eintrag Color Background
Eintrag Color BackgroundOver
Eintrag Color EdgeTop
Eintrag Color EdgeRight
Eintrag Color EdgeBottom
Eintrag Color EdgeLeft
Eintrag Color EdgeTopOver
Eintrag Color EdgeRightOver
Eintrag Color EdgeBottomOver
Eintrag Color EdgeLeftOver

Ein Debug "Navi Games" direkt nach dem ersten For, in der zweiten Ausführung (also ab dem zweiten If DM_Settings_Navi_Mode.i = 0 And DM_Settings_Navi_ModeString.s = "Text") wird nicht angezeigt. Das sagt mir bisher nur das der Inhalt des zweiten Aufrufs nicht abgearbeitet / ausgeführt wird.
Nur, wieso?


Danke euch im voraus!

_________________
Windows 7 x64, PureBasic 5.70 x64


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Aufruf zwei gleicher For-Schleifen
BeitragVerfasst: 13.12.2019 13:34 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Espoleon hat geschrieben:
Ein Debug "Navi Games" direkt nach dem ersten For, in der zweiten Ausführung (also ab dem zweiten If DM_Settings_Navi_Mode.i = 0 And DM_Settings_Navi_ModeString.s = "Text") wird nicht angezeigt.


Ein Debug direkt nach:
If DM_Settings_Navi_Mode.i = 0 And DM_Settings_Navi_ModeString.s = "Text"
wird aber ausgeführt, oder ?

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.2 / Android 7.0 ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Aufruf zwei gleicher For-Schleifen
BeitragVerfasst: 13.12.2019 13:51 
Offline

Registriert: 13.12.2019 11:48
Ja, wird im oberen Teil (erste und zweite For-Schleife) ausgegeben.

Nachtrag:
Ja, wird auch im unteren Teil vor der ersten For-Schleife ausgegeben.

_________________
Windows 7 x64, PureBasic 5.70 x64


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Aufruf zwei gleicher For-Schleifen
BeitragVerfasst: 13.12.2019 14:12 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Was gibt den das hier zurück ?

Debug CP::List_Func(5, 0, "", "", "", "", 0, "Digital Media", "Vars Cons Coords", "Navi Games Switch ID")

Debug (DM_Helper_List_Count_NaviGamesEntries() * 58)

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.2 / Android 7.0 ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Aufruf zwei gleicher For-Schleifen
BeitragVerfasst: 13.12.2019 14:32 
Offline

Registriert: 13.12.2019 11:48
Setze ich das
Code:
Debug CP::List_Func(5, 0, "", "", "", "", 0, "Digital Media", "Vars Cons Coords", "Navi Games Switch ID")
Debug (DM_Helper_List_Count_NaviGamesEntries() * 58)
direkt nach dem If DM_Settings_Navi_Mode.i = 0 And DM_Settings_Navi_ModeString.s = "Text" im unteren Teil, dann erhalte ich
Code:
[13:17:15] [Debug] 567
[13:17:15] [Debug] 464
Die erste ID is korrekt, was man an folgendem Bild erkennen kann, die zweite ID ist hier nicht richtig und bringt mich vorerst wieder auf eine zu korrigierende Fehlerquelle.


Danke ccode_new

Bild

_________________
Windows 7 x64, PureBasic 5.70 x64


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye