Delay im Fenster

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Stephan-X
Beiträge: 78
Registriert: 30.07.2008 16:02
Computerausstattung: PC 8 GB RAM NVIDIA Grafik 1 TB RAID // Ubuntu Mate 64 Bit // Pure 6.0 64
Wohnort: Oberösterreich

Delay im Fenster

Beitrag von Stephan-X »

Hallo !
Ich hab im Forum unter Delay() nix gefunden deshalb nochmal ńe Frage wie man das Lösen könnte ??
Es sollte in einem Fenster eine Schrift von Links nach Rechts laufen, dazwischen immer ne 1/2 sec. Verzögerung.
Das Delay(500) wartet aber immer die Ganze Zeit bis zum Ende sodaß keine zwischenschritte Angezeigt werden !!
Nehme ich die Schleife raus wird der Text wieder ganz normal angezeigt ???? :oops:

Der Code befindet sich direkt nach dem Öffnen des Fensters, also noch nicht in der Repeat / Until Schleife

Code: Alles auswählen

     Home.s  =  GetHomeDirectory()
     Ergebnis.s = Home.s
     x = 130
     For i = 1 To 5
       Delay(500)
       x = x - 10
       TextGadget(#Text_0  ,x,30,250,25,"")
       SetGadgetText(#Text_0,"Medium :    "+Ergebnis.s ) 
     Next
     SetGadgetText(#Text_0,"Medium :    "+Ergebnis.s )
Kann mir da mal jemand nen Schubs :lol: geben !!

Gruss Stephan
Wenn Sie nichts zu Tun haben, tun Sie es bitte nicht hier.
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: Delay im Fenster

Beitrag von TomS »

Du könntest ja mal den ganzen Code posten.
Dann würde man sehen, dass du zwei verschachtelte Schleifen (Repeat:Until und For:Next) hast.
Die Repeat-Schleife wartet natürlich, bis die For-Schleife fertig ist, also muss die For-Schleife raus.
Was du willst, kann man auch mit einer Schleife unh ohne großes Delay machen. z.B. mit einer Counter-Variabe, zu der du immer 1 addierst.
Dann überprüfst du, ob die Variable > 500, führst deinen Code aus der For-Schleife aus und setzt die Variable wieder 0.
Das ist allerdings nicht sehr genau, weswegen du dir mal AddWindowTimer() und Konsorten anschauen solltest.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Delay im Fenster

Beitrag von STARGÅTE »

Jedesmal ein neues gadget zu erstellen ist schon mal falsch!

Dafür gibs ResizeGadget, damit kannst du ein Gadget verschieben (u.a.)

Zum Verzögern kannst du einen WindowTimer nutzen.

Das ganze sieht dann zB so aus:

Code: Alles auswählen

Enumeration
  #Window
  #Gadget
  #Timer
EndEnumeration

OpenWindow(#Window, 0, 0, 400, 300, "Fenster", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
  TextGadget(#Gadget, 130, 10, 200, 20, "Beispieltext")
  AddWindowTimer(#Window, #Timer, 500)

Repeat

  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      End
    Case #PB_Event_Timer
      Select EventTimer()
        Case #Timer
          If GadgetX(#Gadget) > 70
            ResizeGadget(#Gadget, GadgetX(#Gadget)-10, #PB_Ignore, #PB_Ignore, #PB_Ignore)
          EndIf
      EndSelect
  EndSelect

ForEver
Solange der Text nicht bei x=70 ist wird er jede 500ms um 10px nach links geschoben.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Delay im Fenster

Beitrag von ts-soft »

STARGÅTE hat geschrieben:Solange der Text nicht bei x=70 ist wird er jede 500ms um 10px nach links geschoben.
Du solltest aber nach erreichen der Zielposition auch den Timer wieder entfernen!

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Stephan-X
Beiträge: 78
Registriert: 30.07.2008 16:02
Computerausstattung: PC 8 GB RAM NVIDIA Grafik 1 TB RAID // Ubuntu Mate 64 Bit // Pure 6.0 64
Wohnort: Oberösterreich

Re: Delay im Fenster

Beitrag von Stephan-X »

OK Leute ....
uff gud Hessisch, ma konn ald wänn wie a kuh, ma lärnt imma noch dazu :lol:

Das mit dem ResizeGadget is klar, ich kam grad auf die Idee und das erste was mir eingefallen ist war das mit Delay !!
Prima, das mit dem Timer is mir jetzt klar
Danke Euch, jetz kann ich weiter machen.

Stephan
Wenn Sie nichts zu Tun haben, tun Sie es bitte nicht hier.
Antworten