| |
|
|
| In meinem Faulenzer-Programm übergebe ich über die Zwischenablage Texte an eine Datei mit Append #x - Das funktioniert auch, nur wird dann jedesmal der Cursor ein paar Zeilen tiefer gesetzt. Der nächste Text steht also ein ganzes Stück weiter in der Datei. Gibt es eine Message mit der ich den Cursor beim Auslesen der Datei direkt hinter den letzten Eintrag zwingen kann ? |
|
|
| |
|
|
|
Michael Wodrich | Das liegt nur an den zusätzlichen Zeilenschaltungen. Schreibst Du keine hinein (bzw. filterst vorher das Blockende auf Zeilenenden) dann sollte alles im Lot sein.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 12.03.2007 ▲ |
|
|
|
|
| @Hallo Michael
Der Text wird mit SLEEP 200 eingetragen, da hier WAITINPUT nicht geht. Natürlich schreibt das Prrogramm dann noch Leerzeilen bis zum nächsten SLEEP - wie aber filtere ich das Textende ? - KLeiner Denkanstoss wäre hilfreich - Daaanke
@iF
[offtopic] Hier in der Eingabe ist der Cursor manchesmal nicht sichtbar. Egal ob ich mit der Maus auf die Position klicke oder die Richtungstasten benutze. [/offtopic] |
|
|
| |
|
|
|
| [offtopic]Ich weiß nicht warum Firefox das tut. Hierzu auch: [...] |
|
|
| |
|
|
|
Michael Wodrich | Da müßte ich schon ein Bischen Code um und mit dem Append haben um da etwas genaueres zu sagen zu können. Kannst es ja per PM schicken. Ich werd dann hier eine allgemeine Info darüber posten und Dir die spezielle Änderung.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 15.03.2007 ▲ |
|
|
|
|
| @Michael Danke für Dein Interesse - habe mir einen Code von Andreas Hötker runtergeladen KompilierenMarkierenSeparierenDef @GetCurrentThreadId(0) !KERNEL32,GetCurrentThreadId
DEF @GetDlgCtrlID(1) !USER32,GetDlgCtrlID
DEF @ButtonClicked(1) @GetDlgCtrlID(@&(1))=-%MENUITEM
Def @SetTimer(4) !USER32,SetTimer
Def @KillTimer(2) !USER32,KillTimer
Declare Timer_WIN&,Text$[3],Button&,Zähler%,TIMER_ID&,PRO_ID&,TH_ID&
Windowstyle 31+512
Windowtitle Selbständig laufende Programmschleife
Window 0,0-640,440
Usermessages $10
LET TIMER_WIN&=@Control(Static,TIMER_WIN,$8000000,0,0,0,0,%Desktop,9998,%HINSTANCE,$4)
Let Button&=@createbutton(%HWND,,20,100,300,30)
LET TEXT$[0]=Hier klicken...
LET TEXT$[1]=...für die...
LET TEXT$[2]=...Messagebox!
LET TIMER_ID&=@SetTimer(TIMER_WIN&,9999,1500,@ProcAddr(TimerProc,4))
While %UMESSAGE<>$10
Waitinput
Locate 0,0
Print @GetCurrentThreadId(),TH_ID&
IF @ButtonClicked(Button&)
@messagebox(Der Text auf dem Button ändert sich weiterhin!,Ein Wunder...?,64)
endif
wend
@KiLLTIMER(TIMER_WIN&,9999)
end
Proc TimerProc
Parameters ahhwnd&,ahuMsg&,ahidEvent&,ahdwTime&
Settext Button&,Text$[Zähler%]
INC Zähler%
Case Zähler%=4 : LET Zähler%=0
LET TH_ID&=@GetCurrentThreadId()
Endproc
...und damit klappt die Sache |
|
|
| |
|
|
|
|
...und damit klappt die Sache
Bitte insgesammt vorsichtig sein mit solchen Callbacks. Wird vom Profanprogramm ein Fenster erzeugt während ein Callback lauft, gibt es mit Profan ein heilloses Durcheinander - und das aber (leider) auch nicht immer... |
|
|
| |
|
|
|
| @Hallo Andreas Danke für die Warnung, aber Dein Code funktioniert bestens. Nur ein seltsames Verhalten hab ich bemerkt: Da ich das Hauptfenster mit SHOWMIN in die Statuszeile verbanne und dann mit Strg+C betonten Text zum Fenster schicke, benimmt sich die Sache so: Klick ich auf den programmierten Button zum Minimieren ist alles OK - Klick ich auf den Unterstrich im Systemmenu oben rechts, werden schon vorhandene Texte in meiner Datei gelöscht ! Da komme ich aber auch noch hinter. Im Moment habe ich WindowsStyle 22 und da geht das Minimieren über Systemmenu nicht. |
|
|
| |
|
|
|
| Wo Du Procaddr auch anwendest - es wird crashen wenn die aufrufende Api nicht solange wartet bis sie die Proc hinter Procaddr nicht mehr benötigt.
Ich kann somit nur von der Settimer-Api mit Procaddr-Angabe abraten bis Roland das gefixt hat. |
|
|
| |
|
|
|
Michael Wodrich | und was hat das mit Append zu tun? |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 16.03.2007 ▲ |
|
|
|