German Neuling bei Basic4ppc - wollte mal "Hallo" sagen ...

JOTHA

Well-Known Member
Licensed User
Hallo Klaus,
danke für dein Angebot, ich sende den Source-Code, wenn ich wieder am "großen" PC bin. Momentan schreibe ich vom Pocket-PC aus über WLAN.

Ich melde mich jetzt erst wieder nach der "Urlaubspause", da war der PC familienmäßig tabu, aber ab heute kann ich wieder voll ran.

Vorab schon mal ein paar Fragen, ich habe zwar schon darüber gegrübelt und die SuFu bemüht, bin aber nicht weitergekommen:

1) Wenn ich eine CSV-Datei mit Daten fülle und diese dann öffne, kommen keine Umlaute (ä,ö,ü,ß), sondern nur komische Zeichen. In einer XML-Datei ist das nicht so, aber in den Kopfzeilen der XML steht auch noch "en-EN" anstatt "de-DE". Wie kann man das ändern?

2) Läßt sich irgendwo eine "Tab-Reihenfolge" festlegen? Ich meine damit, daß es möglich wird in einer Form von einem Textfeld zum anderene zu springen, indem man auf die Tabulator-Taste drückt.

3) Ich habe versucht den Code im Optimized-Modus zu compilieren, dabei erscheint die Meldung "CS2001 ... geht nicht". Woran könnte das liegen?

Ich habe noch einen ganzen Sack weiterer Fragen. Die würde ich gerne loswerden, wenn ich am "großen" PC sitze.

Bis dahin schon mal im Voraus vielen Dank!
 

specci48

Well-Known Member
Licensed User
Hallo JOTHA,

1) Wenn ich eine CSV-Datei mit Daten fülle und diese dann öffne, kommen keine Umlaute (ä,ö,ü,ß), sondern nur komische Zeichen.
Basic4ppc schreibt die Dateien im UTF-8 Format (nicht ANSI). Öffne Deine .csv Datei mal mit dem Notepad und wähle als Codierung UTF-8, dann sieht man auch die "Sonderzeichen" korrekt.

2) Läßt sich irgendwo eine "Tab-Reihenfolge" festlegen? Ich meine damit, daß es möglich wird in einer Form von einem Textfeld zum anderene zu springen, indem man auf die Tabulator-Taste drückt.
Klicke im Designer auf das erste Element in der gewünschten Tab-Reihenfolge. Dann über das Kontext-Menue "Send to Back" auswählen. Diesen Vorgang für sämtliche Elemente in der gewünschten Reihenfolge wiederholen.

3) Ich habe versucht den Code im Optimized-Modus zu compilieren, dabei erscheint die Meldung "CS2001 ... geht nicht". Woran könnte das liegen?
Der Compiler findet irgendeine Datei für den Compile-Vorgang nicht. Arbeitest Du ggf. mit meheren importierten Source-Dateien?


Gruß
specci48
 

klaus

Expert
Licensed User
Hallo Ihr Beiden.

Da specci48 schneller war habe Ich nicht viel zuzufügen.

Die Meldung "CS2001 ... geht nicht" könnte vieleicht auch am Quellcode liegen denn der alte und IDE Kompiler vergibt manche Schreibarten die der optimzed Kompiler nicht mehr verträgt.

Mit dem Quellcode könnten wir das nachvollziehen.

Grüsse.
 

JOTHA

Well-Known Member
Licensed User
Hallo specci und Klaus,

danke für eure Antworten. Ich konnte leider nicht so schnell antworten wie ich wollte, weil mein Rechner die Antwort im Forum mehrfach unterbrochen hat. Es sieht fast so aus als hätte ich einen Virus auf dem Rechner. Ich habe ihn erstmal heruntergefahren und lasse gerade nach dem Booten den Virenscanner drüberlaufen.

... jetzt zu euren Hilfen:

An specci: Der Tip mit den Tab "send back" war Super. Steht das irgendwo oder ist das ein "Profi-Geheimtip" von Dir? Jedenfalls vielen Dank dafür!

Die Meldung "CS2001 ... geht nicht" könnte vieleicht auch am Quellcode liegen denn der alte und IDE Kompiler vergibt manche Schreibarten die der optimzed Kompiler nicht mehr verträgt.

Mit dem Quellcode könnten wir das nachvollziehen.

Grüsse.

Das kann gut daran liegen, weil ich teilweise auch Beispielcodes verwendet habe.

