Scrollen bei NICHT GUI Fenster
Moderator: Moderatoren
Scrollen bei NICHT GUI Fenster
Ich hab meine Applikation noch nicht komplett auf GUI umgestellt und habe eine Frage:
Kann man bei einem NICHT GUI Fenster auch nach unten und oben scrollen bzw. "umblättern"?
Irgendwo hab ich mal gelesen, dass dies irgendwo geht aber ich weiß nicht mehr wie!
Kann man bei einem NICHT GUI Fenster auch nach unten und oben scrollen bzw. "umblättern"?
Irgendwo hab ich mal gelesen, dass dies irgendwo geht aber ich weiß nicht mehr wie!
Ich meine eigentlich ein ganz normales gutes altes DOS Fenster.
Es werden hier Sitzplätze für Konzerte angezeigt und jetzt hab bei einigen Konzerten mehr Plätze wie mein DOS Fenster anzeigt. Ich kann´s auch nicht größer machen, weil der Kunde eine "Blindenauflösung" von max. 1024x768 hat.
Mit der Maus geht da normalerweise nix, ich müßte mit PageDown usw. arbeiten.
Es werden hier Sitzplätze für Konzerte angezeigt und jetzt hab bei einigen Konzerten mehr Plätze wie mein DOS Fenster anzeigt. Ich kann´s auch nicht größer machen, weil der Kunde eine "Blindenauflösung" von max. 1024x768 hat.
Mit der Maus geht da normalerweise nix, ich müßte mit PageDown usw. arbeiten.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16586
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Josef,
warum nicht einfach mit savescreen() und restscreen() arbeiten?
Bild runter -> savescreen in variable fenster1, fenster neu aufbauen.
Bild hoch -> savescreen in variable fenster2, restscreen von fenster1.
Wenn zwei Fenster nicht reichen, entsprechend mehr - und vielleicht in ein Array, statt in einzelne Variablen ablegen (Länge des Arrays = Anzahl benötigter Fenster).
Viele Grüße,
Martin
warum nicht einfach mit savescreen() und restscreen() arbeiten?
Bild runter -> savescreen in variable fenster1, fenster neu aufbauen.
Bild hoch -> savescreen in variable fenster2, restscreen von fenster1.
Wenn zwei Fenster nicht reichen, entsprechend mehr - und vielleicht in ein Array, statt in einzelne Variablen ablegen (Länge des Arrays = Anzahl benötigter Fenster).
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15710
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 73 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Oder wenn du Zeilenweise scrollen willst einfach die
Inkeywerte von Cursor auf und ab abfragen und eine offsetvariable erhöhen oder senken. Danach alles anzeigen...
ist halt langsamer als die Lösung von Martin.
Inkeywerte von Cursor auf und ab abfragen und eine offsetvariable erhöhen oder senken. Danach alles anzeigen...
Code: Alles auswählen
local aInhalt := { { "Test","Test2 ,....},;
{ "Test","Test2 ,....},;
... }
local x, nOffset := 0, nRow
do while .t.
x := 1 + nOffset
for nRow := 4 to 24
@nRow,1 say aInhalt[x,...]
x++
next
do while .t.
Inkey(0)
do case
case lastkey() = K_ESC
exit
case lastkey() = cursor hoch // in inkey.ch nachsehen
nOffset := max(nOffset-1,0)
exit
case lastkey() = cursor runter
nOffset := min(nOffset++,len(aInhalt)-1)
exit
...
endcase
enddo
if lastkey() = K_ESC
exit
endif
enddo
...
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
Frage : welche Cl*pper "Auflösung" hast du den jetzt ?
25x80 oder 50x80 ?
wenn 50 Zeilen nicht ausreichen, wie wäre es 90 Grad "drehen"
dann könnte man ja sowas wie 50x132 "quer" nehmen.
gruss by OHR
Jimmy
Frage : welche Cl*pper "Auflösung" hast du den jetzt ?
25x80 oder 50x80 ?
wenn 50 Zeilen nicht ausreichen, wie wäre es 90 Grad "drehen"
dann könnte man ja sowas wie 50x132 "quer" nehmen.
Code: Alles auswählen
LOCAL DEF_ROWS := 50
LOCAL DEF_COLS := 132
...
oCrt := XbpCrt():new(oParent ,,aPos , DEF_ROWS, DEF_COLS )
Jimmy
Hallo Martin, Hubert, Jimmy
leider kann ich erst jetzt wieder chatten, weil die "Stirnhöhle" die böse hat mich niedergelegt.
Meine Fenstergröße= 43, 87
höher geht nicht, weil Kunde keine bessere Auflösung will
Ich brauch Platz für 999 Plätze, der erste Bildschirm zeigt bis 820 an, den Rest möcht ich mit z.B. Bild abwärts anzeigen lassen und mit Bild aufwärts wieder den oberen Bereich.
Wie schön erwähnt, ich hatte schon mal sowas geschrieben und finde es nicht mehr!
leider kann ich erst jetzt wieder chatten, weil die "Stirnhöhle" die böse hat mich niedergelegt.
Meine Fenstergröße= 43, 87
höher geht nicht, weil Kunde keine bessere Auflösung will
Ich brauch Platz für 999 Plätze, der erste Bildschirm zeigt bis 820 an, den Rest möcht ich mit z.B. Bild abwärts anzeigen lassen und mit Bild aufwärts wieder den oberen Bereich.
Wie schön erwähnt, ich hatte schon mal sowas geschrieben und finde es nicht mehr!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16586
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Josef,
erstmal gute Besserung!
Was spricht denn gegen den Ansatz mit savescreen() und restscreen()?
Viele Grüße,
Martin
erstmal gute Besserung!
Was spricht denn gegen den Ansatz mit savescreen() und restscreen()?
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.