Programm im Hybridmodus / 50 Zeilen....

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

Moderator: Moderatoren

Antworten
Benutzeravatar
mini990
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 426
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.

Programm im Hybridmodus / 50 Zeilen....

Beitrag von mini990 » Di, 07. Nov 2017 16:11

Hallo,
habe hier ein älteres Programm das ich momentan schrittweise auf GUI umstelle.
Mein Problem ist folgendes:
ich benötige an einer Stelle 50 Zeilen.
unter Clipper lief das mit VGA50() einwandfrei.
Setze ich nun den Befehl VGA50() oder SetScrMode(306) ein bekomme ich eine Fehlermeldung:
beschreibung für dieses Objekt unbekannt: Setmode()
Setze ich
oCRT2:= XbpCrt():new( , , , 50, 79, "Titel", )
ein erscheint keine Fehlermeldung aber es passiert..... nix. keine Änderung.

Das Programm wird zuvor gestartet mit:

SetAppWindow():close := {|u1,u2,oXbp| CloseApp() }
SetAppWindow():configure()
RestoreFont()
WInit()

Kann mir da jemand helfen?

Danke im voraus...

Gruß Stefan

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 12949
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von Jan » Di, 07. Nov 2017 16:56

Hallo Stefan,

schau Dir mal SetMode() an.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11298
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von AUGE_OHR » Di, 07. Nov 2017 19:12

mini990 hat geschrieben:
Di, 07. Nov 2017 16:11

Code: Alles auswählen

oCRT2:= XbpCrt():new( , , , 50, 79, "Titel",  )
ein erscheint keine Fehlermeldung aber es passiert..... nix. keine Änderung.
deine Syntax ist FALSCH

Code: Alles auswählen

XbpCrt():new( [<oParent>]  , [<oOwner>]   , [<aPos>]  , ; 
              [<nRowCount>], [<nColCount>], [<cTitle>], ; 
              [<lVisible>] ) --> oXbpCrt 
mini990 hat geschrieben:
Di, 07. Nov 2017 16:11

Code: Alles auswählen

SetAppWindow():close := {|u1,u2,oXbp| CloseApp() }   
SetAppWindow():configure()
RestoreFont()
WInit()
da du Hybrid geschrieben hast nehme ich an das du weitere XbParts hinzufügen möchtest.
wenn ja dann würde ich dir raten ein XbpDialog() als Parent zu nutzen damit du für die folgenden XbParts weniger Probleme hast mit dem "Focus" beim "umschalten"
gruss by OHR
Jimmy

Benutzeravatar
mini990
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 426
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von mini990 » Fr, 26. Jan 2018 10:55

hallo,
ich kämpfe da immer noch.....

Code: Alles auswählen

SetAppWindow():close := {|u1,u2,oXbp| CloseApp() }    // don't use :destroy() here !
SetAppWindow():icon     := ICON_APPLICATION
SetAppWindow():configure()
RestoreFont()
WInit()
*** Modus ist 24/80 
*** Font wird so gewählt dass er möglichst bildschirmfüllend ist


oCrt := SetAppWindow()
SetMode(50,80)
@ 0,0 say...
...
...
@ 50,0 say...
Angezeigt wird Zeile 23 - 49
spiele ich etwas mit der Maus so wird irgendwann Zeile 0-24 angezeigt.
Editierbar sind alle Felder (Zeilen)
Setmode(50,80) gibt .T. zurück
Verändere ich nun den Font (Fonthöhe halbieren oder entsprechend kleinen Font wählen) ändert sich nichts bei der Anzeige
Aber die Fensterhöhe ändert sich in Abhängigkeit von der Fonthöhe.


??????? (krieg noch die krise...)

Gruß Stefan

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14466
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von brandelh » Fr, 26. Jan 2018 11:08

nicht alle Fonts sind skalierbar / erlaubt ... muss man durchprobieren.
Für die Veranstaltung in Berlin hatte ich ein Hybridfenster mit Fontauswahl - steht meine ich auch in der Wissensbasis.
Gruß
Hubert

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14466
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von brandelh » Fr, 26. Jan 2018 11:10

Hybrid bedeutet, dass man ein XbpCRT() Fenster nutzt, auf das KANN man auch XbParts legen, aber eben auch nur die @ SAY Syntax nutzen.
Ein XbpDialog() ist immer ein reines GUI Fenster, da geht nix mit @ SAY ...
Gruß
Hubert

Benutzeravatar
mini990
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 426
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von mini990 » Fr, 26. Jan 2018 12:07

also wird bei einem CRT Fenster die Höhe und Breite immer durch den Font bestimmt?
kann man da nichts vorgeben?

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 12949
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von Jan » Fr, 26. Jan 2018 12:08