Ich versuche jetzt mit dem Pocket-PC den Code einzufügen.
 

JOTHA

Well-Known Member
Licensed User
Ich versuche jetzt mit dem Pocket-PC den Code einzufügen.

Tja, mit dem Pocket-PC ist das gar nicht so einfach.

Das ist der 2. Versuch ...

Ojeh ... jetzt musste ich es auch noch auf dem PPC komprimieren. Ich hoffe es hat geklappt ...
 

Attachments

  • - FSZ-PPC -.zip
    26.5 KB · Views: 168

JOTHA

Well-Known Member
Licensed User
An specci48:

Das wegen den CSV-Daten und dem UTF-8 habe ich hier schon im Forum gelesen. Mir geht es um die weitere Verarbeitung und Weitergabe der Daten in andere Tabellen (oder z.B. Access) ohne diese Umlaut-Fehler.

Nochmals zu (3):
Wie ist das gemeint mit "importiert"? Ich arbeite eigentlich immer nur mit einer Code-Datei, die ich mal auf dem PPC und meistens auf dem PC habe.

Übrigens: Wenn ich auf dem PPC eine Form gestalte, verschiebt es mir die Felder und Buttons immer um ein paar Pixel oder eine TextBox wird einfach ein paar Pixel länger. Auf dem PC passiert das nicht. Liegt das vielleicht an der VGA-Auflösung von meinem AMEO, oder habt Ihr das gleiche Problem?

--- Jetzt zum Code ---
So wie es aussieht, hat das jetzt geklappt. Sollte ich die Image-Files mitschicken?

In diesem Programm gibt es noch weitere Probleme:

1) Ich habe hin und her probiert, aber die Daten werden immer nur in 38 Felder gespeichert und zwar genau bis zum Feld "Bank1A". Daraufhin habe ich einmal eine CSV-Datei von Hand gefüllt. Diese wird dann korrekt eingelesen.

2) Wie kann man eigentlich Daten aus einer CheckBox in einer Tabelle speichern? Mit "Checked" klappt es nicht.

3) Das gleiche Problem habe ich auch mit Daten aus der ComboBox. Da sollte es mit "SelectedIndex" gehen, oder?

4) Habe ich das richtig verstanden: Wenn man mit einer SQL-Datenbank arbeiten will, braucht man unbedingt vorher die Daten in einer Tabelle?

Über eure Anregungen und Hilfe würde ich mich sehr freuen.
 

specci48

Well-Known Member
Licensed User
Der Tip mit den Tab "send back" war Super. Steht das irgendwo oder ist das ein "Profi-Geheimtip" von Dir?
:) Den Tipp hat Erel vor ewigen Zeiten mal rausgerückt. Im englischen Teil gibt es auch einge ältere Posts hierzu.
Manchmal ist es daher recht hilfreich, ein (halbwegs) funktionierendes Langzeitgedächtnis zu haben... ;)


specci48
 

JOTHA

Well-Known Member
Licensed User
:)
Manchmal ist es daher recht hilfreich, ein (halbwegs) funktionierendes Langzeitgedächtnis zu haben... ;)specci48

... und in einem solchen tollen Forum Leute zu finden, die dieses Wissen teilen.

DANKE !
 

specci48

Well-Known Member
Licensed User
Hallo JOTHA,

auf die schnelle hier einige ausgewählte Antworten:

Nochmals zu (3):
Wie ist das gemeint mit "importiert"? Ich arbeite eigentlich immer nur mit einer Code-Datei, die ich mal auf dem PPC und meistens auf dem PC habe.
Man kann über Tools >> Components und dann AddCode sowohl für das Device als auch für den Desktop separate Code-Dateien einbinden. Guckst Du hier: Code Files
Für die nächste Basic4ppc Version hat Erel hier allerdings eine deutliche Verbesserung in Aussicht gestellt. Dann kann man auch in der IDE mehrere Dateien gleichzeitig bearbeiten.

Übrigens: Wenn ich auf dem PPC eine Form gestalte, verschiebt es mir die Felder und Buttons immer um ein paar Pixel oder eine TextBox wird einfach ein paar Pixel länger. Auf dem PC passiert das nicht. Liegt das vielleicht an der VGA-Auflösung von meinem AMEO, oder habt Ihr das gleiche Problem?
Hmm, ein Problem mit verschobenen Pixeln kann ich bei mir nicht beobachten. Verschobene Texte schon, das liegt an der etwas anderen Schriftart auf dem Device.

