Hallole Ihr, ich hoffe ihr seid alle gut rübergerutscht ins Neue Jahr 2007.
Nachträglich noch alles Gute und die besten Wünsche.
Ich bin mit meinem Problem, der verzögerten Anzeige in einem Fenster, nicht weitergekommen. Was ich auch probiert habe - es klappt nicht, oder nur im 1. Durchlauf.
Warum kann ich nicht in das "#Erinnerungsfenster" den Text "#Erinnerungsfenster_txt2" schreiben.
Ich will den Text später verzögert anzeigen, deshalb versuche ich den Text in einem anderen Programteil in das Fenster "#Erinnerungsfenster" zu schreiben. Aber die ganzen Abfragen im Hauptprogram führen nicht zum Ziel.
Hier ist mal die 1. Version
Code: Alles auswählen
Enumeration ; Windows
#Eingangsfenster
#Erinnerungsfenster
EndEnumeration
Enumeration ; Gadgets
; Eingangsfenster
#Eingangsfenster_txt1
#Eingangsfenster_txt2
#Eingangsfenster_imagIT
#Eingangsfenster_txt3
#Eingangsfenster_txt4
#Eingangsfenster_txt5
#Eingangsfenster_txt6
#Eingangsfenster_butWeiter
; Erinnerungsfenster
#Erinnerungsfenster_imag1
#Erinnerungsfenster_txt1
#Erinnerungsfenster_imag2
#Erinnerungsfenster_txt2
EndEnumeration
Global anzeigezeitl.l, versteckzeitl.l
Procedure Open_Eingangsfenster()
If OpenWindow(#Eingangsfenster,400,300,330,220,"İtalyanca - Release 2.0",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar )
EndIf
If LoadFont(1, "Arial", 10)
SetGadgetFont(#PB_Default, FontID(1))
EndIf
If LoadImage(0, "I.bmp")
LoadImage(1, "D.bmp")
EndIf
If CreateGadgetList(WindowID(#Eingangsfenster))
TextGadget(#Eingangsfenster_txt1, 10,10, 230, 30, "Giuseppe, bana İtalyanca öğrettiğin")
TextGadget(#Eingangsfenster_txt2, 10,40,200, 30, "için çok teşekkür ederim.")
ImageGadget(#Eingangsfenster_imagIT, 250,10,10, 10,ImageID(0))
TextGadget(#Eingangsfenster_txt3, 250,70, 350, 30, "Saygılar")
TextGadget(#Eingangsfenster_txt4, 250,100, 350, 30, "Michael")
TextGadget(#Eingangsfenster_txt5, 10,130, 220, 30, "Şu anda programın kelime hazinesi: ")
TextGadget(#Eingangsfenster_txt6, 250,130, 150, 30, "")
ButtonGadget(#Eingangsfenster_butWeiter, 35, 170, 250, 30, "Devam etmek için tıklayın")
EndIf
If ReadFile(1,"Wortschatz.dat")
laengel.l= Lof(1)
zeilenanzahlw.w=laengel.l/162
zeilenanzahls.s= StrU((zeilenanzahlw.w), #Word)
SetGadgetText(#Eingangsfenster_txt6,zeilenanzahls.s)
CloseFile(1)
EndIf
EndProcedure
Procedure Open_Erinnerungsfenster_italienisch_turkisch()
If OpenWindow(#Erinnerungsfenster,50,100,300,130,"Hatırlatma pencere")
If LoadFont(1, "Arial", 15)
SetGadgetFont(#PB_Default, FontID(1))
EndIf
If CreateGadgetList(WindowID(#Erinnerungsfenster))
ImageGadget(#Erinnerungsfenster_imag1, 10,10,10, 10,ImageID(0))
TextGadget(#Erinnerungsfenster_txt1, 90, 20, 200, 50, "")
ImageGadget(#Erinnerungsfenster_imag2, 10,70,10, 10,ImageID(1))
TextGadget(#Erinnerungsfenster_txt2, 90,80, 200, 50, "")
EndIf
EndIf
EndProcedure
Procedure Open_Versteckfenster_italienisch_turkisch()
Static zeit
If ElapsedMilliseconds() > zeit
zeit = ElapsedMilliseconds() + anzeigezeitl.l + versteckzeitl.l
If ReadFile(1,"Wortschatz.dat")
laengel.l= Lof(1)
zeilenanzahlw.w=laengel.l/162
zeilenanzahls.s= StrU((zeilenanzahlw.w), #Word)
zufallszeilennummerw.w= Random(zeilenanzahlw.w-1)
FileSeek(1,zufallszeilennummerw.w*162)
wert1s.s= StrU((zufallszeilennummerw.w+1), #Word)
wert2s.s=ReadString(1)
italienischs.s=Left(wert2s.s,40)
tuerkischs.s=Mid(wert2s.s,41, 40)
deutschs.s=Mid(wert2s.s,81, 40)
englischs.s=Mid(wert2s.s,121, 40)
CloseFile(1)
EndIf
SetWindowState(#Erinnerungsfenster, #PB_Window_Normal)
StickyWindow(#Erinnerungsfenster,1);Fenster immer im Vordergrund
Else
SetWindowState(#Erinnerungsfenster, #PB_Window_Minimize)
EndIf
SetGadgetText(#Erinnerungsfenster_txt1,italienischs.s)
EndProcedure
Procedure hauptprogramm()
Protected quit.l
Protected Ereignis.l
Protected EreignisGadget.l
Protected EreignisWindow.l
Open_Eingangsfenster()
Repeat
Ereignis = WaitWindowEvent()
EreignisGadget = EventGadget()
EreignisWindow = EventWindow()
Select Ereignis
Case #PB_Event_CloseWindow
Select EreignisWindow
Case #Eingangsfenster : quit =1
Case #Erinnerungsfenster : quit =1
EndSelect
Case #PB_Event_Gadget
Select EreignisWindow
Case #Eingangsfenster
Select EreignisGadget
Case #Eingangsfenster_butWeiter
Open_Erinnerungsfenster_italienisch_turkisch()
SetWindowState(#Eingangsfenster, #PB_Window_Minimize)
DisableGadget(#Eingangsfenster_butWeiter,1)
anzeigezeits.s= "4"
versteckzeits.s= "2"
anzeigezeitl.l= Val(anzeigezeits.s)*1000
versteckzeitl.l= Val(versteckzeits.s)*1000
SetTimer_(Open_Erinnerungsfenster_italienisch_turkisch(),1,anzeigezeitl.l,@Open_Versteckfenster_italienisch_turkisch())
EndSelect
Case #Erinnerungsfenster ;hier frage ich saemtliche Gadgetereignise ab - aber ohne Wirkung
Select EreignisGadget
Case #Erinnerungsfenster_txt1
SetGadgetText(#Erinnerungsfenster_txt2,deutschs.s)
Case #Erinnerungsfenster_imag1
SetGadgetText(#Erinnerungsfenster_txt2,deutschs.s)
Case #Erinnerungsfenster_imag2
SetGadgetText(#Erinnerungsfenster_txt2,deutschs.s)
EndSelect
Select EreignisWindow ; das Fenster wird doch von minimiert zu normal gemacht, müsste doch ein Ereignis abgeben
Case #Erinnerungsfenster
SetGadgetText(#Erinnerungsfenster_txt2,deutschs.s)
EndSelect
EndSelect
EndSelect
Until quit=1
EndProcedure
hauptprogramm()
End
Und hier habe ich noch einen Versuch mit einem Threat. Aber da klappt es nur beim 1. Durchlauf. Danach findet keine verzögerte Anzeige mehr statt - warum?
Code: Alles auswählen
Enumeration ; Windows
#Eingangsfenster
#Erinnerungsfenster
EndEnumeration
Enumeration ; Gadgets
; Eingangsfenster
#Eingangsfenster_txt1
#Eingangsfenster_txt2
#Eingangsfenster_imagIT
#Eingangsfenster_txt3
#Eingangsfenster_txt4
#Eingangsfenster_txt5
#Eingangsfenster_txt6
#Eingangsfenster_butWeiter
; Erinnerungsfenster
#Erinnerungsfenster_imag1
#Erinnerungsfenster_txt1
#Erinnerungsfenster_imag2
#Erinnerungsfenster_txt2
EndEnumeration
Global anzeigezeitl.l, versteckzeitl.l
Procedure Open_Eingangsfenster()
If OpenWindow(#Eingangsfenster,400,300,330,220,"İtalyanca - Release 2.0",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar )
EndIf
If LoadFont(1, "Arial", 10)
SetGadgetFont(#PB_Default, FontID(1))
EndIf
If LoadImage(0, "I.bmp")
LoadImage(1, "D.bmp")
EndIf
If CreateGadgetList(WindowID(#Eingangsfenster))
TextGadget(#Eingangsfenster_txt1, 10,10, 230, 30, "Giuseppe, bana İtalyanca öğrettiğin")
TextGadget(#Eingangsfenster_txt2, 10,40,200, 30, "için çok teşekkür ederim.")
ImageGadget(#Eingangsfenster_imagIT, 250,10,10, 10,ImageID(0))
TextGadget(#Eingangsfenster_txt3, 250,70, 350, 30, "Saygılar")
TextGadget(#Eingangsfenster_txt4, 250,100, 350, 30, "Michael")
TextGadget(#Eingangsfenster_txt5, 10,130, 220, 30, "Şu anda programın kelime hazinesi: ")
TextGadget(#Eingangsfenster_txt6, 250,130, 150, 30, "")
ButtonGadget(#Eingangsfenster_butWeiter, 35, 170, 250, 30, "Devam etmek için tıklayın")
EndIf
If ReadFile(1,"Wortschatz.dat")
laengel.l= Lof(1)
zeilenanzahlw.w=laengel.l/162
zeilenanzahls.s= StrU((zeilenanzahlw.w), #Word)
SetGadgetText(#Eingangsfenster_txt6,zeilenanzahls.s)
CloseFile(1)
EndIf
EndProcedure
Procedure Open_Erinnerungsfenster_italienisch_turkisch()
If OpenWindow(#Erinnerungsfenster,50,100,300,130,"Hatırlatma pencere")
If LoadFont(1, "Arial", 10)
SetGadgetFont(#PB_Default, FontID(1))
EndIf
If CreateGadgetList(WindowID(#Erinnerungsfenster))
ImageGadget(#Erinnerungsfenster_imag1, 10,10,10, 10,ImageID(0))
TextGadget(#Erinnerungsfenster_txt1, 90, 20, 200, 50, "")
ImageGadget(#Erinnerungsfenster_imag2, 10,70,10, 10,ImageID(1))
TextGadget(#Erinnerungsfenster_txt2, 90,80, 200, 50, "")
EndIf
EndIf
EndProcedure
Procedure Erinnerungsfenster_txt2(interval)
If LoadFont(1, "Arial", 10)
SetGadgetFont(#PB_Default, FontID(1))
EndIf
Delay(interval)
SetGadgetText(#Erinnerungsfenster_txt2,"deutschs.s")
EndProcedure
Procedure Open_Versteckfenster_italienisch_turkisch()
Static zeit
If ElapsedMilliseconds() > zeit
zeit = ElapsedMilliseconds() + anzeigezeitl.l + versteckzeitl.l
If ReadFile(1,"Wortschatz.dat")
laengel.l= Lof(1)
zeilenanzahlw.w=laengel.l/162
zeilenanzahls.s= StrU((zeilenanzahlw.w), #Word)
zufallszeilennummerw.w= Random(zeilenanzahlw.w-1)
FileSeek(1,zufallszeilennummerw.w*162)
wert1s.s= StrU((zufallszeilennummerw.w+1), #Word)
wert2s.s=ReadString(1)
italienischs.s=Left(wert2s.s,40)
tuerkischs.s=Mid(wert2s.s,41, 40)
deutschs.s=Mid(wert2s.s,81, 40)
englischs.s=Mid(wert2s.s,121, 40)
CloseFile(1)
SetGadgetText(#Erinnerungsfenster_txt1,italienischs.s)
thread = CreateThread(@Erinnerungsfenster_txt2(), 2000)
EndIf
SetWindowState(#Erinnerungsfenster, #PB_Window_Normal)
StickyWindow(#Erinnerungsfenster,1);Fenster immer im Vordergrund
Else
SetWindowState(#Erinnerungsfenster, #PB_Window_Minimize)
EndIf
EndProcedure
Procedure hauptprogramm()
Protected quit.l
Protected EventID.l
Protected EventGadget.l
Protected EventWindow.l
Open_Eingangsfenster()
Repeat
EventID = WaitWindowEvent()
EventGadget = EventGadget()
EventWindow = EventWindow()
Select EventID
Case #PB_Event_CloseWindow
Select EventWindow
Case #Eingangsfenster : quit =1
Case #Erinnerungsfenster : quit =1
EndSelect
Case #PB_Event_Gadget
Select EventWindow
Case #Eingangsfenster
Select EventGadget
Case #Eingangsfenster_butWeiter
Open_Erinnerungsfenster_italienisch_turkisch()
SetWindowState(#Eingangsfenster, #PB_Window_Minimize)
DisableGadget(#Eingangsfenster_butWeiter,1)
anzeigezeits.s= "4"
versteckzeits.s= "2"
anzeigezeitl.l= Val(anzeigezeits.s)*1000
versteckzeitl.l= Val(versteckzeits.s)*1000
SetTimer_(Open_Erinnerungsfenster_italienisch_turkisch(),1,anzeigezeitl.l,@Open_Versteckfenster_italienisch_turkisch())
EndSelect
EndSelect
EndSelect
Until quit=1
EndProcedure
hauptprogramm()
End
Vielen Dank schon mal im Vorraus für die Hilfe.