Stefan,

da sich SetMode() an Zeilen und Spalten festmacht, wird das immer danach gehen. Egal welche Fontgröße Du einstellst. Zeile ist Zeile, egal ob 10 oder 24 Punkt.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
mini990
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 426
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von mini990 » Fr, 26. Jan 2018 12:27

jan, das verstehe ich jetzt nicht.
Mein Verständnis lag so:
Ich habe ein CRT Fenster mit einem bestimmten Font.
Dieser bestimmt die Fenstergröße.
Soweit ok.ich dachte dass ich in diesem Fenster mit z.B. Setmode(50,80) die Zeilenanzahl manipulieren kann
und die Schriftart dann entsprechend ausgegeben wird.
Dem ist aber nicht so.
Da Xbase ja von unten links aus den Bildschirminhalt ausgibt "sehe" ich die
letzten 24 Zeilen meiner 50zeiligen @ say Angaben.

Wo denke ich jetzt verkehrt?
Steh jetzt echt auf dem Schlauch...

Gruß Stefan

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14466
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von brandelh » Fr, 26. Jan 2018 14:33

Ihr schreibt an einander vorbei !

In meinem Migrationsbeispiel (und meinen Programmen hier) kann man durch die sinnvoll verfügbaren Schriften durchschalten.
Nicht jede Kombination ist sinnvoll !

Ich ändere zwar nicht die Zeilen / Spalten, aber das sollte auch gehen, womöglich aber nicht mit jeder Kombination.

Die Schriftgröße bestimmt dabei die Fenstergröße (24 * Fonthöhe, 80 * Fontbreite, aber beides in dpi) !

Eine kleine Schrift und das Fenster wird klein angezeigt, eine größere und es wird größer.
Einige der von mir gezeigten Schriften überfordern auch große Monitore obwohl nur 24 x 80 er Anzeige genutzt wird.

Der Standard Alasca Crt Font sollte aber immer gehen, ist halt klein.
Gruß
Hubert

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14466
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von brandelh » Fr, 26. Jan 2018 14:44

Schau mal hier, wenn man mit F2 einen anderen Font auswählt (die Größe kann man auch größer wählen als angegeben), wird das Fenster größer angezeigt.
configure ... wird hier benötig. SetMode() habe ich noch nicht probiert

Code: Alles auswählen

#include "inkey.ch"
#include "common.ch"
#define CRLF (chr(13)+chr(10))

procedure Main()

   cls

   // Windows Schließenbutton aktivieren | Close with X-Button

   SetAppWindow():close := {|u1,u2,oXbp| CloseApp() }    // don't use :destroy() here !
   SetAppWindow():configure()

   if RestoreFont()               // registry or INI-File
      @ 24,10 say "Font wurde geladen | font restored !"
   endif

   do while lastkey() # K_ESC  // ESC beendet das Programm

      @1,1 say  "Dies ist ein Test für XbpCrt - Fonts     "+Version()+" ("+;
                Version(1)+"."+Version(2)+"."+Version(3)+")"
      @3,1 say  "1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ ÄÖÜ ß"
      @4,1 say  "1234567890 abcdefghijklmnopqrstuvwxyz äöü ß"
      @6,1 say  "wichtig ist ein FixedFont !   | only fixed fonts !"
      @7,1 say  "F2  - startet die Fontauswahl | starts Fontdialog"
      @8,1 say  "F3  - Font merken             | save font for next startup"
      @9,1 say  "F4  - Alaska Crt (16|8)       | back to standard font"
      @10,1 say "F5  - Lösche INI Datei        | delete INI file"

      @12,1 say "ESC - beendet das Programm    | end"

      @20,1 say "SetAppWindow():FontName:  '"+SetAppWindow():FontName+"'"
      if chr(0) $ SetAppWindow():FontName
         @20,73 say " HEX0 " color "w+/r"
      endif
      @21,1 say "TrimHex0(...):            '"+TrimHex0(SetAppWindow():FontName)+"'"
      if chr(0) $ TrimHex0(SetAppWindow():FontName)
         @21,73 say " HEX0 " color "w+/r"
      else
         @21,73 say " OK ! " color "w+/g"
      endif
      @22,1 say "SetAppWindow():FontHeight: "+ntrim(SetAppWindow():FontHeight)
      @23,1 say "SetAppWindow():FontWidth:  "+ntrim(SetAppWindow():FontWidth)

      inkey(0)

      cls

      do case
         case lastkey() = K_F2
              if FontWahl()
                 @ 24,10 say "Font wurde gewählt !    |  font changed "
              endif
         case lastkey() = K_F3
              if SaveFont()               // registry or INI-File
                 @ 24,10 say "Font wurde gespeichert !   | font saved "
              endif
         case lastkey() = K_F4
              CRT_SetFont()
              CRT_center()
              @ 24,10 say "Alaska Crt (16|8) ? "
         case lastkey() = K_F5
              delete file (GetNameINI())
              @ 24,10 say GetNameINI()+" gelöscht ?"+;
                          iif(! file(GetNameINI()),"JA","NEIN")
      endcase


   enddo

