Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.05.22;
Скачать: [xml.tar.bz2];

Вниз

AV в API callback   Найти похожие ветки 

 
RWolf ©   (2011-02-16 12:08) [0]

Что не так в нижеприведённом коде?

procedure EnumerateWindows(const sl: TStrings);
 function EnumWindowProc(Handle: THandle; lParam: integer): BOOL; stdcall;
 var
   nread: DWORD;
   buf: array[1..256] of Char;
   wt: string;
 begin
   result := True;
   nread := GetWindowText(Handle, @buf, 256);
   if nread <> 0 then begin
     SetLength(wt, nread);
     move(buf[1], wt[1], nread);
     sl.Add(wt);
   end;
 end;
begin
 sl.Clear;
 EnumWindows(@EnumWindowProc, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 EnumerateWindows(memo1.Lines);
end;


---------------------------
"Access violation at address 004504CE in module "Project1.exe". Read of address 000000A0".
---------------------------


 
clickmaker ©   (2011-02-16 12:14) [1]

nread := GetWindowTextLength(Handle);
SetLength(wt, nread);
GetWindowText(Handle, PChar(wt), nread);


 
DiamondShark ©   (2011-02-16 12:52) [2]

Вложенную функцию как колбэк передавать?
Свежо.


 
RWolf ©   (2011-02-16 12:55) [3]


> DiamondShark ©   (16.02.11 12:52) [2]

нормально; это я не подумал, что стек сдвинется.
Передача контекста (т.е. sl) через параметр EnumWindows"а помогла.



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

Форум: "Начинающим";
Текущий архив: 2011.05.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.003 c
1-1254725450
Aleks
2009-10-05 10:50
2011.05.22
Как вывести а потом стереть текст на канве Image?


2-1297509771
Pavel
2011-02-12 14:22
2011.05.22
Каким образом можно узнать, что форму начали двигать?


2-1297425235
RUu
2011-02-11 14:53
2011.05.22
seek, locate


6-1229662971
AdMeen
2008-12-19 08:02
2011.05.22
Client-Server+Dynamic IP


3-1258970968
denis_7
2009-11-23 13:09
2011.05.22
Проблема с отчетами в Rave





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский