Autor | Thema: Menue-Einbindung, Probleme | | Datum:22.09.02 21:44 
(frank.sappert@t-online.de) | |
Hallo erstmal,
ich bin Neueinsteiger in PROFAN und hoffe, Ihr könnt mir weiterhelfen, da ich in der Hilfe nicht weiterkomme.
Ich habe ein Menue gebastelt, das ich mit WaitKey abfrage. Dabei springe ich durch If-Abfragen in PROC.
Wenn ich in der Procedur bin, kann ich das Menue nicht mehr ansteuern.
Welche Möglichkeit gibt es, das Menue IMMER verfügbar zu haben, d.h. "aus allen Lagen" auch ich Unterprogrammen zu gebrauchen?
Grüße, Frank.
|
| | Datum:22.09.02 22:47 
(joerse@gmx.de) | |
Hallo Frank,
Es kommt darauf an, was Deine Prozedur macht. Normalerweise wird eine Prozedur
aufgerufen und nach Erledigung der Aufgabe wieder verlassen.
Wenn aber lange Rechenoperationen anstehen, oder eine Schleife mit viele Durchläufen
abgeabeitet wird, dauert es halt.
Profan kann keine zusätzlichen Threads erzeugen. Eine Möglichkeit wäre, in Deiner
Prozedur eine Menüabfrage einzubauen, aber das bremst natürlich.
Vieleicht postest Du mal ein Stück von Deinem Code.
Gruß
Jörg
|
| | Datum:23.09.02 19:41 
(frank.sappert@t-online.de) | |
Hallo.
Danke erstmal!
Ich werde zur gegebenen Zeit mal ein Stück Code posten.
Wie gesagt, ich bin noch ganz am Anfang und probiere die Funktionen aus.
Ein neues Problem:
Ich habe über den Bildschirm-Helfer Textboxes, Radioboxes u.a. gebastelt.
Es baut sich auch ein Bildschirm auf.
Nun möchte ich den Bildschirm wieder löschen, aber es klappt nicht mit CLS. Ich habe schon die ganze Hilfe durchforstet und DESTROYWINDOW gefunden.
Für Hilfe wäre ich dankbar, Frank-
|
| | Datum:23.09.02 20:01 
(martin_pohl@msn.com) | |
Hallo, Frank!
1. Verwende statt WaitKey lieber WaitInput
2. Wenn in deiner Proc ein neues Fenster oder ein Dialog erstellt wird, dann musst das Hauptfenster mit folgender Zeile erst wieder in den Vordergrund holen:
@SetActiveWindow(%HWnd)
|
| | | Datum:23.09.02 20:23 
(frank.sappert@t-online.de) | |
Funktioniert leider nicht, hier der Code:
proc anzeige
declare _ende%
declare GGruppe1%
declare RadioSalbe%
declare RadioCreme%
declare ListeTest%
windowstyle $1C
window 112,88-696,464
let GGruppe1%=@creategroupbox(%HWnd,"Gruppe 1",72,48,208,168)
let RadioSalbe%=@createradiobutton(%HWnd,"Salbe",88,80,16,16)8
let RadioCreme%=@createradiobutton(%HWnd,"Creme",88,112,16,16)0
let ListeTest%=@createlistbox(%HWnd,"Test",416,56,152,56)64
let _ende% = 0
whilenot _ende%
waitinput
if @equ(%key,4)
' Größe verändert
elseif @getfocus(GGruppe1%)
' Aktion noch nicht definiert!
elseif @getfocus(RadioSalbe%)
@SetActiveWindow(%HWnd)
return
elseif @getfocus(RadioCreme%)
' Aktion noch nicht definiert!
elseif @getfocus(ListeTest%)
' Aktion noch nicht definiert!
endif
wend
endproc
windowtitle "Fenster-Test"
window 112,48-696,464
anzeige
waitinput
WaitInput
WaitInput
end
|
| | Datum:23.09.02 20:28 
(frank.sappert@t-online.de) | |
Bei Return wird PROC testmäßig abgebrochen, um ins Hauptprogramm zu gelangen.
Außerdem werden die Radiobeschriftungen und Testfeldeintrag nicht angezeigt.
Grüße, Frank
|
| | Datum: 23.09.02 20:50 
(martin_pohl@msn.com) | |
Ohje, ohje!
Was hast du denn da gemacht?
1. Du verwendest 2mal den Befehl Window! Das darf nicht sein!
2. Du verwendest mehrfach hintereinander WaitInput
Hier ist der hoffentlich funktionierende Code:
proc anzeige
declare _ende%,GGruppe1%,RadioSalbe%,RadioCreme%,ListeTest%
windowstyle $1C
window 112,88-696,464
let GGruppe1%=@creategroupbox(%HWnd,"Gruppe 1",72,48,208,168)
let RadioSalbe%=@createradiobutton(%HWnd,"Salbe",88,80,16,16)
let RadioCreme%=@createradiobutton(%HWnd,"Creme",88,112,16,16)
let ListeTest%=@createlistbox(%HWnd,"Test",416,56,152,56)
let _ende% = 0
whilenot _ende%
waitinput
If @Equ(%Key,2)
End
elseif @getfocus(RadioSalbe%)
return
elseif @getfocus(RadioCreme%)
' Aktion noch nicht definiert!
elseif @getfocus(ListeTest%)
' Aktion noch nicht definiert!
endif
wend
endproc
anzeige
end
|
|
|