Werte von außen in eine Textbox schreiben

Für allgemeine Fragen zur Programmierung mit PureBasic.
arnek
Beiträge: 4
Registriert: 13.11.2004 14:24

Werte von außen in eine Textbox schreiben

Beitrag von arnek »

Hallo, ich bin seit zwei Tagen bei PB und wollte zum warmwerden ein kleines Programm schreiben, dass Werte (von mir aus die Uhrzeit) alle 5 sekunden in einen Textbox schreibt.

Wichtig dabei ist mir, dass es nicht in der Nachrichtenschleife des Windows passieren soll.

Als Skizze:

initwindow ; initialisiert das Window
repeat

schreibeUhrZeit_in_das_Textfeld_auf_dem_window()

forever

kann mir das jemand auf die sprünge helfen?
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag von Franky »

Nutze doch einen Timer, beispiele dazu gibt´s im codearchiv von Purearea.net :D
Vorrausgesetzt, du hast die vollversion, apis gehen bei der demo nicht
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
arnek
Beiträge: 4
Registriert: 13.11.2004 14:24

Danke

Beitrag von arnek »

Das mit Beispielen zum Timer hat mir schon eine Menge geholfen und ich habe tatsächlich was zum Laufen bekommen...
Trotzdem fange ich immer noch in der nachrichtenschleife selbstgebasteltet events ( mit windows-callback) ab.

so richtig von außen komme ich nicht dran oder?

ich hätte gerne etwas was dem oo-model entspricht.


MeinFenstger.meinLabel.text = aktuelle Uhrzeit


wahrscheinlich bin ich noch nicht richtig pb konform und denke zu kompliziert :-)
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Re: Danke

Beitrag von Andre »

arnek hat geschrieben:ich hätte gerne etwas was dem oo-model entspricht.

wahrscheinlich bin ich noch nicht richtig pb konform und denke zu kompliziert :-)
PB ist keine objekt-orientierte Programmiersprache, sondern nutzt Prozeduren. BASIC halt, wenn auch ein Mächtiges... :wink:
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag von Lars »

Was spricht gegen [c]SetGadgetText(#Editbox, FormatDate("%hh:%ii:%ss", Date()))[/c]? Da ist OOP nun wirklich nicht nötig :wink:
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
arnek
Beiträge: 4
Registriert: 13.11.2004 14:24

ich bin zu kompliziert

Beitrag von arnek »

sorry, dass ich so nerve!

schreibe ich diesen code vor meine Eventauffangschleife in die form

Code: Alles auswählen

For i = 1 To 2000
  d.s =   FormatDate("%hh:%ii:%ss", Date())  
  SetGadgetText(2, d ) 
  
Next
bekomme ich einen laufzeitfehler. schreibe ich ihn danach, wird er nicht ausgeführt.

es geht mir nicht darum es oo-orientiert zu machen; sondern ich möchte an einer Stelle ungleich der eventschleife die textbox ansprechen und das zu beliebigen zeitpunkten und irgendetwas dahineinschreiben.


So nach dem motto ich habe ein main da baue ich mir die form, dann kommt die logik und dann ein thread, der die die form mit daten aus der logik versorgt

in dem thread möchte ich dann was in das textfenster schreiben.

was ich nicht glauben kann - möchte - ist dass ich dafür ein windowscallback benutzen muß.

hättet ihr noch was für mich. auch zum lesen?

ob ich das mit der SetGadgetText(2, d ) oder was ähnlichem mache ist mir nicht wichtig.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

...an deinem beispiel versteh ich eines nicht: warum machst du das 2000 mal ?? :shock:
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
arnek
Beiträge: 4
Registriert: 13.11.2004 14:24

Beitrag von arnek »

war nur ein dummer beispiel.

konkret koennte es anstelle des Datum auch eine andere funktion wie offen anrufe im callcenter, anzahl besetzten rechnern o.ä sein.

die schleife ist auch nicht gutgewählt - konnte ich nur schnell eintippen

repeat

d.s = berechneFreiLeitungenimCallCenter()
SetGadgetText(2, d )

forever



es geht mir nur darum in einem Steuerprogramm werte in eine Textbox zu schreiben.


auch wenn ich mit diesem ding so verständinsprobs habe, bin ich von dem forum wirklich begeistert.
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag von Lars »

Wenn du das absolut unabhängig haben willst, hilft nur ein Thread. Sieh
dir dazu die Hilfe zum Thema Threads an.

Ansonsten würde ich vorschlagen, die Eventloop umzugestalten und
WindowEvent() statt WaitWindowEvent() zu nehmen. Dazu ein Delay(10)
in die Schleife und die Procedure, die dir deine Textbox updatet und alles
wird gut.

Ansonsten wirklich über einen WindowCallback und einen Timer.


Und du solltest aufhören innerlich in deiner alten Sprache zu proggen und
PB richtig lernen :wink:
Deinen Ausführungen hört man schon sehr an, dass du PB noch nicht
wirklich durchschaut hast :)
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Benutzeravatar
PBZecke
Beiträge: 399
Registriert: 02.09.2004 17:34

Beitrag von PBZecke »

Lars hat geschrieben:
...Und du solltest aufhören innerlich in deiner alten Sprache zu proggen und
PB richtig lernen :wink:
Deinen Ausführungen hört man schon sehr an, dass du PB noch nicht
wirklich durchschaut hast :)
Genau! Weg von einer modernen OOP zur PB-Steinzeit... :lol: :lol:
Nee, war nur Spaß, ich mag prozedurales programmieren auch lieber!
Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... :lol:
Antworten