Deutsch
Forum

Thread.pcu

 

Stephan
Sonneborn
Hallo (X)Profan-Freunde,

erstmal ein herzliches Hallo! an alle XProfaner hier in der Community!
Nachdem ich in den letzten Jahren kaum zum programmieren gekommen bin (Hausumbau), hoffe ich, jetzt wieder öfters ein paar Zeilen zu schreiben.

Da ich die 10er XProfan - Version komplett verpasst habe, versuche ich, mir die neuen Funktionen der 11er zu erschließen.

In einem alten Projekt hatte ich die thread.pcu von iF verbaut, die mir auch gute Dienste geleistet hat. Nun stelle ich fest, dass beim Neukompilieren, nicht mehr alles so läuft wie gewohnt. Ich habe zunächst CLICKED() im Verdacht gehabt, bin aber davon schon wieder abgerückt: es ist z.B. besser, jedem mit CONTROL() erstellten Objekt ein eigene ID zu geben...

Die Thread.pcu hat mir die Uhrzeit in der Statuszeile angezeigt. Nun lese ich, dass die Thread.pcu bei XProfan nicht unbdingt die beste Wahl sei. Kann mir bitte mal jemand auf die Sprünge helfen? Vielen Dank!
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
11.11.2009  
 



Leider kann die Thread.Pcu in aktueller XProfan-Version nicht fehlerfrei funktionieren, aber das muss sie auch nicht denn es gibt die SubClassProc um innerhalb von Waitinput Code auszuführen z.B. per SetTimer-API: [...] 

Wenn die obig emulierten Timer nicht reichen (und ich meine für Statusbaränderung tun sie das ^^), dann kann man auch mit nativen Funktionen herumspielen: [...]  womit es dann wiederum keine procaddr-Probleme gibt. Ein Timerbeispiel klebt hier ganz unten dran: [...] 

Juhu Stephan ist zurück!
 
11.11.2009  
 




Stephan
Sonneborn
Hi iF,

Danke für Deine schnelle Antwort. Ich werde mir den Code am Sonntag mal näher ansehen! Bis denne...
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
13.11.2009  
 




Stephan
Sonneborn
Hallo David,

so...
ganz verstanden habe ich Dein SetTimer.Prf nicht. Und gewundert, was ich angeblich alles noch nachladen soll und dann im XPSE-Verzeichnis zu liegen hat, hats mich auch...

Deswegen in reinem XPROFAN 11:
KompilierenMarkierenSeparieren
************************************************************************************************
* SETTIMER DEMO mit CHECKBUTTON                                                                *
* Quellcode stammt überwiegend aus der Hilfe zu XPROFAN 11                                     *
************************************************************************************************
 $H Messages.ph
 $H Windows.ph
************************************************************************************************
* Funktionen                                                                                   *
************************************************************************************************
Control-ID Generator:

PROC NewID

    DECLARE ID&
    LastDlgID& = LastDlgID& + 1
    ID& = LastDlgID&
    RETURN ID&

ENDPROC

Control-Dialogobjekt CHECKBUTTON
DEF CreateXButton(6)CONTROL("BUTTON",@$(2),$54011009,@%(3),@%(4),@%(5),@%(6),@%(1),NewID(), %HInstance, $0000)
************************************************************************************************
* SubClassing                                                                                  *
************************************************************************************************

SubClassProc

    IF SubClassMessage(%hWnd, ~wm_sizing)

        SetStyle %hwnd, 1, GetStyle(%hwnd, 1) | $02000000
        Resize
        Set("WinProc", 0)

    ElseIf SubClassMessage(bt1&, ~wm_rbuttondown)

        SetText bt1&, "Autsch!"
        Set("WinProc", 0)

    ElseIf SubClassMessage(bt1&, ~wm_rbuttonup)

        SetText bt1&, "Test1"
        SetMenuItem 3000
        Set("WinProc", 0)

    ElseIf SubClassMessage(st&, ~wm_mousemove)

        SetMenuItem 3001
        Set("WinProc", 0)

    ElseIf SubClassMessage(%hwnd, ~wm_close)

        SetMenuItem 3999
        Set("WinProc", 0)

    ElseIf SubClassMessage(%hwnd, ~wm_timer)

        SetMenuItem 9999
        Set("WinProc", 0)

    EndIf

