| |
|
|
- Seite 1 - |
|
Sato Pinto | Hallo Xprofaner
Habe in mein Programm das Problem das nach mehrmaligen Bild laden und anzeigen nach ein paar Minuten erscheint der Fehler wie im Bild zu sehen ist
mloadbmp "oito.bmp" MCopySizedBmp 0,10-300,215 > 485,10-300,215;-1
Hat jemand eine Idee was das sein könnte?
Gruss Sato Xprofan11 Win XP Home |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
Sato Pinto | Hallo Rolf
Die Hauptschleife
While %scankey <> 27 Ende mit ESC getmessage " " " " " " " " " Endwhile
Gruss und Danke für Deine INC
Sat6 |
|
|
| |
|
|
|
| Sato Pinto
Kannst Du mir bitte einen kleinen Beispiel ... ohne die PCU ...
Müsste hier auch schon rumlungern, aber sollst Du bekommen... (wenn ich denn zu Hause bin...) *g*
PS: Gewöhne Dir bitte an, Quelltexte im Forum mit [ code ] zu umrahmen, sonst funktionieren bestimmte Dinge nicht und die Texte weden schwierig-bis-falsch dargestellt. (z.B. wg. Smilies & co...) Alternativ nutze einfach [...] - dann braucht man nur die URL posten. |
|
|
| |
|
|
|
Rolf Koch | Hab grad getestet. In der Hauptschleife ist aufjedenfall wie vermutet Settimer, %wmtimer und Endtimer schuld. VIelleicht die Uhrzeit irgendwie anders lösen und dafür Thread Nummer 4 für die Schleife nutzen. Wenn das dann klappt, kucken wir mal weiter. Weil ich kann nur auf Verdacht an Deinem Code basteln |
|
|
| |
|
|
|
| @Rolf: %wmTimer wird von der thread-unit nicht gebrochen oder irritiert da die thread-unit setTimer nicht per ID sondern per Funktionsadresse anspricht. |
|
|
| |
|
|
|
Rolf Koch | Aber iF, wenn ich im Code wmtimer rausnehme dann passiert der Fehler halt nich mehr. Ich kuck mal weiter. |
|
|
| |
|
|
|
| Ok, das liegt dann daran, das er
a) über %wmTimer etwas auslöst
und
b) "zeitgleich" die Thread.Do "reinkloppt".
Er wird startPainten - und dann kommt die thread.Do und will auch "startPainten"...
%wmTimer ist hier nur ein Alias aber nicht das Schuldige. |
|
|
| |
|
|
|
Rolf Koch | Stimmt iF. Ich habs zumindest jetzt über einen weiteren Schalter zum dauerlauf und dies sehr oft überredet: @Sato: Ändere in der laufschrift.inc auf dieses: KompilierenMarkierenSeparieren
PROC SCROLLTEXT
Parameters schrift%,bold%,backg&,Farbe%,string$,akt%
if akt% = 0
dec ydr%
endif
if inpaint%=0
StartPaint backg&
inpaint%=1
TextColor farbe%,getpixel(1,1)
UseFont "MS Sans Serif",schrift%,0,bold%,0,0
DrawText xdr%,ydr% + (schrift%*akt%),string$+space$(500)
ENDPAINT
inpaint%=0
case ydr% < (zeilenanzahl% * -schrift%) : ydr% = gesydr%
endif
ENDPROC
Und füge global ein Declare inpaint% hinzu. Alles andere mal so lassen wie es ist. Hoffe, dass man das Problem so umgehen kann. |
|
|
| |
|
|
|
| Genau Rolf, und das ist der Grund warum ich mir schon ewig den StartPaint-Stack von Roland wünsche... [...] [...]
Hehe hab schon am 18.01.2007 genau dieses Problem gepostet... wie soll man sowas auch finden?! Der Community fehlt noch irgend eine Funktion... |
|
|
| |
|
|
|
| Nachtrag: Deine Methode ist nicht sicher, aber sicherer! Wenn Deine Proc grad startPaint aufgemacht hat könnte die thread.do reinhüpfen und auch startPaint öffnen wollen.
Es hilft wirklich nur wenn alle Seiten (also deine inc und sein code) kein StartPaint verwenden und nur hiernach [...] arbeiten. |
|
|
| |
|
|
|
| Ich bin grad am Aktualisieren von dem furchtbaren Source des startPaint-Stack-Paketes.
Der Witz ist, auch damit ists nicht sicher, nur sicherer! Selbst wenn Roland jetzt einen startPaint-Stack eingebaut hätte, dann wäre das auch nur sicherer und solange nicht sicher, bis auch das procAddr-Problem behoben ist. Oje! (denn ein call auf eine Funktion welche StartPaint nutzt würde dann immernoch den Fehler erzeugen, oder wenn intern gestackt, auf falschen pics zeichnen) |
|
|
| |
|
|
|
| Bitte: [...]
Er darf nirgends startPaint oder endPaint verwenden, nur noch startPaint2 und endPaint2 aus dem Paket.
Selbst dann ist es jedoch nicht sicher, sondern nur sicherer.
Der Witz ist nur, wird er auf die Thread-Unit verzichten und subClassProc verwenden ist dieser Aufwand garnicht nötig. |
|
|
| |
|
|
|
| Hier die Variante nach subClassProc. |
|
|
| |
|
|