Wie kann man eigentlich Daten aus einer CheckBox in einer Tabelle speichern? Mit "Checked" klappt es nicht.
Bei mir funktionierts es. Die Tabellenzelle enthält dann True oder False, je nachdem, ob die CheckBox aktiviert war oder nicht.

Das gleiche Problem habe ich auch mit Daten aus der ComboBox. Da sollte es mit "SelectedIndex" gehen, oder?
Auch dies funktioniert! Mit
B4X:
MyTable.Cell("MyCol", 0) = ComboBox.SelectedIndex
speichert man z.B. den selektierten Index in der Tabellenzelle. Möchtest Du jedoch den ausgewählten Text speichern, so kann man z.B.
B4X:
MyTable.Cell("MyCol", 0) =  ComboBox.Item(ComboBox.SelectedIndex)
verwenden.


Gruß
specci48
 

klaus

Expert
Licensed User
Hallo JOTHA,

Habe mal in Dein Programm reingeschaut, scheint ja eine sehr grosse Datenbank zu sein.
Ohne den Bildern lauft leider nicht. Hast Du immer noch die Fehleranzeige ?

Vorschlag zur Programmierung:
B4X:
Sub ButtonBeenden01_Click
  AppClose
End Sub

Sub ButtonBeenden02a_Click
  AppClose
End Sub

Sub ButtonBeenden02b_Click
  AppClose
End Sub
.
.
.
Sub ButtonBeenden31_Click
  AppClose
End Sub

ersetzen durch

B4X:
' In der App_Start Routine oder einer anderen Init Routine die ganzen ButtonClicks auf eine einzige Routine verzweigen
AddEvent("ButtonBeenden01",Click,"ButtonBeenden_Click")
AddEvent("ButtonBeenden02a",Click,"ButtonBeenden_Click")
AddEvent("ButtonBeenden02b",Click,"ButtonBeenden_Click")
.
.
.
AddEvent("ButtonBeenden31",Click,"ButtonBeenden_Click")


Sub ButtonBeenden_Click
  AppClose
End Sub

das Gleiche auch mit anderen Events wie
Sub von17zumMenue_Click

die generelle Routine für

B4X:
Sub ButtonZu03extern_Click
  i = Msgbox ("Wollen Sie jetzt zum Modul 03 | Bausparverträge wechseln?", "Hinweis", cMsgboxYesNo, cMsgboxQuestion)
  If i = cNo Then
    Form03aFinanzUebersicht1.Show
  Else
    Msgbox ("Sie haben keine gültige Lizenz für dieses Modul.", "Hinweis", cMsgboxOK, cMsgboxExclamation)
'    Jetzt kommt die automatische Sicherung der Änderungen (ohne Nachfrage)
    ButtonAenderungenSichern_Click
    Form03aFinanzUebersicht1.Show
  End If
End Sub

könnte so aussehen:

B4X:
' In der App_Start Routine oder einer anderen Init Routine die ganzen ButtonClicks auf eine einzige Routine verzweigen
AddEvent("ButtonZu03extern",Click,"ButtonZuExtern_Click")
AddEvent("ButtonZu04extern",Click,"ButtonZuExtern_Click")
.
.

Sub ButtonZuExtern_Click
  Dim k,txt
  k=SubString(8,2)   ' Nummer aus dem aufrufenden Button extrahieren

  Select k
  Case 3
    txt="Wollen Sie jetzt zum Modul 03 | Bausparverträge wechseln?"
  Case 4
    txt="Wollen Sie jetzt zum Modul 04 | Drittes Beteiligungsgesetz wechseln?"
  .
  . 
  .
  End Select

  i = Msgbox (txt, "Hinweis", cMsgboxYesNo, cMsgboxQuestion)

  If i = cYes Then
    Msgbox ("Sie haben keine gültige Lizenz für dieses Modul.", "Hinweis", cMsgboxOK, cMsgboxExclamation)
'    Jetzt kommt die automatische Sicherung der Änderungen (ohne Nachfrage)
    ButtonAenderungenSichern_Click
  End If
  Form03aFinanzUebersicht1.Show
End Sub

Eine einzige Routine mit allen Texten und einem MsgBox Aufruf.

Ich hoffe Ich hab keine Tippfehler reingemacht.

Das sind natürlich nur Vorschläge, Du musst selbst sehen ob Du Dich damit wohl fühlen kannst.

Beste Grüsse.
 

JOTHA

Well-Known Member
Licensed User
Hallo Klaus,

