Textauszeichnung

Eigentlich ist mir die Frage peinlich, aber es kann sonst niemand helfen ... :)

Moderator: Moderatoren

Antworten
stevie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 417
Registriert: Mo, 17. Sep 2007 18:20
Wohnort: Senftenberg
Kontaktdaten:

Textauszeichnung

Beitrag 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 ö.
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Beitrag 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
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Beitrag 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.
Herzlich,
Tom
Sören
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 205
Registriert: Mo, 07. Aug 2006 10:18
Wohnort: Leipzig
Danksagung erhalten: 11 Mal

Beitrag 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
stevie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 417
Registriert: Mo, 17. Sep 2007 18:20
Wohnort: Senftenberg
Kontaktdaten:

Beitrag 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?
Zuletzt geändert von stevie am Do, 11. Okt 2007 9:34, insgesamt 1-mal geändert.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Beitrag 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
stevie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 417
Registriert: Mo, 17. Sep 2007 18:20
Wohnort: Senftenberg
Kontaktdaten:

Beitrag 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
stevie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 417
Registriert: Mo, 17. Sep 2007 18:20
Wohnort: Senftenberg
Kontaktdaten:

Filedialoge

Beitrag 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?
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Beitrag 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
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag 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
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag 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
Gruß
Hubert
stevie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 417
Registriert: Mo, 17. Sep 2007 18:20
Wohnort: Senftenberg
Kontaktdaten:

Beitrag 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.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag 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:
Gruß
Hubert
Antworten