Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите разобраться с функцией


Alek ©   (2004-07-29 14:23:00) 

Есть функция GetWindowText, у нее три параметра
дскриптор окна
поинетр на буфер
и размер буфера

вот немогу разобраться с буфером, создал переменную

типа стрин
buf: string

а как на нее поинтер повесить?

GetWindowText(GetForegroundWindow,buf, 100);


GrayFace   (2004-07-31 18:30:00) [1]

function GetTextWindow(WinHandle: THandle): String;
begin
 SetLength(Result, SendMessage(WinHandle, WM_GETTEXTLENGTH, 0,  0) +1);
 GetWindowText(WinHandle, PChar(Result), Length(Result)));
end;


default   (2004-07-29 16:22:00) [2]

тогда
function GetTextWindow(WinHandle: THandle): String;
begin
 SetLength(Result, SendMessage(WinHandle, WM_GETTEXTLENGTH, 0,  0));
 GetWindowText(WinHandle, PChar(Result), Length(Result)));
end;


ZrenBy   (2004-07-29 16:07:00) [3]

Тогда уж

var S:String;
begin
 SetLength(S,SendMessage(WinHandle,WM_GETTEXTLENGTH,0,0)+1);
 SetLength(S,SendMessage(WinHandle,WM_GETTEXT,Length(S),LPARAM(S)));


default   (2004-07-29 15:03:00) [4]

const
 NeedMax = 50;

function GetTextWindow(WinHandle: THandle): String;
begin
 SetLength(Result, NeedMax);
 SetLength(Result, GetWindowText(WinHandle, PChar(Result), NeedMax));
end;


Anatoly Podgoretsky   (2004-07-29 14:58:00) [5]

Alek ©   (29.07.04 14:23)  
GetWindowText(GetForegroundWindow,buf[1], 100);


Alek   (2004-07-29 14:37:00) [6]

type
PStr = ^TStr;
TStr = Array[0..200] of Char;

var
buf: PStr;

GetWindowText(GetForegroundWindow,buf, 100);

или вот так?

GetWindowText(GetForegroundWindow,PStr, 100);

Прошу прощения но я неразу не работал с этим :(


default   (2004-07-29 14:32:00) [7]

TStr = Array[ 1..$FFFFFFFF] of Char;


default   (2004-07-29 14:30:00) [8]

PStr = ^TStr;
TStr = Array[0..$FFFFFFFF] of Char;
можно, хотя этого не совсем точно положить, что String=PStr
тогда как будешь передавать Buf? ф-ции нужен Pointer на первый элемент массива


Наверх

Титульная страница Поиск, карта сайта Написать письмо