Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.039 c
1-1098707361
}|{yk
2004-10-25 16:29
2004.11.07
Работа с двумерным вариантным массивом


3-1097069063
Rule
2004-10-06 17:24
2004.11.07
Вопрос по хранимой процедуре (FB 1.x + IBX 7.08)


14-1097579173
Mega-Volt
2004-10-12 15:06
2004.11.07
Возникли проблемы с ником :(


1-1098208529
Falcon(TFSoft)
2004-10-19 21:55
2004.11.07
^ и @


1-1098421675
Anatoly P
2004-10-22 09:07
2004.11.07
Консольная программа





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский