German SQL in Scrollview Problem bei zweitem anzeigen

Paulsche

Well-Known Member
Licensed User
Longtime User
Hallo, ich zeige meine SQL-Daten in einer Scrollview an (Button "Tabelle"), was beim ersten mal auch funktioniert.
Gehe ich aber zurück zur Startseite und wähle nochmal die Tabellenansicht aus, werden keine Daten mehr gezeigt, erst nach Neustart des Programmes wieder.

Ich vermute dass ich mit Removview arbeiten muss, blicke es aber nicht.

Wäre für einen Tipp dankbar.
 

Attachments

  • spritverbrauch.zip
    18.4 KB · Views: 369
Last edited:

Vidar

Member
Licensed User
Longtime User
Hallo Paulsche,

du wirst gleich echt lachen. Ich habe nun fast eine Stunde nach dem Fehler gefahndet. Wäre fast daran verzweifelt!

Habe mir dann mal SÄMTLICHE! Eigenschaften der Views ausgeben lassen und siehe da:

Wenn du scv02Tabelle.Visible = false setzt, wird scv02Tabelle.Panel.Visible = false ebenfalls gesetzt, bei einem scv02Tabelle.Visible = true jedoch nicht wieder mit angezeigt.

Ein einfacher Aufruf von scv02Tabelle.Panel.Visible = true in der BTN00Tabelle_Click-Routine behebt diesen Fehler.

Jedoch möchte ich dir noch etwas ans Herz legen:

Die Views, die du erzeugst, werden immer wieder überlagert. Wenn du diese nichtmehr benötigst, solltest du sie freigeben. Das kannst du z.B. so tun:

B4X:
Sub btn02Zurueck_Click
   pnl00Startseite.Visible   = True
   pnl02Tabelle.Visible   = False
   pnl02scroll.Visible      = False
[COLOR=red]
   For i = scv02Tabelle.Panel.NumberOfViews -1 To 0 Step -1
      scv02Tabelle.Panel.RemoveViewAt(i)
   Next[/COLOR]

End Sub

Ich weiss nicht, ob der Garbage Collector von Java da greift, daher lieber alles wieder freigeben, um nicht zuviel Speicher zu verbrauchen.

Weiterhin noch eine kleine Bitte: Schleifenvariablen sind lokale Variablen :D Daher bitte nicht global, sondern lokal deklarieren. Das hat einige wichtige Gründe und ist in anderen Sprachen garnicht erst erlaubt :)

Hoffe, ich konnte dir helfen.

Mit besten Gruß
Michi
 

Paulsche

Well-Known Member
Licensed User
Longtime User
Hallo Michi,

vielen Dank für die Hilfe, das hätte ich nie rausgefunden.

Auch werde ich Dene Ratschläge beherzigen und die Views beim beenden
des Layouts bzw. Panels dann auich wieder löschen.

Die Schleifenvariable werde ich auch lokal machen, dachte einfach ich könnte
mit dann das declarieren in jedem Sub sparen, aber hats Recht, gehtz bestimmt
auf den Speicher könnte ich mir vorstellen.

Danke nochmals :sign0098:
 

Vidar

Member
Licensed User
Longtime User
Hehem ja vorallem wird das lustig mit den Globalen Steuervariablen, wenn du ein großes Projekt hast und die sich irgendwo überschneiden :D
Happy Debugging kann man da nur wünschen :D

Daher Hilfsvariablen immer lokal ;)

Sparst dir auch ein paar Takte Rechenpower, da globale Variablen, soweit ich weiss, per "far call" abgerufen werden.

Gruß
Michi
 
Top