return
*-----------------------------------------------------------
procedure CloseApp()
   quit
return
*-----------------------------------------------------------
function nTrim(nNum)
return alltrim(str(nNum))
*-----------------------------------------------------------
function TrimHex0(cTxt)      // AsciiZ -> ASCII
   local nPosHex0
   cTxt := alltrim(cTxt)
   nPosHex0 := at(chr(0),cTxt)
   if nPosHex0 > 0
      cTxt := left(cTxt,nPosHex0-1)
   endif
return alltrim(cTxt)
*-----------------------------------------------------------
function FontWahl(cTitle)
   local oCrt := SetAppWindow()
   local oFont
   local oFontDlg
   local lOK := .f.

   default cTitle to oCrt:title+" - Fontwahl"

   oFontDlg            := XbpFontDialog():New()
   oFontDlg:fixedOnly  := .t.           // CRT-Fenster needs FIXEDFONT
   oFontDlg:familyName := oCrt:FontName // Vorgabe ist aktueller Font | show active font
   oFontDlg:strikeOut  := .f.
*   oFontDlg:style      := .f.
   oFontDlg:underScore := .f.
   oFontDlg:title      := cTitle
   oFontDlg:create()                   // Font-Dialog anfordern

   oFont := oFontDlg:display()

   if ! IsNil(oFont)
      CRT_SetFont( { TrimHex0(oFont:familyName),;
                     oFont:height,;
                     oFont:width } )
      oFont:destroy()                  // Font freigeben
      CRT_center()
      lOK := .t.
   endif

   oFontDlg:destroy()               // Font-Dial

return lOK
*-----------------------------------------------------------
function CRT_SetFont(aFont)  // { NAME, Height, Width }
   local oCrt := SetAppWindow()

   DEFAULT aFont TO { "Alaska Crt" , 16, 8 }
   oCrt:FontName   := aFont[1]
   oCrt:FontHeight := aFont[2]
   oCrt:FontWidth  := aFont[3]
   oCrt:configure()

return .t.
*-----------------------------------------------------------
procedure CRT_center()
   local oCrt := SetAppWindow()
   local aSizeDesktop    := AppDesktop():currentSize()
   local nDesktopBreite  := aSizeDesktop[1]
   local nDesktopHoehe   := aSizeDesktop[2]
   local nBreite, nHoehe, nPosX, nPosY

   nBreite := oCrt:currentSize()[1]
   nHoehe  := oCrt:currentSize()[2]
   if nHoehe < nDesktopHoehe
      nPosY := (nDesktopHoehe-nHoehe)  /2
   else
      nPosY := (nDesktopHoehe-nHoehe)
   endif
   if nBreite < nDesktopBreite
      nPosX := (nDesktopBreite-nBreite)/2
   else
      nPosX := 1
   endif
   oCrt:setPos( { nPosX , nPosY } )
return

*-------------------------------------------------------------------------------------------------------
function SaveFont()               // registry or INI-File - here easy
   local oCrt := SetAppWindow()
   MemoWrit(GetNameINI(), TrimHex0(oCrt:FontName)+ CRLF +;
                          ntrim(oCrt:FontHeight)+ CRLF +;
                          ntrim(oCrt:FontWidth) )
return .t.
*-----------------------------------------------------------
function RestoreFont()            // registry or INI-File
   local lOK := .f.
   local cTxt := memoread(GetNameINI())
   local cFontName   := alltrim(memoLine(cTxt,200,1,1,.f.))
   local nFontHeight := val(memoLine(cTxt,200,2,1,.f.))
   local nFontWidth  := val(memoLine(cTxt,200,3,1,.f.))

   if ! ( empty(cFontName) .or. empty(nFontHeight) .or. empty(nFontWidth) )
      CRT_SetFont( { cFontName,nFontHeight,nFontWidth } )
      CRT_center()
      lOK := .t.
   endif
return lOK
*------------------------------------------------------------
function GetNameINI()
   local cName := AppName(.t.)
   local nLen  := len(cName)
   if upper(right(cName,4)) = ".EXE"
      cName := left(cName,nLen-3)+"INI"
   else
      cName := cName+".INI"
   endif
