Einsteigerfragen zur PROFAN Programmierung
  Suchen
 Zurück zur Übersicht
 AutorThema: Menü
Frank Thomas
Datum:01.09.02 11:42 Antwortenals Email verschicken  


Hallo Leute,
ist es möglich in Profan ein Menü zu erstellen, das aus einer Externen Datei erstellet wird ?
z.B. Eine (ini) oder (txt) Datei, kleines Beispiel.
--------------------
test.txt : Inhalt
--------------------
HauptMenü1
Eintrag1.1

HauptMenü2
Eintrag2.1

HauptMenü3
Eintrag3.1
--------------------
Das im Programm so ausehen sollte.
HauptMenü1 --> Eintrag1.1
HauptMenü2 --> Eintrag2.1
HauptMenü3 --> Eintrag3.1

Ich hoffe das es verstädlich rüber gekommen ist ;)

Gruß
Frank Thomas


Martin Pohl
Datum:31.08.02 15:16 Antwortenals Email verschicken (martin_pohl@msn.com) 


Das machst du so:

Declare Eintrag1$
Let Eintrag1$=@ReadIni$(".\options.ini","Menue1","Eintrag1")
PopUp "Hauptmenü 1"
AppendMenu 10,Eintrag1$

Das machst du einfach mit allen Menü-Einträgen.


Frank Thomas
Datum:05.09.02 16:28 Antwortenals Email verschicken  


Hallo Martin,
so habe ich es mir schon gedacht.
Aber wie kann ich dann die Menüs abfragen, wen ich nicht weis welcher Eintrag nun welche nummer bekommen hat ?
Ich bau in der Schleife ein Zähler ein, der immer um +1 zählt.
Somit hat jeder Eintrag eine eigene nummer, aber ich kann nicht auswerten wer nun welche nummer hat.
Hast Du da auch eine lösung ?
MfG
Frank


Martin Pohl
Datum:05.09.02 16:01 Antwortenals Email verschicken (martin_pohl@msn.com) 


Indem du den Namen, die du aus der INI-Datei liest bestimmte Nummern zuweist:

' Deklarieren nicht vergessen!
Declare Eintrag1$,Eintrag1$,Eintrag3$

' Namen aus der INI lesen
Let Eintrag1$=@ReadIni$(".\options.ini","Menue1","Eintrag1")
Let Eintrag2$=@ReadIni$(".\options.ini","Menue2","Eintrag2")
Let Eintrag3$=@ReadIni$(".\options.ini","Menue3","Eintrag3")

' Menü erstellen
' Eintrag1$ wird nur angezeigt, wenn in der INI bei Eintrag1 der Text "Ich bin Eintrag1" steht
PopUp "Hauptmenü 1"
Case @Equ$(Eintrag1$,"Ich bin Eintrag1") : AppendMenu 1,Eintrag1$

PopUp "Hauptmenü 2"
Case @Equ$(Eintrag2$,"Ich bin Eintrag2") : AppendMenu 2,Eintrag2$

PopUp "Hauptmenü 3"
Case @Equ$(Eintrag3$,"Ich bin Eintrag3") : AppendMenu 3,Eintrag3$

' Schleife, die nur mit "End" verlassen werden kann
While 1
WaitInput
If @Equ(%Key,2)
End
ElseIf @MenuItem(1)
MessageBox "Eintrag1 wurde ausgewählt"
ElseIf @MenuItem(2)
MessageBox "Eintrag2 wurde ausgewählt"
ElseIf @MenuItem(3)
MessageBox "Eintrag3 wurde ausgewählt"
EndIf
EndWhile
End


Frank Thomas
Datum:05.09.02 18:27 Antwortenals Email verschicken  


Hallo Martin,
ich benutze jetzt *.txt Files.
Zeile für Zeile einlesen haut super hin und eine eigene nummer bekommen sie auch schon :)
Nun habe ich gedacht das ich mir ein Array anlege und sie da nach und nach reinschreibe.
Das geht auch super, allerdings kommt ein Fehler in meiner Abfrage welcher eintrag gewäht wurde.
Ich bekomme immer ein wert von Plus (1) und bekomme es auch nicht wech.
Hier mal ein Auszug der Abfrage :
--------------------------------------
ElseIf @GT(%menuitem,9)
Let Array% = %menuitem
Let X% = 1
@SUB(Array%,X%)
Let Array$ = @LIST$(Array%)
Print Array$
--------------------------------------
Wie man sieht, versuche ich Array% um -1 zu setzen, geht aber trotzdem nicht :(
Gruß
Frank


Martin Pohl
Datum:05.09.02 18:27 Antwortenals Email verschicken (martin_pohl@msn.com) 


Arrays machst du in Profan² anders. Ein String-Array wird folgendermaßen DIMensioniert:
Dim$ 499
Dadurch erhältst du 500 String-Arrays. Mit List$ X,Y teilst du den einzelnen Arrays Werte zu. Mit @List(X) liest du die Werte wieder aus. Diese Form der Arrays gibt es in PRF 5.0. Wenn du eine neuere Version hast, dann ist das vieleicht anders.


Frank Thomas
Datum:05.09.02 18:31 Antwortenals Email verschicken  


Hallo Martin,
das weis ich doch, das war doch nur ein kurzer auszug :)
Habe es mit (DIM$ 499) gemacht und wie gesagt hauts auch hin.
Nur in der Abfrage kommt immer Plus 1 :(((
Wen ich Menüeintrag 1 klick, kommt das Ergebnis Menüeintrag 2 geklickt.

MfG
Frank


Jörg Sellmeyer
Datum:05.09.02 22:27 Antwortenals Email verschicken (joerse@gmx.de) 


Hallo Frank,
Du hast bei Deinem Rechenweg einen kleinen aber entscheidenden Fehler gemacht:
Nicht:
@SUB(Array%,X%)
Sondern:
Let Array%=@SUB(Array%,X%)
ODER:
Sub Array%,X%

Gruß
Jörg


Frank Thomas
Datum: 06.09.02 07:18 Antwortenals Email verschicken  


Hallo Jörg,
Vorschlag 1 geht nicht, aber 2 haut hin.
Danke Dir.

Gruß
Frank


 Zurück zur Übersicht
 

 Ein kostenloses WebMart Forum
WebMart Homepage Tools kostenlos
Shortwin - denn Glück ist kein Zufall!