VGA50() Fehlermeldung

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

VGA50() Fehlermeldung

Beitrag von mini990 »

Hallo,
ich muss ein kleines einfaches Programm auf die Schnelle von Clipper auf Xbase umsetzen
Eine "DOS" Oberfläche ist weiterhin gewünscht.
Im alten Programm wird die Anzeige mit VGA50 auf 50 Zeilen umgeschaltet.
Unter Xbase erscheint mir hier eine Fehlermeldung:
Fehler Base/2220
Methode ist für dieses Objekt unbekannt
Operation Setmode
Aufgerufen von Setscrmode(377)
Aufegrufen von VGA50(689)

kann mir da jemand helfen?

Gruß Stefan
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: VGA50() Fehlermeldung

Beitrag von brandelh »

Welche Version von Xbase++ hast du denn ?

In der 1.90.355 Hilfe (vermutlich in allen seit ...) steht :

Code: Alles auswählen

SetScrMode( <nModeID> ) --> lSuccess 

Returns .T. if the new video mode could be set otherwise .F. 

Description 

The following values can be passed for <nModeID>. However, not all modes are supported by all graphic adapters. 

Modes for SetScrMode() ...
  Value      Screen mode                   
    0    *)  CGA 40 columns, monochrome    
    1        CGA 40 columns, color         
    2    *)  CGA 80 columns, monochrom     
    3        CGA 80 columns, color         
    7    *)  Monochrome                    
  299        EGA 43 rows                   
  284        VGA 28 rows                   
  306        VGA 50 rows                   
 *) Not supported under Windows
VGA 50 sollte also möglich sein ... VGA50() steht auch nix gegenteiliges.

Wobei man eine XbpCrt() Fenster direkt auf die Größe bringen kann:
XbpCrt():new( [<oParent>] , [<oOwner>] , [<aPos>] , ;
[<nRowCount>], [<nColCount>], [<cTitle>], ;
[<lVisible>] ) --> oXbpCrt
nRowCount = Zeilenanzahl
nColCount = Zeichen je Zeile
Gruß
Hubert
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: VGA50() Fehlermeldung

Beitrag von mini990 »

1.90 SL1
Ja, das steht so in der Tools-Beschreibung.
Funktioniert aber mit vga50 und auch mit set scrmode nicht.
Probiere jetzt mal xbpcrt

Danke...

Gruß Stefan
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: VGA50() Fehlermeldung

Beitrag von Jan »

Fenstergröße einstellen bei einem VIO-Dialog geht einfach mit SetMode(nZeilen, nSpalten)

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: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: VGA50() Fehlermeldung

Beitrag von brandelh »

Hast du eine angepaßte AppSys.PRG Datei ?

Wenn nicht, wird das Original verwendet, das du hier finden kannst:

x:\ALASKA\XPPW32\source\SYS\AppSys.PRG

Und die Anwendung muß mit GUI=YES (in Projektdatei) bzw. /PM:PM (ALink) erstellt worden sein.
Dann kann man auch größere Schriftarten direkt aus dem Programm setzen.

Bei VIO ist man stark eingeschränkt, aber auch dort sollten Fixe Werte funktionieren.
Gruß
Hubert
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: VGA50() Fehlermeldung

Beitrag von brandelh »

Jan hat geschrieben:Fenstergröße einstellen bei einem VIO-Dialog geht einfach mit SetMode(nZeilen, nSpalten)
Jan
das hatte ich vergessen ... und geht in beiden Modi ...
Die Funktion SetMode() ist abhängig von dem Betriebsmodus, in dem eine Xbase++ Applikation gelinkt worden ist. Wenn es sich um eine VIO-Applikation handelt, können nur ganz bestimmte Werte für <nMaxRow> und <nMaxCol> angegeben werden. Diese Werte hängen von der vorhandenen Grafikkarte ab. Gängige Werte sind: SetMode(25,80), SetMode(43,80) und SetMode(50,80) Falls eine GUI Applikation erstellt wurde, kann die Zeilen- und Spaltenzahl, die in einem XbpCrt Fenster angezeigt wird, beliebig definiert werden.

Beispiel

Code: Alles auswählen

// SetMode() Beispiel 
// Das Beispiel schaltet den 50 Zeilen Modus ein: 
 
   PROCEDURE Main 
 
      IF .NOT. SetMode( 50, 80 ) 
         ? "50 Zeilen werden nicht unterstützt" 
      ENDIF 
 

   RETURN 
Gruß
Hubert
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: VGA50() Fehlermeldung

Beitrag von mini990 »

Guten Morgen....

Setmode funktioniert.
Aber wie bekomme ich die 50 Zeilen in das Fenster? Geht das auch scrollbar?
Beim Programmstart verwende ich die Funktion Restorefont aus Huberts CRTFONT-Beispiel zum festlegen der Fenstergröße.

Gruß Stefan
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: VGA50() Fehlermeldung

Beitrag von brandelh »

Scrollen muss man selbst machen (Keyboardevent oder Scollbars außen mit der Maus) ...
aber besser ist es das Crt mit den 50 Zeilen zu erzeugen (in init oder setmode()) und wenn das dann angezeigt wird
den Font neu zu setzen. Allerdings dürfte bei 50 Zeilen kaum ein anderer Font gehen als der von Alaska.
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: VGA50() Fehlermeldung

Beitrag von Jan »

brandelh hat geschrieben:Allerdings dürfte bei 50 Zeilen kaum ein anderer Font gehen als der von Alaska.
Das kann ich nicht bestätigen. Ich habe mehrere Programme in der Entwicklung mit mehr als den Standardzeilen, und nehm da Windows-Fonts für - mußte allerdings lange knobeln, bis ich da teilweise die richtigen gefunden ahbe, die ich auch in der Schriftgröße ändern konnte und das trotzdem ordentlich aussieht.

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: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: VGA50() Fehlermeldung

Beitrag von AUGE_OHR »

brandelh hat geschrieben:Allerdings dürfte bei 50 Zeilen ...
warum sollte der Font abhängig von der Anzahl der Zeilen sein ?

Code: Alles auswählen

c:\ALASKA\XPPW32\SOURCE\samples\basics\FONT\fontdb.prg
das Demo kann man leicht modifizieren und zum prüfen nehmen ob auch Sonderzeichen "richtig" dargestellt werden.
gruss by OHR
Jimmy
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: VGA50() Fehlermeldung

Beitrag von brandelh »

Was ich meinte ist die Schriftgröße, auf einem normalen Monitor sind 50 Zeilen schon recht groß.
Natürlich geht alles (wie ich in meinem oben erwähnten Beispiel aufzeige), aber vieles sieht nicht schön aus - muss man einfach mal probieren.
Gruß
Hubert
Antworten