Ok-Haken in Xbase++

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
MichaMB
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Fr, 26. Jul 2013 12:03

Ok-Haken in Xbase++

Beitrag 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?
lG
Micha
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2824
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Ok-Haken in Xbase++

Beitrag 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.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Ok-Haken in Xbase++

Beitrag 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.
Gruß
Hubert
Benutzeravatar
MichaMB
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Fr, 26. Jul 2013 12:03

Re: Ok-Haken in Xbase++

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

Re: Ok-Haken in Xbase++

Beitrag 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 ...
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Ok-Haken in Xbase++

Beitrag 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
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Ok-Haken in Xbase++

Beitrag 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
gruss by OHR
Jimmy
Antworten