return cName
Dateianhänge
CrtFont.zip
(2.43 KiB) 10-mal heruntergeladen
Gruß
Hubert

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14466
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von brandelh » Fr, 26. Jan 2018 14:55

Wenn ich aber diese Zeilen nach den SetAppWindow() Zeilen einfüge:

Code: Alles auswählen

   IF .NOT. SetMode( 43, 80 )
      @ 24,10 say "Fehler bei SetMode() !"
      inkey(0)
   ENDIF
sieht das Fenster so aus:
XbaseSetMode-50-80.png
XbaseSetMode-50-80.png (34.55 KiB) 568 mal betrachtet
ansonsten so:
XbaseSetMode-Ohne.png
XbaseSetMode-Ohne.png (26.52 KiB) 568 mal betrachtet
jeweils ohne jede weitere Änderung, in der Hilfe steht aber dazu, dass man bei GUI Anwendungen das bei XbpCrt() angeben kann.
Man könnte das so verstehen, dass SetMode() eher der alten hardware Änderung von VIO Modus Anwendungen gedacht ist und es anders besser wäre ...

Könnte man auch noch probieren.
Ein Zuweisen eines anderen Fonts führt übrigens wieder zu der alten Anzeige ...
Gruß
Hubert

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14466
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von brandelh » Fr, 26. Jan 2018 15:00

Wenn man die configure Zeile so ändert, funktioniert es auch mit dem Font-Wechsel:

Code: Alles auswählen

*  SetAppWindow():configure()
*                :configure( [<oParent>]  , [<oOwner>]   , [<aPos>]  , [<nRowCount>], [<nColCount>], [<cTitle>], [<lVisible>] ) --> self
   SetAppWindow():configure(              ,              ,           , 50           , 80           , "Neuer CRT Test"  )
XbaseSetMode-XbpCrt.png
XbaseSetMode-XbpCrt.png (35.61 KiB) 559 mal betrachtet
Gruß
Hubert

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11298
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von AUGE_OHR » Fr, 26. Jan 2018 22:07

mini990 hat geschrieben:
Fr, 26. Jan 2018 10:55
ich kämpfe da immer noch.....

Code: Alles auswählen

oCrt := SetAppWindow()
SetMode(50,80)
@ 0,0 say...
...
...
@ 50,0 say...
so ähnlich FALSCH hat es bei mir am Anfang auch ausgesehen :badgrin:

das du CRT Object (Hybrid) statt dem Root Object (VIO) nimmst ist ja schon mal ein grosser Schritt =D>
nun musst du aber auch die Methoden des Object nehmen und nicht die Function :!:

Code: Alles auswählen

   oCRT:setMode( [<nRowCount>], [<nColCount>] ) --> aOldMode 
---

wenn man mit mehreren CRT Fenstern arbeiten will muss man dafür sorgen das nur im "aktiven" Fenster eine "Ausgabe" erfolgt.

Code: Alles auswählen

   SetAppWindow(oCrt)
wenn man dann so eine Zeile im Hybrid Modus hat

Code: Alles auswählen

oCrt := SetAppWindow()
könnte folgendes passieren :
User schaltet auf eine andere App und zurück und klickt dann auf "irgendein" Fenster / Control das dann das "aktive" ist :roll:

