| |
|
|
GDL | Hallo,
finde einfach den Fehler nicht.Es sollte die aktuelle Zeile als String ausgelesen werden, bekomme aber nur mit Dim buffer#,255 nur Striche zurück und mit der anderen Dim version nen Programmabsturz. Danke. KompilierenMarkierenSeparierendeclare hrtf&,line&,buffer#,ende%,dll&,zeile$,line1&
dll&=usedll("riched32.dll")
Def GetIntResult(0)&(0) für Suchfunktion
Def GetStringResult(0)$(0)
Def GetLineNr(1) SendMessage(&(1),$0436,0,-1) EM_EXLINEFROMCHAR Nullbasiert!
Def GetLineCount(1) SendMessage(&(1),$BA,0,0) Zeilenanzahl
Def GetLineLength(2) SendMessage(&(1),$0C1,&(2),0) em_getlinelength
Def IsWindow(1) !"USER32","IsWindow"
window 0,0 -1024,748
hrtf&=Control("richedit20a","",$54315004,5,0,800,400,%hwnd,2000,%hinstance)
setfocus(hrtf&)
sendstring(hrtf&,"Dies ist ein Test")
sendstring(hrtf&,chr$(10))
Proc GetLine
Parameters hrtf&,line&
Declare resulto$,l&
GetLineLength(hrtf&,line&)
Case Or(Equ(IsWindow(hrtf&),0),Equ(GetLineLength(hrtf&,line&),0)): Return ""
Dim buffer#,Add(GetLineLength(hrtf&,line&),1)
dim buffer#,255
SendMessage(hrtf&,$0C4,line&,buffer#)
Let resulto$=Char$(buffer#,0,255)
Dispose buffer#
Return resulto$
EndProc
======================================================================
Proc GetCurrentLine
Parameters hrtf&
GetLine hrtf&,GetLineNr(hrtf&)
Return GetStringResult()
EndProc
=======================================================================
whilenot ende%
GetCurrentLine hrtf&
Let zeile$=GetStringResult()
drawtext 1,600,zeile$
wend
case dll&:freedll dll&
Servus Georg |
|
|
| |
|
|
|
GDL | Hat sich erledigt.
Servus Georg |
|
|
| |
|
|
|
Michael Wodrich | DIM könnte empfindlich auf das SendMessage reagieren.
Versuche es mal mit Zwischenspeicherung der Werte und Angabe einer Variablen bei DIM.
LineCount: Es wird die Anzahl der Zeilen zurückgegeben, aber die Zählung beginnt auch hier (glaube ich) bei Null. Du müßtest es mal mit Rückgabewert -1 versuchen.
(nur theoretisiert; Angst vor dem angekündigten Absturz)
MfG Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 20.05.2005 ▲ |
|
|
|
|
GDL | Hab den Fehler,
iss ein Fehler in der wfrtf.inc.
statt Return resulto$ muss es Return trim$(resulto$) heissen.
Servus Georg |
|
|
| |
|
|