Текущий архив: 2004.11.07;
Скачать: CL | DM;
ВнизПолучение текста из TMemo Найти похожие ветки
← →
RyDmi © (2004-09-25 00:08) [0]Как посредством WM_GETTEXT получать текст из чужого TMEMO. Очень прошу кого- нибудь откликнутся - НЕ могу никак справится. Заранее спасибо!
← →
Piter © (2004-09-25 00:43) [1]
SendMessage(MemoHandle, WM_GETTEXT, 120, Longint(s));
помогло?
← →
Cobalt © (2004-09-25 00:43) [2]> из чужого TMEMO
В смысле - из чужого процесса?
← →
Piter © (2004-09-25 00:45) [3]Cobalt © (25.09.04 0:43) [2]
В смысле - из чужого процесса?
а какая разница из какого процесса?
RyDmi © (25.09.04 0:08)
В смысле - из чужого процесса?
я чего-то не то кинул, лучше так:SendMessage(MemoHandle, WM_GETTEXT, length(s), Longint(s));
только вот чувствую толку тебе от этой строчки. У тебя большие пробелы в знаниях. На начальном уровне.
← →
GanibalLector © (2004-09-25 02:03) [4]2 Piter © (25.09.04 00:45) [3]
А Вы сами проверяли???Откуда такая уверенность???
Remarks
For an edit control, the text to be copied is the content of the edit control. For a combo box, the text is the content of the edit control (or static-text) portion of the combo box. For a button, the text is the button name. For other windows, the text is the window title. To copy the text of an item in a list box, an application can use the LB_GETTEXT message.
← →
GanibalLector © (2004-09-25 02:29) [5]В итоге,получается что-то типа :
procedure TForm1.Button1Click(Sender: TObject);
var ww:HWND; Text:array [0..4095] of char;
begin
ww:=findwindowex(findwindow("TForm1","Fuck"),0,"TMemo",nil);
Word((@Text)^) := SizeOf(Text);
SendMessage(ww, EM_GETLINE,1,Longint(@Text));
Caption := StrPas(text);
end;
скопировал 2 строку из "чужого" memo и вставил ее в Caption.
← →
Piter © (2004-09-28 11:01) [6]GanibalLector © (25.09.04 2:03) [4]
А Вы сами проверяли???Откуда такая уверенность???
что я проверял и в чем уверенность?
An application sends an LB_GETTEXT message to retrieve a string from a list box.
TMemo - обычный Edit
← →
GanibalLector © (2004-09-28 20:04) [7]что я проверял и в чем уверенность?
В Вашем коде.Это :
SendMessage(MemoHandle, WM_GETTEXT, 120, Longint(s));
не считает TMemo.Хош,проверь сам. :))
← →
Almaz © (2004-09-28 20:27) [8]
> GanibalLector © (25.09.04 02:29) [5]
> А Вы сами проверяли???Откуда такая уверенность???
Позвольте этот же вопрос адресовать Вам. А вы проверяли ? Именно из Memo, принадлежащего окну другого процесса ? Разрешите усомниться, что это сработало, т.к. именно WM_GETTEXT позволяет передавать данные из одного адресного пространства в другое. EM_GETLINE - тут не поможет, нужно использовать именно WM_GETTEXT:var
w: HWND;
Text: PChar;
BufLen: Integer;
begin
w:=findwindowex(findwindow("TForm1","Form1"),0,"TMemo",nil);
BufLen := SendMessage(W, WM_GETTEXTLENGTH, 0, 0);
if BufLen > 0 then
begin
GetMem(Text, BufLen + 1);
SendMessage(W, WM_GETTEXT, BufLen + 1, Integer(Text));
end;
Memo1.Text := Text;
end;
Удачи.
← →
GanibalLector © (2004-09-29 19:44) [9]2 Almaz ©
Позвольте этот же вопрос адресовать Вам. А вы проверяли ?
Естественно.Вот :
var w:HWND;LCount:DWord;
Text:array [0..4095] of char;
i:integer;
begin
w:=findwindowex(findwindow("TForm1","Fuck"),0,"TMemo",nil);
LCount := SendMessage(W, EM_GETLINECOUNT , 0, 0);
for i:=1 to LCount-1 do
begin
Word((@Text)^) := SizeOf(Text);
SendMessage(w, EM_GETLINE,i,Longint(@Text));
Memo1.lines.add( StrPas(text));
end;end;
← →
GanibalLector © (2004-09-29 19:47) [10]2 Almaz ©
т.к. именно WM_GETTEXT позволяет передавать данные из одного адресного пространства в другое. EM_GETLINE - тут не поможет, нужно использовать именно WM_GETTEXT
Ну-ну...Именно из одного приложения в другое и именно EM_GETLINE.Вот.
← →
GanibalLector © (2004-09-30 19:16) [11]Так где правда???
← →
Almaz © (2004-09-30 22:22) [12]
> GanibalLector © (30.09.04 19:16) [11]
> Так где правда???
The truth is out there :)
А если серьезно, то признаю, ваш пример работает. Однако согласитесь, что получать данные одним сообщением несколько эффективнее, чем несколькими да еще с последующей конкатенацией строк.
← →
GanibalLector © (2004-10-01 21:27) [13]2 Almaz
The truth is out there :)
Это точно...
Страницы: 1 вся ветка
Текущий архив: 2004.11.07;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.035 c