wenn man ein Object hat dann sollte man auch damit arbeiten und nicht mit der Rückgabe von einer Function [-X
gruss by OHR
Jimmy

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11298
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von AUGE_OHR » Fr, 26. Jan 2018 22:37

wenn du einen Font für CRT Fenster auswählst dann probiere : Umlaute und Euro Zeichen :!:

damit reduziert es sich auf einige wenige für CRT Fenster.

Code: Alles auswählen

   oFont := XBPFONT() :New()
   oFont:fixed := .T.
so erzeuge ich meinen CRT Font.

---

Anmerkung "viele" Fenster :
ein CRT "in" einem CRT, also CRT als Parent ist schwierig in Griff zu bekommen.
wenn man auf Hybrid geht empfehle ich einen XbpDialog() als "Shell" dessen o:DrawingArea als Parent "für alle" dient.

wenn man z.b. den Font ändert dann sollten ja auch alle anderen den selben Font bekommen !

hier ein Hybrid Code Beispiel aus dem Demo was ich auf der Forum Konferenz 2018 zeigen will.
es verwendet den XbpFontDialog() zur Auswahl des geeigneten Fonts für ein CRT Fenster.

Code: Alles auswählen

PROCEDURE SetNewFont( oParent, oCrt )
LOCAL oFont, oFontDlg, aSize

   oFontDlg := XBPFONTDIALOG() :New()
   oFontDlg:fixedOnly := .T.
   oFontDlg:familyName := SP_Font() :familyName
   oFontDlg:nominalPointSize := SP_Font() :nominalPointSize
   oFontDlg:create()

   SP_FontMenu( .T. )   // lock

   // auswählen lassen
   DO WHILE ( oFont := oFontDlg:display( XBP_DISP_APPMODAL ) ) <> NIL

      SP_Font( oFont )                                      // remember

      oCrt:FontName := oFont:familyName
      oCrt:FontHeight := oFont:height
      oCrt:FontWidth := oFont:width
      oCrt:Configure()

      aSize := oCrt:CurrentSize()
      
      // Statusbar   
      aSize[ 2 ] += nSBarHeight
      SP_SBar() :SetSize( { aSize[ 1 ], nSBarHeight } )
      SP_SBar() :SetFont( oFont )

      // XbpDialog 
      oParent:clientSize := aSize
      oParent:DrawingArea:SetFont( oFont )
      oParent:SetNewPos()  // other CenterControl()

      SP_MenuBar() :SetFont( oFont )
      CenterControl( oParent, APPDESKTOP() )

      // Aktuellen Fontnamen
      oFontDlg:familyName := oFont:familyName               // registrieren
      oFontDlg:nominalPointSize := oFont:nominalPointSize

      * NEIN
      * oFont:destroy()                                       // Font freigeben
   ENDDO

   oFontDlg:destroy()                                       // Font-Dialog freigeben
   SaveFontSetup()
   SP_FontMenu( .F. ) // unlock

RETURN
gruss by OHR
Jimmy

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 12949
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von Jan » Sa, 27. Jan 2018 7:01

AUGE_OHR hat geschrieben:
Fr, 26. Jan 2018 22:37
wenn man auf Hybrid geht empfehle ich einen XbpDialog() als "Shell" dessen o:DrawingArea als Parent "für alle" dient.
So mache ich das in diesen Fällen auch.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14466
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von brandelh » Mo, 29. Jan 2018 2:28

AUGE_OHR hat geschrieben:
Fr, 26. Jan 2018 22:07
so ähnlich FALSCH hat es bei mir am Anfang auch ausgesehen :badgrin:

das du CRT Object (Hybrid) statt dem Root Object (VIO) nimmst ist ja schon mal ein grosser Schritt =D>
nun musst du aber auch die Methoden des Object nehmen und nicht die Function :!:

Code: Alles auswählen

   oCRT:setMode( [<nRowCount>], [<nColCount>] ) --> aOldMode 
in der Hilfe zur 1.90.xxx steht diese Methode aber nicht, im Gegenteil wird dort configure ODER die Funktion SetMode() empfohlen;
Hilfe hat geschrieben:Beschreibung
Durch die Methode :setSize() kann die Größe eines XbpCrt-Fensters geändert werden. Die maximale Größe ist durch :maxRow und :maxCol vorgegeben, die bei der Erzeugung eines XbpCrt-Fensters angegeben wurden. Die aktuelle Größe wird durch die Methode :currentSize() abgefragt.

Die Größe eines XbpCrt-Fensters kann unter Windows nicht mit der Methode :setSize() geändert werden. Stattdessen wird die Größe durch den impliziten Textpuffer vorgegeben. Die Größe des Textpuffers wird in :create() eingestellt und kann über die Methode :configure() oder die Funktion SetMode() geändert werden. Der Aufruf der Methode :setSize() hat auf Windows-Rechnern keine Auswirkung und die Methode gibt immer den Wert .F. (FALSE) zurück.
muss ich später mal probieren, ob die Methode auch geht (wäre schön, ich mag kein Configure) 8)
Gruß
Hubert

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11298
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Programm im Hybridmodus / 50 Zeilen....

Beitrag von AUGE_OHR » Mo, 29. Jan 2018 3:15

brandelh hat geschrieben:
Mo, 29. Jan 2018 2:28
in der Hilfe zur 1.90.xxx steht diese Methode aber nicht, im Gegenteil wird dort configure ODER die Funktion SetMode() empfohlen;
uuuups ... die Method ist von VCrt() :^o

aber ich glaub ich "weiss" was Stefan uns sagen will : das CRT Fenster verschiebt sich nach oben :badgrin:

also musst Stefan noch ein o:SetPos() hinterher schieben oder CenterControl() einsetzten um es auf dem Parent zu zentrieren. wenn es dann noch nicht "passt" ist dein Font zu gross.
gruss by OHR
Jimmy

Antworten