Seite 1 von 1

Textauszeichnung

Verfasst: Mi, 10. Okt 2007 13:07
von stevie
Hallo,

oApp:Menu:AddItem(100, 1009, "&Beenden", {|| appquit()}, "Beenden")

Wozu dient eigentlich das "&" bei Beenden? Wie zeigt man bei so nem Knopf Selbstlaute(ä,ö,ü) an? Also zum Bsp. als Text "öffnen", da das ö.

Verfasst: Mi, 10. Okt 2007 13:25
von UliTs
Hallo Stevie,

welche Klasse gehört denn zu oApp bzw. oApp:Menu?
Ich vermute, oApp:Menu ist eine Instanz der Klasse XbpMenuBar(). Dann passen aber die Parameter nicht, da bei XbpMenuBar():AddItem() ein array für einen Menüeintrag übergeben wird. Schick bitte noch mehr Informationen. :)

Uli

Verfasst: Mi, 10. Okt 2007 13:31
von Tom
Hallo, Stevie.
Wie zeigt man bei so nem Knopf Selbstlaute(ä,ö,ü) an?
Das sind Umlaute. Selbstlaute (Vokale) sind a, e, i, o, u. :wink:

Womit editierst Du Deinen Code? Welche Zeichensatzeinstellungen hat Dein Editor? Eigentlich kann man Umlaute für Captions einfach so setzen, ohne irgendwelche Verbiegereien.

Verfasst: Mi, 10. Okt 2007 15:54
von Sören
Hallo Stevie,
Wozu dient eigentlich das "&" bei Beenden?
Das & bewirkt, dass das "B" bei "Beenden" unterstrichen dargestellt und als Menü-Shortcut definiert wird.
Sobald du bei geöffnetem Menü die B-Taste drückst, wird Dein Codeblock {|| appquit()} evaluiert.
Die Tilde ~ bewirkt dasselbe ("~Beenden").

Noch ein Hinweis: Da Du eine Menü-Klasse verwendest, die mit eindeutigen ID's arbeitet (ich habe mir etwas ähnliches auch programmiert), solltest Du immer Konstanten verwenden:

Code: Alles auswählen

#define MENU_DATEI  100
#define MENU_DATEI_OEFFNEN  101
#define MENU_DATEI_BEENDEN  109

oApp:Menu:AddItem( MENU_DATEI, MENU_DATEI_BEENDEN, "&Beenden", {|| appquit()}, "Beenden") 
Tschüs,
Sören

Verfasst: Do, 11. Okt 2007 9:13
von stevie
Tom hat geschrieben:Hallo, Stevie.
Wie zeigt man bei so nem Knopf Selbstlaute(ä,ö,ü) an?
Das sind Umlaute. Selbstlaute (Vokale) sind a, e, i, o, u. :wink:

Womit editierst Du Deinen Code? Welche Zeichensatzeinstellungen hat Dein Editor? Eigentlich kann man Umlaute für Captions einfach so setzen, ohne irgendwelche Verbiegereien.
Ich nutze den Pfe, hab aber bei Notepad den selben Effekt gehabt. Nach der Compilierung wird im Programm statt dem Ü ein _ angezeigt. Das Fenster ist mit Xclass aufgebaut und besitzt keinerlei Spracheinstellungen. Weiß nich, muss man da noch deutsch einstellen, oder?

Verfasst: Do, 11. Okt 2007 9:17
von Jan
Stevie,

da ich schon lange nicht mehr mit Xbase++-mäßigem ASCI arbeite - nur ein Verdacht: Notepad arbeitet mit ANSI, Xbase++ standardmäßig mit ASCI. Daher könnte der Fehler rühren. Versuch es mal mit dem Compilerschalter -ga.

Jan

Verfasst: Do, 11. Okt 2007 9:41
von stevie
Jan hat geschrieben:Stevie,

da ich schon lange nicht mehr mit Xbase++-mäßigem ASCI arbeite - nur ein Verdacht: Notepad arbeitet mit ANSI, Xbase++ standardmäßig mit ASCI. Daher könnte der Fehler rühren. Versuch es mal mit dem Compilerschalter -ga.

