Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
AQUA-MAN

Anmeldungsdatum: 26.03.2009 Beiträge: 15
|
Verfasst am: 25.06.2009, 02:47 Titel: Bildschirmseiten in Screen 0 |
|
|
Hai Leute
Ich habe grade eben versucht im Screen 0 Modus 2 Bildschirmseiten zu benutzen, aber sobald das Programm die 2. Seite benutzen soll (Screenset 1,1), stürzt das Programm ab indem es einfach verschwindet.
Wenn ich aber das Screen 0,,2 z.B. zu Screen 19,,2 verändere funktioniert alles so wie es soll, aber eigentlich wollte ich im Textmodus arbeiten und nicht in einem Grafikmodus.
Daher nehme ich an das man in Screen 0 nur 1 Bildschirmseite benutzen kann, aber um ganz sicher zu gehen frage ich hier jetzt nochmal ob das richtig ist?
Bye |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 25.06.2009, 03:12 Titel: |
|
|
"Screen 0" schaltet den Grafikmodus ab.
Code: |
Screen 1 'Grafikmodus-1 einschalten
Screen 0 'Grafikmodus ausschalten
Screen 2 'Grafikmodus-2 einschalten
Screen 0 'Grafikmodus ausschalten
'...
|
Im Textmodus (reguläre Ausgabe auf einer Konsole) gibt es keien Bildschirmseiten. Du könntest höchstens noch "ViewPort" nutzen, sonst jedoch nichts.
Du musst dir da was anderes einfallen lassen, z.B. einen Doppelten Buffer erzeugen, in einem die aktuellen Informationen, und in einem die neuen Informationen. "Draw'st" du diese per eigener Sub / Function, kannst du beide 2 Dimmensionale Arrays miteinander vergleichen und nur die geänderten Informationen per Locate und Print übertragen. Das ganze läst sich noch optimieren, indem du z.B. nicht nur Byte für Byte änderungen durchführst, sondern zuvor prüfst, ob sich mehree änderungen hintereinander befinden, und diese dann über einen Print, anstat über mehrere durchführst. Führt auch zu einer drastischen Beschleunigung im Anzeigeverhalten.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
AQUA-MAN

Anmeldungsdatum: 26.03.2009 Beiträge: 15
|
Verfasst am: 25.06.2009, 03:56 Titel: |
|
|
Ich hätte wahrscheinlich besser noch angeben sollen, was ich mit den 2 Bildschirmseiten bezwecken wollte.
Ich hatte vor so eine art Hilfeseite auf die eine Seite zu machen, die man dann bei Bedarf einblenden kann und auch wieder ausblenden. Die Hilfeseite verändert sich auch nicht. Die Eingaben finden nur auf der anderen Bildschirmseite statt. |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 25.06.2009, 04:20 Titel: |
|
|
Reden wir hier vom text- oder grafik-modus?
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
AQUA-MAN

Anmeldungsdatum: 26.03.2009 Beiträge: 15
|
Verfasst am: 25.06.2009, 12:27 Titel: |
|
|
Text-Modus, deswegen habe ich ja die Probleme mit der nicht vorhandenen 2. Bildschirmseite in Screen 0, oder gibt es auch einen Grafikmodus in Screen 0? Also bei mir ist zu mindestens alles nur Text.
OK, etwas ausführlicher: Ich hatte vor, am Anfang des Programms auf die nicht sichtbare Bildschirmseite einen Hilfetext zu schreiben, den man dann mitten im Programm anzeigen lassen kann, in dem das Programm sich die Aktuelle Cursorposition merkt und mit Screenset dann die Hilfeseite anzeigt. Nachdem der User fertig ist mit lesen und eine Taste gedrückt hat, sollte wieder auf den vorherigen Bildschirminhalt gewechselt und die Cursorposition wieder hergestellt werden. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 25.06.2009, 19:40 Titel: |
|
|
funktioniert nur mit PCopy:
Code: | Dim a As Integer
'Screen 0,,2
Print "Hauptseite"
Print "wird gleich"
Print "auf Seite 2 kopiert."
PCopy 0,1
a = Locate
Sleep
Cls
Print "Neue Seite"
Sleep
PCopy 1,0
Locate LoWord( HiByte( a ) )
Color 4,15
Print "wieder Hauptseite"
Print "verdisch.."
Sleep
|
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
AQUA-MAN

Anmeldungsdatum: 26.03.2009 Beiträge: 15
|
Verfasst am: 25.06.2009, 20:26 Titel: |
|
|
Vielen Lieben Dank
Funktioniert prächtig, und Locate hatte ich bisher immer nur als Anweisung und nicht als Funktion benutzt, dabei steht es in der Befehlsreferenz als Funktion genau eins drunter.
Ich hatte bisher die Position mit zwei Variablen gespeichert, eine für die Spalte und eine für die Zeile.  |
|
Nach oben |
|
 |
Luke

