| Author: | Eric Aling (13 july 1999) |
Question: How can I get the text from a specified line. Eg. Getting text
from line 2 in MLE.
You should think that PowerBuilder has functions to do this basic stuff.
Not. So, what else possibilities does exist to accomplish this. Actually, it is pretty
simple. Just send a message to the MLE with some arguments. There are several argumtents
you can pass. Check out the following example.
/* external functions */
function long SendMessageA(ulong hwnd, ulong msg, long wp, ref string s ) library 'user32.dll' function long SendMessageA(ulong hwnd, ulong msg, long wp, long lp ) library 'user32.dll' /* constants */
integer EM_LINELENGTH = 193
integer EM_GETLINE = 196
integer EM_LINEINDEX = 187
long ll_linelength
long ll_linechar
string ls_line
/* example line to retrieve */
integer li_line = 2
/* get charindex on line */
ll_linechar = sendmessageA(handle(mle_1), EM_LINEINDEX, li_line - 1, 0 )
messagebox('first char on line',ll_linechar)
/* get linelength */
ll_linelength = sendmessageA(handle(mle_1), EM_LINELENGTH, ll_linechar, 0 )
messagebox('linelength',ll_linelength)
/* allocate buffer */
ls_line = space(ll_linelength + 1)
/* get line */
sendmessageA(handle(mle_1), EM_GETLINE, li_line - 1, ls_line )
/* display */
messagebox('line',ls_line)
That's pretty simple ain't it. Check out the Windows API helpfile for more values to use.