ENDPROC

************************************************************************************************
************************************************************************************************
* Fesntergröße einstellen                                                                      *
************************************************************************************************

Proc Resize

    SetWindowPos bt& = 0, 50 - Width(%HWnd)/2, Height(%HWnd) - 75
    SetWindowPos bt2& = Width(%HWnd)/2, 50 - Width(%HWnd)/2, Height(%HWnd) - 75
    SetWindowPos st& = 0, 0 - 0,0; 0
    SetWindowPos tb& = 0, 0 - 0,0; 0

ENDPROC

************************************************************************************************
************************************************************************************************
* Globale Variablen                                                                            *
************************************************************************************************
DECLARE LastDlgID&
DECLARE bt1&, bt2&, st&, tb&
DECLARE Ende%
************************************************************************************************
* Hauptprpgramm                                                                                *
************************************************************************************************
Wertzuweisungen
LastDlgID& = 10000 Startwert für Control-ID
Hauptfenster und Dialogobjekte erstellen
CLS
st&  = CREATE       ("StatusWindow", %HWnd, "Statuszeile")
tb&  = CREATE       ("Toolbar"     , %HWnd,          0,              15,              1,               1000,1)
bt1& = CREATEXBUTTON(                %HWnd, "Test1", 0,              50, Width(%HWnd)/2, Height(%HWnd) - 75)
bt2& = CREATE       ("Button"      , %HWnd, "Test2", Width(%HWnd)/2, 50, Width(%HWnd)/2, Height(%HWnd) - 75)
SubClassing einschalten
SubClass %HWnd, 1 SubClassing des Hauptfensters einschalten
SubClass bt1&,   1 SubClassing des 1. Buttons einschalten
SubClass st&,   1 SubClassing der Statuszeile einschalten
Timer setzen:
SetTimer 500
Hauptschleife

WHILENOT Ende%

    WAITINPUT
    Ereignisauswertung:

    IF %Key = 4

        Resize
        SetStyle %hwnd, 1, GetStyle(%hwnd, 1) - $02000000

    ELSEIF MenuItem(3000)

        MessageBox("Rechtsklick auf Button 1!","Test",0)

    ELSEIF MenuItem(3001)

        MessageBox("Mausbewegung über Statuszeile!","Test",0)

    ELSEIF MenuItem(3002)

        MessageBox("wm_activate","Test",0)
        ELSIF MenuItem(3003)
        MessageBox("wm_syscommand",str$(&sWParam),0)

    ELSEIF MenuItem(3999)

        Case Messagebox("Wollen Sie das Programm wirklich verlassen?","Frage",36) = 6 : Ende% = 1

    ELSEIF MenuItem(9999)

        SetText st&, TIME$(0) + ":" + LEFT$(TIME$(1),2)

    ENDIF

ENDWHILE

SubClassing ausschalten
SubClass %HWnd, 0
SubClass bt1& , 0
SubClass st&  , 0
Timer löschen:
KillTimer
Programmende
END

Einen schönen Programmier-Sonntag an alle!
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
15.11.2009  
 



Du hast den reinen Profantext [...]  übersehen, bis denne.


Und gewundert, was ich angeblich alles noch nachladen soll und dann im XPSE-Verzeichnis zu liegen hat, hats mich auch...


Tut mir leid!
 
15.11.2009  
 




Stephan
Sonneborn

iF: Du hast den reinen Profantext [...]  übersehen


Ooops, das hab ich wohl...


Tut mir leid!


Nicht schlimm...

Wozu sind die Zusatz-Proggis denn gedacht?
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
15.11.2009  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.832 Betrachtungen

Unbenanntvor 0 min.
Walter08.05.2020
AndreasS13.02.2019
Peter Max Müller26.11.2017
Georg19.10.2016
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

Stephan Sonneborn (4x)
iF (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie