PofoWiki

Die ultimative Informationsquelle zum ATARI Portfolio

Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:diy:basic:diy:basic:pbgk:src_filsel

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

software:diy:basic:diy:basic:pbgk:src_filsel [24/08/2008 20:08] – angelegt uxtsoftware:diy:basic:diy:basic:pbgk:src_filsel [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
 +====== Dateiauswahl als Menü ======
 +
 +Es folgt ein Beispiel, wie man mit PBASICs Menü-Befehl ein Dateiauswahlmenü erstellen kann.
 +
 +Als erstes mache man sich eine Feldvariable die die Liste aller Dateien enthalten soll, im folgenden Beispiel reichen 50 Dateien (DIM FN$(50)). Ganz oben in der Liste (FN$(0)) platzieren wir den Titel des Menüs "Dateien". Dann folgt die erste Datei (FN$(1)). Mit dem FINDNEXT$-Befehl laden wir alle weiteren Dateinamen in einer FOR-NEXT-Schleife. Wenn ein Dateiname leer ist, so gibt es keine weitere Datei und die Liste ist vollständig (I wird um eins verringert und ist somit die Anzahl an Dateien), das Menu kann aufgerufen werden (Zeilennummer 20).
 +
 +MC=MENU(2,25,5,0,0,-I-1,FN$(0))
 +
 +Zuerst stehen die Koordinaten der Menüposition (Zeile 2, Spalte 25).\\ Die 5 steht für die tiefe des Menüs (wieviele Dateinamen im Fenster sichtbar sind).\\ Die beiden nächsten Werte bestimmen die Position des Cursors innerhalb der Liste, zuerst die Nummer der Datei die in der ersten Zeile stehen soll, dann die Nummer der Datei auf die der Cursor zeigen soll. -I-1 ist die Anzahl der Menüoptionen, sie ist negativ um anzuzeigen, dass die nächste Angabe eine Feldvariable ist.\\ Wenn der MENU-Befehl eine -1 zurückgibt, dann hat der Benutzer die Escape-Taste gedrückt.\\ Wenn die ausgewählte Datei im obersten Bereich des Menüs (unter den ersten sichtbaren Dateinamen ohne zu scrollen) ist so ist der zurückgegebene Wert kleiner als 256 und kann direkt als Ordinalzahl in der Liste verwendet werden. Wenn eine Datei erst nach Scrollen erreicht wurde, so ist der Wert größer als 255. Die Ordinalzahl in der Liste ist dann der Modulo des Werts (MC=MC%256).\\ Am Ende des Programms wird der Name der ausgewählten Datei angezeigt.
 +
 +
 +<code SDLbasic>
 +10 REM Dateiauswahl als Menü
 +DIM FN$(50)                      :REM maximal 50 Dateien
 +FN$(0)="Dateien"             :REM Menütitel
 +FN$(1)=FINDFILE$("*.*"         :REM erste Datei
 +FOR I=2 TO 50             :REM Schleife für weitere Dateien
 + FN$(I)=FINDNEXT$             :REM nächste Datei
 + IF FN$(I)="" THEN I=I-1:GOTO 20 :REM letzte DATEI?
 +NEXT I
 +20 REM END OF LIST             :REM Liste komplett
 +MC=MENU(2,25,5,0,0,-I-1,FN$(0))  :REM Menüaufruf
 +IF MC=-1 THEN END      :REM Escape gedrückt?
 +IF MC>255 THEN MC=(MC%256)      :REM Ordinalzahl ermitteln
 +?FN$(MC+1)                       :REM Name zeigen
 +END
 +</code>