vielen Dank für deine Vorschläge.
Auf jeden Fall wird das Ganze damit übersichtlicher und der Code ist nicht so lange.

Wird dadurch auch die Ausführung des Progammes später schneller?
Anbei sende ich noch die 2 Images.

PS.: Dieses erste Modul hat 163 Felder, es sind noch weitere 30 Module geplant. Diese habe ich mit XSForms in den letzten 4 Jahren programmiert und möchte sie jetzt mit B4P neu umsetzen.
Da ich mit B4P aber noch "Newbie" bin sind mir jede Hilfe und Tips sehr willkommen.
 

Attachments

  • - Kamera.jpg
    - Kamera.jpg
    3.5 KB · Views: 238
  • - Taschenrechner.jpg
    - Taschenrechner.jpg
    2.7 KB · Views: 200

JOTHA

Well-Known Member
Licensed User
@ Klaus:
Meintest Du diese Fehlermeldung:
"Ich habe versucht den Code im Optimized-Modus zu compilieren, dabei erscheint die Meldung "CS2001 ... geht nicht". Woran könnte das liegen?"

--- Ja, diese Meldung kommt immer noch. specci48 hat schon darauf geantwortet, aber ich habe keine Codes mit "Add Code" kopiert.

Wahrscheinlich liegt es aber daran, daß ich teilweise "alte" Code-Teile kopiert und eingefügt habe.
 

specci48

Well-Known Member
Licensed User
"Ich habe versucht den Code im Optimized-Modus zu compilieren, dabei erscheint die Meldung "CS2001 ... geht nicht". Woran könnte das liegen?"
Du hast für den Desktop die falsche Datei eingebunden! Es gibt nämlich die Outlook.dll für das Device und die OutlookDesktop.dll eben für den Desktop.
Korrigier das mal unter den Components, dann sollte zumindest dieser Fehler nicht mehr auftreten.


Gruß
specci48
 

klaus

Expert
Licensed User
Hallo JOTHA,

Beiliegend die Version die der Kompiler verträgt.

Linie 241 Geburtstag.Value und nicht Geburtstag.Text

Linie 516 TableName.Cell("Bank1A",row) = Bank1A.Text
und nicht TableName.Cell("Bank1A",row) = Bank1A.Text, BLZ1A.Text

Linie 2409 Geburtstag.Value und nicht Geburtstag.Text
und viele &""• Nebenjob als: "& anstatt &"• Nebenjob als: "&
etliche &crlf&""& durch &crlf& ersetzt

Bildnamen umgetauft, Leerzeichen und Bindestrich weggenommen.
"Kamera.jpg" und nicht " -Kamera.jpg"

Beste Grüsse.
 

JOTHA

Well-Known Member
Licensed User
Du hast für den Desktop die falsche Datei eingebunden! Es gibt nämlich die Outlook.dll für das Device und die OutlookDesktop.dll eben für den Desktop.
Korrigier das mal unter den Components, dann sollte zumindest dieser Fehler nicht mehr auftreten. Gruß specci48

Hallo specci48,

Danke für den Hinweis (ich habe das geändert), aber daran konnte es nicht liegen.

Die Outlook.dll und die SQL.dll brauche ich erst später für die Weiterentwicklung des Programms. Ich habe die Compilation einmal in der vorigen Version und dann in der jetzigen Version (koorigiert nach deinem Hinweis) gemacht. Jedesmal der gleiche Fehler. Trotzdem Danke für deine Mühe.

Es liegt sehr wahrscheinlich an der Zeile 2409 mit der "Zusammenfassung". Da ist irgendwo der Hund begraben. Wenn ich copmpiliere ohne diese Zeile, dann klappt es auf einmal im optimized-Modus.

Wenn ich diese Zeile aktiviere, dann kommt jetzt folgende Meldung:
"Error Compiling Program: ... CS1002 ..." und zeigt mir dann die Zeile 2409 an.

Klaus hatte diese Zeile in seinem korrigierten Code ja auch deaktiviert.

... also im Moment bastle ich mal weiter ...
 

JOTHA

Well-Known Member
Licensed User
Hallo Klaus,

vielen Dank für deine Korrekturarbeit !!!

Ich war so "betriebsblind", daß ich den Fehler in Zeile 516 nicht gefunden habe, obwohl ich mehrere Male danach gesucht habe.

...
Linie 516 TableName.Cell("Bank1A",row) = Bank1A.Text
und nicht TableName.Cell("Bank1A",row) = Bank1A.Text, BLZ1A.Text

