
procedure TBeyluxe.SendTxtBeyluxe(RichEditTxt: TRichEdit);
var
memStream: TMemoryStream;
strList: TStringList;
sText: String;
start_pos,end_pos,txt_len: integer;
begin
if RmRichTxtHwnd <> 0 then
begin
memStream := TMemoryStream.Create;
strList := TStringList.Create;
try
RichEditTxt.Lines.SaveToStream( memStream );
memStream.Position := 0;
strList.LoadFromStream( memStream );
sText:= strList.GetText;
txt_len:= SendMessage(RmRichTxtHwnd, WM_GETTEXTLENGTH, 0, 0);
If txt_len > 0 Then
begin
SendMessage(RmRichTxtHwnd, EM_GETSEL, start_pos, end_pos);
SendMessage(RmRichTxtHwnd, EM_SETSEL, 0, txt_len);
SendMessage(RmRichTxtHwnd, WM_CUT, 0, 0);
SendMessage(RmRichTxtHwnd,WM_SETTEXT,Length(sText),Integer(PChar(sText)));
PostMessage(RmRichTxtHwnd, WM_KEYDOWN, VK_RETURN,0);
PostMessage(RmRichTxtHwnd, WM_KEYUP, VK_RETURN,0);
Sleep(100);
SendMessage(RmRichTxtHwnd, WM_PASTE, 0, 0);
SendMessage(RmRichTxtHwnd, EM_SETSEL, txt_len, txt_len);
end
else
begin
SendMessage(RmRichTxtHwnd,WM_SETTEXT,Length(sText),Integer(PChar(sText)));
PostMessage(RmRichTxtHwnd, WM_KEYDOWN, VK_RETURN,0);
PostMessage(RmRichTxtHwnd, WM_KEYUP, VK_RETURN,0);
end
finally
memStream.Free;
strList.Free;
end;
end;
counter:= 0;
end;



Return to Visual Basic Programming
Users browsing this forum: No registered users and 0 guests