Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.21;
Скачать: CL | DM;

Вниз

Как получить строку SendMessage   Найти похожие ветки 

 
delphi-oracle ©   (2006-02-23 08:41) [0]

Я думал, что по
Если сделать, как Рихтер, то ето должно было бы выглядеть так:
sendmessage(form1.Handle,wm_gettext,sizeof(s),lparam(s)); S:Pchar //строка C
К сожалению, при исполнении кода выскакивает ошыбка в Controls / TControl.WndProc. Когда начал менять исходник, смог избавиться от ошыбки, но никакого результата все равно не получил. Видел все ошыбки начиная от Access Violation до ошыбки в ntdll. Здаюсь. Если кто-то может объяснить мне хоть что-то, очень спасибо.


 
delphi-oracle ©   (2006-02-23 09:08) [1]

Защита от приколов
Ну не хоть что-то, а как решыть проблему. Спасибо.


 
begin...end ©   (2006-02-23 09:08) [2]

Перед получением текста нужно узнать его длину и выделить необходимый объём памяти для буфера, в который текст будет помещён. И, посылая WM_GETTEXT, нужно указывать размер буфера, а не размер указателя на него. Вот так:

var
 P: PChar;
 L: Integer;
begin
 L := SendMessage(Handle, WM_GETTEXTLENGTH, 0, 0) + 1;
 GetMem(P, L);
 try
   SendMessage(Handle, WM_GETTEXT, L, Integer(P));
   MessageBox(0, P, "Text", MB_OK)
 finally
   FreeMem(P)
 end
end


PChar и GetMem/FreeMem можно заменить на String и SetString.


 
Nick Denry ©   (2006-02-23 17:27) [3]

delphi-oracle ©   (23.02.06 08:41)

ВМРЯ жи ши


 
Kolan ©   (2006-02-24 10:38) [4]

Еще одно решение. Передовать не строку а число, а при получении сообщения вызывать функцию, которая и вернет строку..

StatusBar.Panels[2].Text
               := DefineFFTError(TFFTErrorType(Msg.LParam));

function DefineFFTError(Error: TFFTErrorType): string;
begin
 case Error of
   ffteDeviceReplyError:
     Result := "Íå äîæäàëñÿ îòâåòà óñòðîéñòâà.";
 end;
end;


Смысл ясен я надеюсь...



Страницы: 1 вся ветка

Текущий архив: 2006.05.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.045 c
1-1144733950
tigra
2006-04-11 09:39
2006.05.21
Ширина колонок таблицы в Word


15-1145635251
ArtemESC
2006-04-21 20:00
2006.05.21
Вирусоаналитики!


11-1126511111
Krupica
2005-09-12 11:45
2006.05.21
Захват аудиопотока из сети (lan-радио)


3-1143191600
kley
2006-03-24 12:13
2006.05.21
замена нулей


2-1146204053
alkin
2006-04-28 10:00
2006.05.21
Как скопировать запись из одной таблицы DBGrid1 в другую таблицу