StatusBar - text auslesen?
-
- Beiträge: 250
- Registriert: 25.11.2004 19:51
- Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS
StatusBar - text auslesen?
Sorry für die Frage - aber - seh ich das richtig, dass man wenn man in die Statusbar n Text z. B. in das 1. Feld schreibt - es man nicht mehr auslesen kann? - Zumindest hab ich dafür mal keinen passenden Befehl gefunden?
Kennt wer hier n Trick etc?
Kennt wer hier n Trick etc?
PB 4.6 / 32 Bit / 64 Bit
- 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
Du siehst es richtig, mit normalen Mitteln läßt sich der Text nicht auslesen.
Welchen Sinn sollte das auch machen?
Welchen Sinn sollte das auch machen?
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 250
- Registriert: 25.11.2004 19:51
- Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS
re:
naja - also ich muß n wenig ausholen - evtl. gibts ja ne bessere möglichkeit das zu lösen:
also hab n kleines proggy - welches eben ne statuszeile unten einblendet - und wenn ich da die zeit update und das datum - dann flackert mir das richtig böse - hab auch schon versucht - das nur alle 400 Ticks Updaten zu lassen - aber flackert trotzdem noch - stellt ichs druchaus höher - so sehe ich nur noch alle 2 Sekunden n Zeitupdate.
Meine Idee war dann - ich lese einfach dei statusbar aus - und vergleichen den ist mit dem soll wert - wenn dieser nicht stimmt Update ich die Anzeige.
Evtl. hier jemand ne andere Lösung ? (Außer hier n Delay etc einzubauen ?)
also hab n kleines proggy - welches eben ne statuszeile unten einblendet - und wenn ich da die zeit update und das datum - dann flackert mir das richtig böse - hab auch schon versucht - das nur alle 400 Ticks Updaten zu lassen - aber flackert trotzdem noch - stellt ichs druchaus höher - so sehe ich nur noch alle 2 Sekunden n Zeitupdate.
Meine Idee war dann - ich lese einfach dei statusbar aus - und vergleichen den ist mit dem soll wert - wenn dieser nicht stimmt Update ich die Anzeige.
Evtl. hier jemand ne andere Lösung ? (Außer hier n Delay etc einzubauen ?)
PB 4.6 / 32 Bit / 64 Bit
- 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
Wie wäre es mit einer Variable?
Pseudocode:
Pseudocode:
Code: Alles auswählen
;OldTime = Time
If Time > OldTime + UpdateIntervall
OldTime = Time
StatusBarText(0, 0, Str(OldTime))
EndIf
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Denk mal das dürfte dem nah kommen was du suchst...
@ts-soft
Doch'n Minimalist ;p
Code: Alles auswählen
Procedure Display_Time()
StatusBarText(0, 0, FormatDate("%yyyy-%mm-%dd um %hh:%ii:%ss Uhr", Date()), #PB_StatusBar_Center)
EndProcedure
ElapsedMS = ElapsedMilliseconds() ;<- funktioniert auch ohne
If OpenWindow(0, 216, 0, 240, 20, "Timer", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If CreateStatusBar(0, WindowID(0))
EndIf
Repeat
Event = WaitWindowEvent(100)
If ElapsedMilliseconds() > ElapsedMS
ElapsedMS + 1000
Display_Time()
EndIf
Until GetAsyncKeyState_(#VK_ESCAPE) Or Event = #PB_Event_CloseWindow
EndIf
Doch'n Minimalist ;p
- 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
Mein Code ist länger als der von smatejaD@nte hat geschrieben: @ts-soft
Doch'n Minimalist ;p

Konkretes Beispiel ist also garnicht möglich, bei den vorliegenden Daten
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- 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: RE:
Freut mich.smateja hat geschrieben:Merci euch Beiden, Denkanstoß hat 1A geholfen und gepaßt.
Mein persönlicher Favorit wäre für Windows folgender:
Code: Alles auswählen
Procedure CB_Timer(hWnd.l, uMsg, IDEvent, dwTime)
Protected Time$ = FormatDate("%ii:%ss", Date())
StatusBarText(0, 2, Time$, #PB_StatusBar_Right | #PB_StatusBar_Raised)
EndProcedure
If OpenWindow(0, 100, 150, 300, 100, "PureBasic - StatusBar Example", #PB_Window_SystemMenu | #PB_Window_SizeGadget)
If CreateStatusBar(0, WindowID(0))
AddStatusBarField(100)
AddStatusBarField(50)
AddStatusBarField(100)
EndIf
StatusBarText(0, 0, "Area 1")
StatusBarText(0, 1, "Area 2", #PB_StatusBar_BorderLess)
SetTimer_(WindowID(0), 1, 500, @CB_Timer())
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
KillTimer_(WindowID(0), 1)
EndIf
problemlos um weitere TimerEvents ergänzen.
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: StatusBar - text auslesen?
Mit WinAPI geht es:smateja hat geschrieben:Sorry für die Frage - aber - seh ich das richtig, dass man wenn man in die Statusbar n Text z. B. in das 1. Feld schreibt - es man nicht mehr auslesen kann? - Zumindest hab ich dafür mal keinen passenden Befehl gefunden?
Kennt wer hier n Trick etc?
Code: Alles auswählen
If OpenWindow(0, 100, 150, 300, 100, "PureBasic - StatusBar Example", #PB_Window_SystemMenu | #PB_Window_SizeGadget)
If CreateStatusBar(0, WindowID(0))
AddStatusBarField(100)
AddStatusBarField(50)
AddStatusBarField(100)
EndIf
StatusBarText(0, 0, "Feld 1")
StatusBarText(0, 1, "Feld 2")
StatusBarText(0, 2, "Feld 3")
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
OldText$ = Space(256)
SendMessage_(StatusBarID(0), #SB_GETTEXT, 0, @OldText$) ; Den vorhandenen Text der StatusBar auslesen
Debug OldText$
OldText$ = Space(256)
SendMessage_(StatusBarID(0), #SB_GETTEXT, 1, @OldText$) ; Den vorhandenen Text der StatusBar auslesen
Debug OldText$
OldText$ = Space(256)
SendMessage_(StatusBarID(0), #SB_GETTEXT, 2, @OldText$) ; Den vorhandenen Text der StatusBar auslesen
Debug OldText$
EndIf
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.