Jan
Verdacht erkannt, richtig gedacht. Nach -ga läufts richtig.
PS: Achso: Gefahr gebannt

Filedialoge

Verfasst: Fr, 19. Okt 2007 12:31
von stevie
Wie sieht das denn beim Filedialog aus?
Da werden auch keine Umlaute im Titel angezeigt, obwohl ich durch das -ga beim Kompilieren, die Umlaute im gesamten Programm angezeigt kriege. Was muss man denn da wieder beachten?

Verfasst: Fr, 19. Okt 2007 12:44
von Jan
Bei mir funktioniert das auch im File-Dialog einwandfrei. Ohne irgendwelche weiteren Kunstgriffe.

Kannst Du mir den Code packen und mailen? Inkl. der Projektdatei?

Jan

Verfasst: Fr, 19. Okt 2007 15:32
von Rolf Ramacher
Hi,

ich habe auch den Pfe32. In der Appsys habe ich stehen

Set Charset to Ansi

Umlaute funkt. ohne Probleme. In meiner xpj-Datei habe ich auch nichts stehen von -ga

Verfasst: So, 21. Okt 2007 16:18
von brandelh
Hallo,

das mit den Dateinamen die man eingibt und vom System zurück bekommt ist nicht ganz so einfach und hängt von vielem ab. Hier einiges was ich ermittelt habe:

1. Unterschiede zwischen den Windowsversionen:
Bis Win98 (WinME wohl auch ?) speichert das Betriebssystem OEM, denn das ist ja DOS.
Dateinamen mit Umlauten in der CMD Box -> OEM Umlaute
Dateinamen mit Umlauten im Dateimanager -> ANSI Umlaute
Ab WinNT dürfte es keine OEM Speicherung mehr gegeben haben,
geprüft habe ich aber nur Win2000 und WinXP -> IMMER ANSI !

2. Dateinamen unterliegen nicht der automatischen Konvertierung, Xbase++ macht nichts mit denen ... eigentlich, aber ...
- wenn man einen Dateinamen in der DBF speichert, wird dieser konvertiert. Wenn beim lesenden Programm die Konvertierungsparameter anders stehen hat man ein Problem.
- der im Editor eingegebene Dateiname im Quellcode - ANSI oder OEM ??? Beides ist möglich.
gibt man den Namen OEM ein kann man das durch -ga Schalter korrigieren oder durch ConvToAnsiCP().

3. Bei neuen Projekten kann ich nur dazu raten grundsätzlich alles in ANSI zu erfassen und SET CHARSET TO ANSI zu verwenden, dann hat man auf Windowsrechnern (ab Win2000 sicher Ruhe !).

4. Pragmatisch kann man auch einfach beides prüfen:

Code: Alles auswählen

     if ! File(cDatei) .and. File(ConvToAnsiCP(cDatei))
        cDatei := ConvToAnsiCP(cDatei)
     endif

Verfasst: Mo, 22. Okt 2007 7:23
von stevie
Also set charset to ansi geht auch für den Filedialog. Bei dem Titel:
oFDlg:Title := "Dbf mit Istwerten auswählen"
wurde nämlich bei /-ga statt dem ä nämlich ,, angezeigt. Wenn man beides (/-ga und set charset to ansi) hat, hebt sich die Wirkung wieder auf.

Verfasst: Mo, 22. Okt 2007 8:48
von brandelh
Hi,

wie gesagt, am Besten alles in ANSI und keine Schalter verwenden.
Die Schalter sollen nur die Arbeit für alten Code vereinfachen, aber es ist nun mal so, dass es mehr ANSI als OEM Zeichen gibt. Also sind Verluste nie ausgeschlossen !

(C) z.B. wenn ich das in der Resource als OEM abspeichere und im Programm anzeigen lasse sehe ich bei mir immer (R) - ob das jetzt an Xbase++ liegt, weiß ich auch nicht so genau, aber erst als ich alles in ANSI machte und keine Schalter mehr verwendet habe, hatte ich keine Probleme mit unwerwünschten Zeichen mehr :wink: