Hallo Edel,
ich habe gestern noch bis nachts um 0:30 den Code etwas umgebaut (Schönheitsoperation ) und habe dann eine .exe daraus gemacht, wo ich hier in der Arbeit teste. Er ist hier dargestellt.
Code: Alles auswählen
Procedure hauptfenster()
If OpenWindow(0,400,300,330,220,"İtalyanca - Release 1",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar )
EndIf
If LoadFont(1, "Arial", 10)
SetGadgetFont(#PB_Default, FontID(1))
EndIf
If LoadImage(0, "I.bmp")
LoadImage(1, "Tr.bmp")
EndIf
If CreateGadgetList(WindowID(0))
TextGadget(0, 10,10, 230, 30, "Giuseppe, bana İtalyanca öğrettiğin")
TextGadget(1, 10,40,200, 30, "için çok teşekkür ederim.")
ImageGadget(2, 250,10,10, 10,ImageID(0))
TextGadget(3, 250,70, 350, 30, "Saygılar")
TextGadget(4, 250,100, 350, 30, "Michael")
TextGadget(5, 10,130, 220, 30, "Şu anda programın kelime hazinesi: ")
TextGadget(6, 250,130, 150, 30, "")
ButtonGadget(7, 35, 170, 250, 30, "Program başlamak için tıklayın")
EndIf
If ReadFile(1,"Wortschatz.dat")
laengew.w= Lof(1)
zeilenanzahlw.w=laengew.w/62
zeilenanzahls.s= StrU((zeilenanzahlw.w), #Word)
SetGadgetText(6,zeilenanzahls.s)
CloseFile(1)
EndIf
If OpenWindow(1,50,100,250,130,"Testfenster",#PB_Window_BorderLess|#PB_Window_Invisible)
If LoadFont(1, "Arial", 15)
SetGadgetFont(#PB_Default, FontID(1))
EndIf
If CreateGadgetList(WindowID(1))
ImageGadget(8, 10,10,10, 10,ImageID(0))
TextGadget(9, 90, 20, 150, 50, "")
ImageGadget(10, 10,70,10, 10,ImageID(1))
TextGadget(11, 90,80, 150, 50, "")
EndIf
EndIf
EndProcedure
hauptfenster()
Procedure Hidewin()
Static zeit
If ElapsedMilliseconds() > zeit
zeit = ElapsedMilliseconds() + 120000
If ReadFile(1,"Wortschatz.dat")
laengew.w= Lof(1)
zeilenanzahlw.w=laengew.w/62
zeilenanzahls.s= StrU((zeilenanzahlw.w), #Word)
zufallszeilennummerw.w= Random(zeilenanzahlw.w-1)
FileSeek(1,zufallszeilennummerw.w*62)
wert1s.s= StrU((zufallszeilennummerw.w+1), #Word)
wert2s.s=ReadString(1)
italienischs.s=Left(wert2s.s,20)
tuerkischs.s=Mid(wert2s.s,21, 20)
deutschs.s=Mid(wert2s.s,41, 20)
SetGadgetText(9,italienischs.s)
SetGadgetText(11,tuerkischs.s)
Debug "Zeile: "+wert1s.s+" Italienisch: "+italienischs.s+" Türkisch: "+tuerkischs.s+" Deutsch: "+deutschs.s
CloseFile(1)
EndIf
HideWindow(1,0)
Else
HideWindow(1,1)
EndIf
EndProcedure
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
quit = 1
EndIf
If EventID = #PB_Event_Gadget
If EventGadget()=7
SetTimer_(0,0,3000,@Hidewin())
EndIf
EndIf
Until quit=1
End
; IDE Options = PureBasic v4.00 (Windows - x86)
; CursorPosition = 66
; FirstLine = 48
; Folding = -
; Executable = Erinnerungsfenster1.exe
If EventID = #PB_Event_Gadget
If EventGadget()=7
SetTimer_(0,0,3000,@Hidewin())
EndIf
EndIf
Habe jetzt zum Code ein paar Fragen:
1.) Das "SetTimer_(0,0,3000,@Hidewin())" ist wohl ein Programmteil, das nach dem einmaligem Aufrufen von alleine weiterläuft, und nach einer Zeit von 3 Sekunden die Procedure "Hidewin()" startet, in der dann verglichen wird ob die Zeit schon abgelaufen ist oder nicht. Ein 2. Aufrufen findet ja nicht mehr statt. Ist das so?
2.) Ich habe nach dem "SetTimer_(0,0,3000,@Hidewin())" Befehl einmal das "SetWindowState(0, #PB_Window_Minimize)" eingefügt - das Startfenster sollte das Programm starten und dann selbst sich minimieren, war der Gedanke aus Schönheitsgründen. Danach war aber auch das Erinnerungsfenster immer minimiert. Warum ist das so? ( habe es natürlich gleich wieder rückgängig gemacht

)
3.) Gibt es zum "HideWindow(1,0) " Befehl noch was anderes wie "HideWindow(1,0) to all"? Grund: Es passiert hier oft, das das Fenster zwar nach der gewünschten Zeit auftaucht ( ich sehe es an der Taskleiste das sich das was tut ) aber das Fenster ist sozusagen von den anderen Anwendungen die gerade offen sind verdeckt. Manchmal kommt es aber auch in den Vordergrund - aber oft eben nicht. Gibt es da was ( vielleicht API ) das man vor dem "HideWindow(1,0) " Befehl setzt damit das Erinnerungsfenster, oder das Programm in dem Moment selbst aktuell wird und dadurch trotz der Anwendungen die gerade offen sind, im Vordergrund angezeigt wird?
Vielen Dank für alles.