Seite 1 von 1

Ok-Haken in Xbase++

Verfasst: Mi, 30. Sep 2015 18:42
von MichaMB
Hallo liebe Experten,
ich würde gerne wahlweise einen Haken (statt Text ist erledigt)

Code: Alles auswählen

OEM 437 chr(251)
hinter einer Textzeile erscheinen lassen, leider gibt es ja das Zeichen in Windows OEM 850 nicht
Gibt es da bereits eine Lösung wie z.B. beim € - Zeichen?

Re: Ok-Haken in Xbase++

Verfasst: Mi, 30. Sep 2015 19:08
von georg
Hallo, Micha -


Deine Frage deute ich so, dass Du ein Zeichensatz-Zeichen suchst, das Du dort platzieren kannst.

Ich würde in einem solchen Fall ein XbpBitmap() oder XbpStatic() hinter der Zeile platzieren und darin eine entsprechende Grafik anzeigen.

Re: Ok-Haken in Xbase++

Verfasst: Mi, 30. Sep 2015 19:28
von brandelh
Zunächst muss man klarstellen, was für ein Fenster du hast.

XbpCrt() (Grafikmodus von Textbildschirm) => Alaska-CRT oder andere Schrift, kann in Programm selbst gewählt werden.
Terminalmodus ( GUI = OFF ) => kann nur über die Schrift im CMD Fenster von Windows direkt eingestellt werden
XbpDialog() => Schriftart ANSI wählen, die z.B. viele Symbole enthält.

Bei XbpCrt() und XbpDialog() kann man auch Bitmaps verwenden, im Terminalmodus nicht.

Re: Ok-Haken in Xbase++

Verfasst: Mi, 30. Sep 2015 21:56
von MichaMB
wir nutzen XbpCrt() (Grafikmodus von Textbildschirm) => Alaska-CRT oder andere Schrift
leider gibt es den Zeichensatz "Wurzel" nicht mehr in ANSI
im Netz habe ich gefunden:
OEM 437 Zeichen FB = U+221A
https://msdn.microsoft.com/en-us/goglobal/cc305156
aber wie programmiert man das ?

Re: Ok-Haken in Xbase++

Verfasst: Do, 01. Okt 2015 16:53
von brandelh
der OEM 437 gibt es seit langem nicht mehr, DOS und Windows Rechner hier verwenden die OEM 850
Und nicht jeder Zeichensatz unterstütz jedes Zeichen.

:arrow: https://msdn.microsoft.com/en-us/goglobal/cc305160

Windows nutzt eigentlich Ansi ...

Aber auf einem XbpCrt() kann man eine bipmap ausgeben oder mit Grafunktionen zeichnen.

Wobei der Thread nicht in die Wissensbasis gehört, ich verschiebe mal ...

Re: Ok-Haken in Xbase++

Verfasst: Fr, 02. Okt 2015 1:41
von AUGE_OHR
im VIO Modus, also ohne /PM:PM, bekommst du das RootCRT() und man kann IMHO im VIO Fenster nicht den Font verändern.

Code: Alles auswählen

PROCEDURE MAIN
LOCAL  oCrt :=    SetAppWindow()

   oCrt:fontName := "WingDings" // das crasht
   ? CHR(252)
   ? "alles OK äöüÄÖÜß"
   ? CHR(213)
WAIT
RETURN
oError:args :
-> VALTYPE: O CLASS: RootCrt
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: N
oError:cargo : NIL
oError:description : Member-Variable ist für dieses Objekt unbekannt
oError:filename :
oError:genCode : 26
oError:operation : fontName
oError:osCode : 0
oError:severity : 2
oError:subCode : 2240
oError:subSystem : BASE
oError:thread : 1
oError:tries : 0
im Hybrid-Modus könntest du andere Fonts verwenden

Code: Alles auswählen

PROCEDURE APPSYS
#define DEF_ROWS       43
#define DEF_COLS       80
#define DEF_FONTHEIGHT 16
#define DEF_FONTWIDTH   8

LOCAL oCrt, nAppType := AppType()
LOCAL aSizeDesktop, aPos

  DO CASE
    // Anwendung wurde im PM Modus gelinkt, eine XbpCrt Instanz
    // ist zu erzeugen.
    CASE nAppType == APPTYPE_PM

      aSizeDesktop    := AppDesktop():currentSize()
      aPos            := { (aSizeDesktop[1]-(DEF_COLS * DEF_FONTWIDTH))  /2, ;
                           (aSizeDesktop[2]-(DEF_ROWS * DEF_FONTHEIGHT)) /2  }

      // XbpCRT-Fenster erzeugen
      oCrt := XbpCrt():New ( NIL, NIL, aPos, DEF_ROWS, DEF_COLS )
      oCrt:FontWidth  := DEF_FONTWIDTH
      oCrt:FontHeight := DEF_FONTHEIGHT
      oCrt:title      := AppName()

*    oCrt:FontName   := "Alaska Crt"   // OK
*    oCrt:FontName := "Courier"      // nicht alle Zeichen    
*    oCrt:FontName := "Arial"          // falsche Zeichen
      oCrt:FontName := "Terminal"     //

      oCrt:Create()
      oCrt:PresSpace()
      SetAppWindow ( oCrt )

   CASE nAppType == APPTYPE_VIO .OR. nAppType == APPTYPE_NOVIO
...
  ENDCASE
RETURN

PROCEDURE MAIN
   ? "alles OK äöüÄÖÜß"
   ? CHR(213) 
WAIT
RETURN
jedoch haben die, ausser TERMINAL, nicht die deutschen Umlaute und kein € Zeichen :!:

siehe dir mal c:\ALASKA\XPPW32\Source\samples\basics\FONT\fontdb.prg an.
modifiziere den "Text" im Source mit Umlauten und € Sonderzeichen zur Anzeige

es gibt den Zeichensatz "WingDings" wo es das Zeichen gibt aber man kann IMHO es nicht "in" einem CRT Fenster nutzen.
( Anzeige erfolgt ausserhalb des Browse auf einen XbpStatic )

grob gesagt : im CRT Fenstern kannst du die Zeichen darstellen was Cl*pper kann ... nicht mehr !

du kann aber, wie bei Cl*pper, deinen "eigenen" DOS Fontsatz verwenden ...
MichaMB hat geschrieben:im Netz habe ich gefunden:
OEM 437 Zeichen FB = U+221A
https://msdn.microsoft.com/en-us/goglobal/cc305156
aber wie programmiert man das ?
UNICODE im CRT Fenster kannst du ganz vergessen [-X

Re: Ok-Haken in Xbase++

Verfasst: Fr, 02. Okt 2015 22:43
von AUGE_OHR
Nachtrag :
im Thread http://www.xbaseforum.de/viewtopic.php? ... 36&p=80004 wird das Thema CRT / Font ausführlich behandelt.
ca. in der Mitte ist ein schönes Demo von Hubert