Fonttext ausgeben der von anderen Progs nicht überdeckt wird

Für allgemeine Fragen zur Programmierung mit PureBasic.
3dhubiflieger
Beiträge: 123
Registriert: 27.10.2013 12:13

Fonttext ausgeben der von anderen Progs nicht überdeckt wird

Beitrag von 3dhubiflieger »

Hallo, hab da nen Problem was ich noch nicht lösen konnte. Ich will, wenn ein Programm gestartet wird einen Text per Font auf dem Bildschirm ausgeben. Problem ist das dieser (siehe unten) mit Programmen, welche einen richtigen Screen initialisieren (kein Window) nicht funktioniert. Auch wenn ich Stickywindow nehme, wird mein Text nicht richtig angezeigt bzw das Programm "verschluckt" ihn beim initialisieren des Screens. Gibts ne Alternative ?

Code: Alles auswählen

Procedure Text(Text$,Dauer)
  
  
 StopDrawing()
 
 ExamineDesktops()
 Breite = DesktopWidth(0)
 Hoehe  = DesktopHeight(0)
 Schriftgroesse = 31
 LoadFont(0, "Broadway",Schriftgroesse) ;Schriftart

 Repeat 
   
  Versuche = Versuche + 1
   
  Hinweisfenster = OpenWindow(#PB_Any, 0, 0, Breite, Hoehe, "",  #PB_Window_BorderLess)
 
  If Hinweisfenster
    
     If CreateImage(0, Breite, Hoehe) And StartDrawing(ImageOutput(0))
      
       StickyWindow(Hinweisfenster,1)
 
       DrawingFont(FontID(0))   ;Font auswählen
       FrontColor(RGB(0,0,250)) ;Textfarbe setzen
       XZentriert = ((Breite - TextWidth(Text$)) / 2) 
       YZentriert = ((Hoehe  - TextHeight(Text$)) / 2)
       DrawText(XZentriert,YZentriert, Text$)
      
       StopDrawing() 
       ImageGadget(0, 0, 0, 200, 200, ImageID(0))
       
     EndIf
    
     Delay(Dauer)
     If IsGadget(0)
       FreeGadget(0)
     EndIf  
     CloseWindow(Hinweisfenster)
     ProcedureReturn
   EndIf
   
  Until Versuche > 10 
 
EndProcedure