Blinkender Text/Hintergrund in Stringgadget

Anfängerfragen zum Programmieren mit PureBasic.
Bayernhans
Beiträge: 20
Registriert: 09.04.2006 15:56
Wohnort: Bayern

Blinkender Text/Hintergrund in Stringgadget

Beitrag von Bayernhans »

Habe gerade versucht einen blinkenden Text oder Hintergrund in Stringgadgets zu erzeugen, aber hab' leider irgendwie noch "HALLOWEEN" -Nachwehen ...

Idee: Mittels einer (Endlos-) Schleife und Delay

Code: Alles auswählen

For p=1 To max_Gadgets
...
      Repeat
          SetGadgetText(p+100, "OK") ; oder SetGadgetColor(p+100, #PB_Gadget_BackColor, #blue)
          Delay(80)
          SetGadgetText(p+100, "  ") ; oder SetGadgetColor(p+100, #PB_Gadget_BackColor, #red)
          Delay(80)                  
      Until Event = #PB_Event_CloseWindow Or  ????

;  weitere Gadgets werden geändert ...

Next
"Aussprung" aus Schleife klappt nicht wie gewünscht. Wie kann ich angeben dass z. B. Anwender auf Button klickt (????)
Es werden im Code noch weitere Stringgadgets "manipuliert", deswegen vermutlich kein WaitWindowEvent möglich - Schleife beendet sich da zu früh bzw. läuft nur eine Runde
(PB 3.94/4)

Wer weis Rat ? oder hat andere Idee ?
DANKE
vitamine, Vitamine, VITAMINE, ...
Vitamin PB - the best
PB 4.x
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

Beitrag von ts-soft »

Du solltest einen Timer statt einer endlosschleife verwenden.
Entweder API-Timer SetTimer_ oder PBOSL_Userlibs installieren oder hier
gucken: http://www.purebasic.fr/german/viewtopic.php?t=9938
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
Bayernhans
Beiträge: 20
Registriert: 09.04.2006 15:56
Wohnort: Bayern

Beitrag von Bayernhans »

Dort war ich schon vorher - danke ts-soft, aber leider paßt das mit den Timern nicht so ganz - soweit ich es überhaupt verstehe ...
vitamine, Vitamine, VITAMINE, ...
Vitamin PB - the best
PB 4.x
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

Beitrag von ts-soft »

Ohne Timer wirste kaum die normalen Windowsereignisse abarbeiten
können. Das Programm wird nie rund laufen :D
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
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> soweit ich es überhaupt verstehe ...

ist ganz einfach:

Code: Alles auswählen

Procedure FlashButtonText()
  If GetGadgetText(0)="OK"
    SetGadgetText(0, "")
  Else
    SetGadgetText(0, "OK")
  EndIf
EndProcedure

OpenWindow  (0, #PB_Ignore, #PB_Ignore, 300, 300, "Blinkender Text")
CreateGadgetList(WindowID(0))
ButtonGadget(0, 5, 5, 290, 290, "OK")
 
StartTimer(0, 1000, @FlashButtonText())
 
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow

EndTimer(0)
auf jeden Fall einfacher als die Schleife nebst Delay (was zwangsläufig
irgendwann mal zu Problemen führt)

Grüße ... Kiffi
a²+b²=mc²
Antworten