Anmeldungsdatum: 14.01.2009 Beiträge: 92 Wohnort: Ostfriesland !
|
Verfasst am: 20.07.2009, 16:29 Titel: |
|
|
Wo wir schon bei dabei sind.
Es gibt in Screen 12 leider nur eine Bildschirmseite, aber ich bräuchte eine Zweite.
Ich habe ämlich ein großes und Grafisch anspruchvolles Programm geschrieben und möchte eine flimmerfreie Ziemlich große Animation machen.
kann Man das Irgentwie Machen, Das man doch 2 Bildschirmseiten in Screen 12 Hat? |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 20.07.2009, 16:35 Titel: |
|
|
SCREENRES verwenden |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 21.07.2009, 02:22 Titel: |
|
|
Luke hat Folgendes geschrieben: | Es gibt in Screen 12 leider nur eine Bildschirmseite... | wo hast du das her?
Probiere mal selbst
Code: | DIM a AS INTEGER
SCREEN 12,,2
PRINT "Hauptseite"
PRINT "wird gleich"
PRINT "auf Seite 2 kopiert."
PCOPY 0,1
a = LOCATE
SLEEP
CLS
PRINT "Neue Seite"
SLEEP
PCOPY 1,0
LOCATE LOWORD( HIBYTE( a ) )
COLOR 4,15
PRINT "wieder Hauptseite"
PRINT "verdisch.."
SLEEP |
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 21.07.2009, 12:02 Titel: |
|
|
@volta: Bei QBasic unter DOS mit VGA war das so:
Code: | VGA Screen Modes
The IBM Video Graphics Array (VGA) adapter offers significantly enhanced
text and graphics in all modes.
Rows and Color Page
Mode columns attributes Colors Resolution size Pages
════ ════════ ══════════ ══════ ══════════ ════ ═════
0 40x25 16 64 360x400 8
40x43 16 64 320x350 8
40x50 16 64 320x400 4
80x25 16 64 720x400 8
80x43 16 64 640x350 4
80x43 16 3 720x350 4
80x50 16 64 640x400 4
80x50 16 3 720x400 4
1 40x25 4 16 320x200 16K 1
2 80x25 2 16 640x200 16K 1
7 40x25 16 16 320x200 32K (a)
8 80x25 16 16 640x200 64K (a)
9 80x25 16 64 640x350 128K (a)
80x43 16 64 640x350 128K (a)
10 80x25 4 9 640x350 64K (b)
80x43 4 9 640x350 64K (b)
11 80x30 2 256 640x480 64K 1
80x60 2 256 640x480 64K 1
12 80x30 16 256 640x480 256K 1
80x60 16 256 640x480 256K 1
13 40x25 256 256 320x200 64K 1
───────────────────────────────────────────────────────────────────────
(a) Pages = Screen memory divided by page size. Eight page maximum.
(b) Pages = Screen memory divided by 2 divided by page size. Eight
page maximum. |
(Quelle: MS-QBX 7.1 Hilfe) _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 21.07.2009, 12:22 Titel: |
|
|
Bei FB hast du aber den ganzen RAM für deine Seiten... |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 21.07.2009, 18:09 Titel: |
|
|
Es spricht aber trotzdem nix dagegen, SCREENRES zu verwenden, denn wer kann sich schon unter einer Anweisung wie "SCREEN 18" was vorstellen? ("Welche Auflösung war das noch mal?") _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 21.07.2009, 18:16 Titel: |
|
|
Da ich ständig SCREEN 18 verwende (nur manchmal SCREEN 19), kann ich mir die zugehörige Auflösung schon merken.
Verwende ich aber nur aus Gewohnheit; wüsste tatsächlich nichts, was gegen SCREENRES spricht. SCREEN dient eigentlich nur noch der Abwärtskompatibilität. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Luke

Anmeldungsdatum: 14.01.2009 Beiträge: 92 Wohnort: Ostfriesland !
|
Verfasst am: 21.07.2009, 22:59 Titel: |
|
|
Ich hab jetzt FB.
Hab nur Mega Viele Probleme Mit den Variablen
Die ganzen Dim shared Anweisungen sind Fehlerhaft und z.B DEFIINT A-Z
geht auch nicht.
Die Anweisungen gehören zum Maus treiber 'MOUSE' in QBMonFAQ. Damit kenn ich mich aber nicht aus.
Könnt ihr mir sagen wie ich aus diesem Variablen Schlamassel rauskommen kann.
Welche IDE für FB habt ihr denn? Gibts eine die zumindest fast GENAUSO funzt wie QB?
_______________________________________________________________
Warum ist das ein FB und QB Forum, wenn doch QB_Programme in FB garnicht funktionieren? |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 22.07.2009, 00:24 Titel: |
|
|
Die IDE wird dir bei den Variablen nicht helfen, weil das eine Compiler-Angelegenheit ist. Richtig, DEFxxx funktioniert nicht mehr, und du musst für jede deklarierte Variable explizit festlegen, was für ein Variablentyp es ist. Außerdem gibt es keine Suffixe (!, % usw.) mehr.
Unter FreeBASIC brauchst du aber keinen extra Maustreiber, da gibt es GETMOUSE. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Luke

Anmeldungsdatum: 14.01.2009 Beiträge: 92 Wohnort: Ostfriesland !
|
Verfasst am: 22.07.2009, 02:09 Titel: |
|
|
Danke schön.
Das bringt mich auf alle Fälle weiter!
In FB fuxe ich mich jetzt erstmal rein und Probier mal ein bisschen.
Außerdem gibt es ja noch die Hilfe, und für spezielle Fragen ist ja schließlich dieses Forum da!  |
|
Nach oben |
|
 |
|