Deshalb ging auch mit der Speicherung in die Tabelle ab dem Feld "BLZ1A" nichts mehr weiter. Da ich den Fehler nicht entdeckt habe, war ich fälschlicherweise der Annahme, daß es irgendwo anders "hängt" und habe deshalb alles mögliche ausprobiert, z.B. auch das folgende:


Linie 241 Geburtstag.Value und nicht Geburtstag.Text

Ich weiß schon, daß der Kalender (=Geburtstag) mit Value gespeichert wird, habe aber wegen dem obigen Fehler damit herumexperimentiert. Aber jetz ist das ja klar, dank deiner Hilfe.

Wegen diesen Dingen:

Bildnamen umgetauft, Leerzeichen und Bindestrich weggenommen. "Kamera.jpg" und nicht " -Kamera.jpg"

... wußte ich gar nicht, daß Leerzeichen und Bindestrich solche Probleme verursachen können. Ich habe jetzt alles konsequent ohne Leerzeichen und Bindestrich umbenannt.

  • Hast Du deshalb auch den Code mit Unterstrich (FSZ-PPC ---> FSZ_PPC) umbenannt?
  • Muß denn die EXE-Datei auch so behandelt werden, oder kann diese dann mit Leerzeichen und/oder Bindestrich "getauft" werden?

Wegen der Zeile "Zusammenfassung":

... und viele &""• Nebenjob als: "& anstatt &"• Nebenjob als: "&etliche &crlf&""& durch &crlf& ersetzt ...

Da muß ich nochmal experimentieren. Ich brauche diese Auflistung als Möglichkeit, alle Daten zusammenzufassen und mit einem mobilen Drucker auszudrucken. Dabei sollte natürlich alles noch leserlich sein, deshalb die Absätze und Leerzeilen. Bisher macht das Programm nur die Zusammenfassung in dieser Form, wie ich das eingegeben habe.

Allerdings resultiert daraus auch wieder ein "Compile-Problem".

So wie ich das im Forum bereits mehrfach gelesen habe, gibt es generell ein "Drucken-Problem" mit B4P.

Meine Ideallösung wäre, daß man die eingebenen Daten mit einem mobilen Drucker über Bluetooth oder WLAN ausdrucken kann. Allerdings nicht nur den Text, sondern auch noch in verschiedenen Formatierungen (Font, Größe, Fett, Unterstrichen, etc.), mit Bildern (bmp, jpg) und einem Logo. Aber das ist ein anderes Thema für später, es sei denn, jemand weiß auch hier schon Rat.

... also ich bin jetzt jedenfalls wieder einen Schritt weiter - Dank eurer Hilfe.

;)
 

klaus

Expert
Licensed User
Hallo JOTHA,

Wenn Du geauer in meine korrigierte Version reinschaust siehst du dass die Zeile 2409 desaktiviert ist, ABER Zeile 2410 ist die RICHTIGE !

Ich wusste dass der Kompiler mit Leerzeichen Probleme hat.
Denn der IDE suchte nach den Bildern mit dem Leerzeichen und Bindestrich und der Kompiler ohne.

Ob das gleiche auch für den Programmnamen gilt habe Ich nie ausprobiert, benütze prinzipiell keine.

Drucken auf dem Desktop geht mit einer RichtextBox, auch mit Bildern. Die RichtextBoxen werden aber leider nicht auf den PPC's unterstützt.

Grüsse.
 

JOTHA

Well-Known Member
Licensed User
... ABER Zeile 2410 ist die RICHTIGE !

Hallo Klaus,

ich habe extra nochmals deine Datei heruntergeladen (um ganz sicher zu gehen), aber in Zeile 2410 steht nur "End Sub", sonst nichts ... :confused:

Gruß

Korrektur: Ich habe die alte Zeile 2409 von mir mit deiner neuen Datei verglichen und dabei festgestellt, daß diese von Dir verändet wurde. Du hast meine "falschen" Zeilen gelöscht und deine verbesserte Zeile als Zeile 2409 eingefügt (und deaktiviert).
 
Last edited:

klaus

Expert
Licensed User
Hallo JOTHA,

Ich bitte un Entschuldigung, Ich hab da irgendwo 'Mist' gemacht. In der Datei auf meinem Computer ist die alte Zeile 2409 noch drin und die neue ist 2410. Muss das aber geändert haben bevor Ich sie geschickt hatte, und nicht nochmal gespeichert.

Grüsse.
 
Top