Seite 1 von 2

Werte von außen in eine Textbox schreiben

Verfasst: 14.11.2004 19:35
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?

Verfasst: 14.11.2004 20:18
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

Danke

Verfasst: 14.11.2004 21:50
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 :-)

Re: Danke

Verfasst: 14.11.2004 22:05
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:

Verfasst: 14.11.2004 22:27
von Lars
Was spricht gegen [c]SetGadgetText(#Editbox, FormatDate("%hh:%ii:%ss", Date()))[/c]? Da ist OOP nun wirklich nicht nötig :wink:

ich bin zu kompliziert

Verfasst: 14.11.2004 22:49
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.

Verfasst: 14.11.2004 22:54
von Kaeru Gaman
...an deinem beispiel versteh ich eines nicht: warum machst du das 2000 mal ?? :shock:

Verfasst: 14.11.2004 23:02
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.

Verfasst: 14.11.2004 23:25
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 :)

Verfasst: 15.11.2004 00:07
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!