| |
|
|
- Seite 1 - |
|
E.T. | Eben so aufgefallen: Ist mein Xprofan-Programm im nProc am arbeiten, wird es z.B. durch "Neuzeichnen" aus dem Tritt gebracht. "Neuzeichnen" tritt ja immer auf, wenn das Prog-Fenster verkleinert, verdeckt oder verschoben wird (verdeckt z.B. durch Bildschirmschoner ). Nach solch einem Event scheind meine nProc endlos damit beschäftigt zu sein, das Fenster neu zeichnen zu wollen. Und dies ewig, mit der Eieruhr für völlige Auslastung. Auch die Messages an die Balken-Anzeigen erzielen keinerlei Wirkung mehr. Selbst das System-Menü wird wirr, vor dem nProc habe ich z.B. das [X] für "Programm schließen" deaktiviert, dieses ist dann wieder aktiv. Solange ich das Fenster nicht verdecke oder verschiebe, läuft das nProc klaglos durch, mit dem ganz normalen Pfeil als Mauszeiger....
Beispiel meiner nProc: KompilierenMarkierenSeparieren
nProc Vergleichen
global Liste1&, Liste2&, Liste4&, Zaehler1&, Zaehler2&, Status&, ProgressBar_3&, ProgressBar_4&
Declare Verg_Dat_1$, Verg_Dat_2$, Vergl_Str1$, Vergl_Str2$, Vergl_Pass&, Pos_L1&
WhileLoop 0,Zaehler1&
Vergl_Str1$ = GetText.Listview(Liste1&, &loop, 0)
Verg_Dat_1$ = GetText.Listview(Liste1&, &loop, 1)
WhileLoop 0,Zaehler2&
Vergl_Str2$ = GetText.Listview(Liste2&, &loop, 0)
If Vergl_Str1$ = Vergl_Str2$
Verg_Dat_2$ = GetText.Listview(Liste2&, &loop, 1)
IfNot Verg_Dat_1$ = Verg_Dat_2$
Inc Vergl_Pass&
AddString(Liste4&, Verg_Dat_1$ + "|" + Verg_Dat_2$)
EndIF
EndIf
Sendmessage(ProgressBar_4&,$0400+2,int(100.0/Float(Zaehler1&)*Float(&loop)),0)
EndWhile
Sendmessage(ProgressBar_4&,$0400+2,0,0)
Sendmessage(ProgressBar_3&,$0400+2,int(100.0/Float(Zaehler1&)*Float(&loop)),0)
EndWhile
EndProc
Ist ja halt kein so komplizierter Code, lediglich das vergleichen vieler Strings auf Übereinstimmung (läuft halt doch als nProc vieeel schneller als in XProfan..) |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 12.11.2010 ▲ |
|
|
|
|
« Dieser Beitrag wurde als Lösung gekennzeichnet. » |
|
| |
|
| |
|
|
|
|
| Sorry, was? Ich konnte noch nie so lecker Neuzeichnen wie mit nProcs (siehe canvas etc)
Man sollte beim Neuzeichnen natürlich nicht dafür sorgen, dass gleich wieder neugezeichnet werden will - dann gibts natürlich nen Windows-Unendlichloop - hier hilft z.B. validaterect "im" wm_paint.
Wofür genau brauchst ein Beispiel? |
|
|
| |
|
|
|
| hier nochmal iF...
mist, bei ueber 250 bricht immer das Handyinternet zusammen...
ich glaube ich weiss jetzt was Du meinst...
gleiches Verhalten kannst Du mit sleep 10000 bverursachen... wenn ein Thread arbeitet dann kann er nicht neuzeichnen... das ist aber voellig normal. |
|
|
| |
|
|
|
| hehe Berlin ... Coswig ... 22 Minuten gg ... ist wie nProc... |
|
|
| |
|
|
|
E.T. | Nur versteh ich jetzt nicht, wo der Windows-Unendlichloop hekommt. Es soll ja nur dann neugezeichnet werden, wenn auch muss. Also z.B. wenn das Fenster von verkleinert wiederhergestellt wird. Im nProc bleibts genau da (endlos) hängen, das neuzeichnen kommt garnicht erst beim Fenster an (bleibt weiß). Das gleiche Proc in XProfan hat dieses Problem nicht, da XProfan sich ja um das Neuzeichnen kümmert . Kann man das nicht dem nProc auch beibringen ?? Oder bleibt die Neuzeichnen-Aufforderung im nProc ewig stehen, so das dadurch der Windows-Unendlichloop entsteht ??? |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 12.11.2010 ▲ |
|
|
|
|
| Wiederda...
Gib mir bitte ein komplettes Beispiel an dem ich ein bestimmtes Verhalten nachvollziehen (und dann ggf. auch erklären) kann. ^^ |
|
|
| |
|
|
|
| |
|
| |
|
|
|
E.T. | Im Moment werd ich es erstmal so lassen, das das Fenster nach veränderung (verschieben etc.) nicht mehr aktualisiert wird. Hab versucht, die wm-pain - Message ans Haupfenster im nProc "rauszufiltern", was aber mit kommentarlosem Abbruch endet...
Eigendlich will ich ja nur, das im obigen Bsp. das wm_paint beim Hauptfenster ankommt. Ein waitinput 1 würde da nach der inneren Schleife ggf. vielleicht schon helfen, geht ja halt aber nich. |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 13.11.2010 ▲ |
|
|
|
|
| E.T. (13.11.10)
Eigendlich will ich ja nur, das im obigen Bsp. das wm_paint beim Hauptfenster ankommt.
Klar, wenn Dein UI-Thread arbeitet - z.B. bei Sleep 10000 oder eine Schleife in einer nProc; oder in einer API - eben nur nicht in einer XProfan-Schleife - dann springt der UI-Thread nicht einfach auf einmal in eine wProc um wm_paint auszuführen sondern eben erst dann wenn z.B. GetMessage/ WaitApis vom Progger _angewiesen werden. |
|
|
| |
|
|
|
| Aber was Du mit "Unendlichschleife" meinst oder wie Du solche obig erzeugst kann ich nicht nachvollziehen. |
|
|
| |
|
|
|
E.T. | iF (13.11.10)
Aber was Du mit "Unendlichschleife" meinst oder wie Du solche obig erzeugst kann ich nicht nachvollziehen.
Das mit der Unenlich-Schleife hat sich geklärt, wenn das nProc "durch" ist, gehts ganz normal im Prog weiter (nicht lang genug gewartet ).
[OFFTOPIC]Wenn ein neues Post (wie eben von Dir) eintrifft, wärend man in diesem Tread noch am lesen ist, so wird dieser andersfarbig dargestell (sicher so gewollt), aber drunter fehlt das Zitieren etc., nur die Uhrzeit steht da [/OFFTOPIC] |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 13.11.2010 ▲ |
|
|
|
|
| E.T. (13.11.10)
iF (13.11.10)Aber was Du mit "Unendlichschleife" meinst oder wie Du solche obig erzeugst kann ich nicht nachvollziehen. Das mit der Unenlich-Schleife hat sich geklärt, wenn das nProc "durch" ist, gehts ganz normal im Prog weiter (nicht lang genug gewartet ).
Naja genau, so ist das auch "richtig" - man soll ja den UI-Thread nicht mit andauernden Aufgaben blockieren sondern dann eben nen extra Thread beschäftigen. Durch die "Ehrlichkeit" einer nProc fällt dies umsomehr auf. ^^
[OFFTOPIC] E.T. (13.11.10)[OFFTOPIC]Wenn ein neues Post (wie eben von Dir) eintrifft, wärend man in diesem Tread noch am lesen ist, so wird dieser andersfarbig dargestell (sicher so gewollt), aber drunter fehlt das Zitieren etc., nur die Uhrzeit steht da [/OFFTOPIC] Das ist "korrekt" so bzw. verhält sich wie programmiert - die "nachgeschobenen" "Live-Postings" sind sogesehen keine Vollwertigen und zeigen z.B. auch keine Dateianhänge etc. Sind eher "nützliche Hinweise auf möglicherweise-nützliche Beiträge" und ermöglichen aber immerhin eine Livekonversation. [/offtopic] |
|
|
| |
|
|