TEXT WINDOWS COMMANDS

De commando's in dit onderwerp werken met tekstvensters en texteditor controls.
Alles dat naar een tekstvenster wordt gezonden wordt precies zo getoond als verzonden.
Om de commando's die naar een tekstvenster worden verzonden van
gewone tekst (die gewoon getoond moet worden) te kunnen onderscheiden
moet het ! karakter als het eerste karakter in de string moeten staan.
Het is niet meer noodzakelijk om een puntkomma aan het eind
van een geprinte commando regel toe te voegen om een tussenregel te onderdrukken.
De puntkomma aan het eind van een print commando is nu facultatief.
Bij het printen van tekst, in plaats van een commando, wordt een standaard
een nieuwe regel toegevoegd aan de tekst met elke print statement,
tenzij de statement met een puntkomma beëindigt.

Nieuw voor Liberty BASIC 4.01: muis wiel scrollen wordt nu ondersteund in tekstvensters en texteditors.

Nota: voor instructies bij het verzenden van tekst naar de printer, zie LPRINT.

Voor meer gedetailleerde instructies over de string functies,
zie de sectie over het gebruik van teksten.

Het gebruiken van variabelen in tekstbevelen:

Letterlijke waarden dienen binnen de aanhalingstekens te worden geplaatst:
print #handle, "!line 3 string$"

Gewone variabelen moeten buiten de aanhalingstekens worden geplaatst,
waarbij rekening gehouden moet worden met noodzakelijke spaties:
lineNum=3
print #handle, "!line ";lineNum;" string$"

See also: Understanding Syntax - how to use literals and variables in commands.

Bijvoorbeeld:

'open a text window

    open "Example" for text as #1 

'print Hello World in the window     

    print #1, "Hello World"       

'change the text window's font     

    print #1, "!font helv 16 37"   

'read line 1   

    print #1, "!line 1"               

    input #1, string$

    print "The first line is:"

    print string$

    input "Press 'Return'"; r$

'close the window

    close #1 

Juist gebruik van puntkomma's en het "print" commando.
In het volgende voorbeeld, worden de puntkomma's weggelaten bij de print bevelen.
Zij worden gebruikt om een begin van een nieuwe regel te onderdrukken bij het printen van tekst.
Het is ook mogelijk om het woord "print" weg te laten en
ook de komma na de "handle" weg te laten wanneer u print naar een tekstvenster of texteditor.
Dit betekent dat het woord "print" en de komma achter de "handle" facultatief is.

nomainwin

open "Example" for text as #1

print #1, "!trapclose [quit]"

' begin nieuwe regel die door puntkomma wordt onderdrukt (carriage return suppressed by semicolon):
print #1, "Hello";


'deze regel heeft wel een carriage return:
#1 " World"


'bij dit commando ontbreekt het woord  'print'
#1 "!font courier_new 12"
'print some more text into the window, no carriage return:
print #1, "This is a font called ";


'print text with carriage returns:
print #1, "courier_new."


'blank line:
print #1, ""


#1 "Done!"

wait

[quit]

close #1 : end

Noteer: De meeste commando's die hierna volgen werken met
vensters van type "tekst" en ook met de "texteditor" control ,
uiteraard behalve daar waar het tegendeel is vermeld.

Hier zijn de commando's voor het tekstvenster:


print #handle, "!cls" ;
Dit commando wist alle tekst uit een tekst venster.


print #handle, "!contents varname$";
print #handle, "!contents #handle";
Zoals hierboven beschreven  kent dit commando twee vormen.
De eerste vorm zorgt ervoor dat de inhoud van het tekstvenster worden vervangen
door de inhoud van varname$, en de tweede vorm zorgt ervoor dat 
de inhoud van het tekstvenster worden vervangen met de inhoud 
van de stroom gegevens die door #handle van verwijzingen wordt voorzien.
Deze tweede vorm is nuttig om snel grote tekstbestanden in het venster in te lezen.

Hier is een voorbeeld van de tweede vorm:

      open "Contents of AUTOEXEC.BAT" for text as #aetext

      open "C:\AUTOEXEC.BAT" for input as #autoexec

      print #aetext, "!contents #autoexec";

      close #autoexec

      'stop here

      input a$

print #handle, "!contents? string$";
Dit commando keert met de volledige tekst van het venster terug. 
Nadat dit commando wordt gegeven, zit de volledige tekst in de variabele string$.

print #handle, "!copy" ;
Dit commando zorgt ervoor dat de momenteel geselecteerde tekst worden gekopieerd 
naar het klembord van WINDOWS.

print #handle, "!cut" ;
Dit commando zorgt ervoor dat de momenteel geselecteerde tekst van het tekstvenster 
wordt verwijderd en wordt gekopieerd naar het klembord van WINDOWS.

print #handle, "!font fontName pointsize" ;
Dit commando stelt het lettertype van het tekst venster in 
op de gespecificeerde font naam en de font grootte. 
Als een nauwkeurige gelijke lettertype niet kan worden gevonden, 
dan zal Liberty BASIC proberen om een dichtstbijzijnde gelijke te matchen, 
waarbij grootte belangrijker is dan hoe het eruit ziet (gezicht.) 
Let op, dat een lettertype naam  "font" die uit meer dan één woord bestaat opgegeven wordt 
door de aparte woordjes te koppelen met een "underscore _ character" 
Zo zal bijvoorbeeld het font 
Times New Roman worden Times_New_Roman, en het font 
Courier New wordt Courier_New.
 
Voorbeeld:
print #handle, "font Times_New_Roman 10"
Voor meer over het specificeren van fonts lees How to Specify Fonts


print #handle, "!insert varname$";

Dit commando plaatst de inhoud van de variabele op de huidige inlasteken 
(tekstcursor) positie, en de selectie wordt benadrukt.

print #handle, "!line n string$" ;
Keert terug met de tekst bij regel n. In de code hierboven, staat  n een letterlijk getal.
Als n kleiner is dan één of groter is dan het aantal regels dat het tekstvenster bevat, 
dan wordt met "" (een lege string) teruggekeerd. 
Nadat dit commando wordt gegeven, staat de tekst van de regel in de variabele string$.

Deze voorbeeld code vindt de inhoud van regel nummer 7 en plaatst die 
in een variabele genaamd string$:
    print #textwindow, "!line 7 string$"

print #h, "!lines countVar" ;
Dit commando keert met het aantal regels die in het tekstvenster staan terug, 
de waarde wordt geplaatst in de variabele countVar. 

print #handle, "!modified? answer$" ;
Dit commando keert met een string (of "true" of "false") terug dat erop wijst 
of er enig gegeven in het tekstvenster is gewijzigd. In variabele answer$ staat de  
string (true - false). Dit is nuttig om te kunnen controleren of de inhoud van
het venster nog bewaard moet worden alvorens het af te sluiten.

print #h, "!origin? columnVar rowVar" ;
Dit commando zorgt ervoor dat de huidige oorsprong van het tekstvenster wordt opgeslagen.
De oorsprong is de linker bovenhoek van texteditor of textwindow.  
Wanneer een tekstvenster voor het eerst wordt geopend, zou het resultaat rij 1, kolom 1 zijn.
Het resultaat van het commando staat in de variabelen columnVar en rowVar.

print #handle, "!origin column row" ;
Dit commando dwingt de oorsprong van het venster column en row te zijn. 
Dit betekent dat de gespecificeerde kolom en rij de linker bovenhoek van het texteditor of tekstvenster zal zijn.
De rij en de kolom moeten letterlijke getallen zijn. 
Om variabelen voor deze waarden te gebruiken, moet men ze buiten de aanhalingstekens plaatsen,
en daarbij tevens de spaties tussen de variabelen bewaren:
print #handle, "!origin ";column;" ";row

print #handle, "!paste" ;
Dit zorgt ervoor dat de tekst uit het klembord van VENSTERS (als er tekst in zit) 
zal worden geplakt in het tekstvenster op de huidige cursorpositie.
 

print #handle, "!select column row" ;
Dit commando zet de knipperende cursor op positie column row. 
De kolom en de rij moeten letterlijke getallen zijn.  
Om hen als variabelen uit te drukken, moet men de variabelen buiten de aanhalingstekens plaatsen 
en daarbij de bijbehorende spaties handhaven zoals hier:
print #handle, "!select ";column;" ";row


print #handle, "!selectall" ;
Dit zorgt ervoor dat alles in het tekstvenster wordt geselecteerd (benadrukt).


print #handle, "!selection? selected$" ;
Dit commando keert met de benadrukte tekst van het venster terug.
Het resultaat zal in variabele selected$ zitten.


print #handle, "!setfocus";
Dit zorgt ervoor dat Windows om de inputnadruk aan deze "control" geeft. 
Dit betekent dat, als een andere control in hetzelfde venster actief en benadrukt werd,
deze "control" nu de benadrukte en actieve "control" wordt, die toetsenbordinput ontvangt.


print #handle, "!trapclose branchLabel" ;
Dit bevel vertelt Liberty BASIC om uitvoering van het programma bij sub branchLabel 
voort te zetten als de gebruiker dubbelklikt op het afsluitkruisje van het systeemmenu 
of via het pulldown menu „close“ selecteert.