Hallo Basic4PPC-Gemeinde,
Ihr könnt mir bestimmt weiterhelfen, ich habe das Problem das ich eine Tabelle im Programm aufrufe, sie bearbeite und dann die Form schließe, um eine andere Form zu öffnen. Diese schließe ich dann wieder, um die Form mit der Tabelle wieder zu öffnen. Jetzt ist ja klar das die Tabelle beim ersten Aufrufen erzeugt wurde jetzt vom Programm nochmal erzeugt werden will. Wie kann ich das verhindern.
Hallo Bobbes
Du kannst eine globale Variable einsetzen. In der Form in welcher die Tabelle ist die beim Ersten Durchgang auf 0 ist und am Ende dieses Durchlaufes auf 1 gesetzt wird. Den Code zur Erstellung der Tabelle gibst Du zwischen If Then/End If. Der Tabellencode wird so nur einmal durchgelaufen.
Das folgende Beispiel ist bestimmt klarer als mein Text.
B4X:
Form2.Show
If Flag=0 Then
Table1.AddCol(cString,"First",50)
Table1.AddCol(cString,"Second",50)
Table1.AddRow("asd","efwe")
Table1.AddRow("11123","323145")
End If
Flag=1
also ich schreibe für so etwas immer eine "Sub Init", die genau einmal beim Programmstart durchlaufen wird.
B4X:
Sub App_Start
Init
Form1.Show
End Sub
Sub Init
' Einmaliges beim Programmstart
End Sub
Hat man konstante Daten, so können hier die Variablen und Elemente auch gleich gefüllt werden.
Sofern es veränderbare Daten sind, bietet sich zur Datenaktualisierung die "Sub Form_Show" an, die immer beim erneuten Aufruf einer Form durchlaufen wird. Hier lassen sich prima notwendige Variablenaktualisierungen implementieren.
Hallo ihr Beiden,
danke für Eure Antworten.
Jetzt geht es für mich wieder ins Geimpfte (also ins Detail).
Ich werde mich mal mit beiden Versionen beschäftigen, ich melde mich dann.
Gruß Bernd
Für ein Problem gibt es oft mehrere Lösungen.
Ich finde die Lösung von specci48 auch besser, sie ist vorallem genereller und würde auch sagen eleganter.
Bitte nicht soviel Lob, sonst glaub' ich noch selbst daran...
Aber im Ernst:
Wichtig ist meiner Meinung nach, dass man ein Programm auch nach einiger Zeit noch lesen und verstehen können muss. Egal welchen Weg man wählt, er sollte verständlich und nachvollziehbar sein. Gerade wenn vielleicht auch andere den Code einmal anschauen oder sogar pflegen wollen.
Ganz nebenbei: Es gibt bei mir ein Programm, dass habe ich schon über vier verschiedene Computersysteme portiert. Bei jedem Umschreiben (es lagen jeweils einige Jahre dazwischen) habe ich die Hände über dem Kopf zusammengeschlagen und gedacht - Mensch, was hast Du (damals) für einen Schei... programmiert!
Hallo specci 48,
Meist findet man seine eigenen Lösungen die Besten, aber Ich erkenne gerne an wenn jemand eine Bessere findet.
Mit
Aber im Ernst:
Wichtig ist meiner Meinung nach, dass man ein Programm auch nach einiger Zeit noch lesen und verstehen können muss. Egal welchen Weg man wählt, er sollte verständlich und nachvollziehbar sein. Gerade wenn vielleicht auch andere den Code einmal anschauen oder sogar pflegen wollen.
Ganz nebenbei: Es gibt bei mir ein Programm, dass habe ich schon über vier verschiedene Computersysteme portiert. Bei jedem Umschreiben (es lagen jeweils einige Jahre dazwischen) habe ich die Hände über dem Kopf zusammengeschlagen und gedacht - Mensch, was hast Du (damals) für einen Schei... programmiert!