WinApi

Ответить
Аватара пользователя
fLANkeR

WinApi

Сообщение fLANkeR »

функция getclassname не работает Изображение(, но не понятно почему ?)))



пробовал даже так



for i:=1 to 99999999 do

if getclassname(i,namecl,999)0 then

*memo1.lines.add(string(namecl));



все равно не работает!!! почему?!!!



[s]Исправлено: fLANkeR, 21:24 23-01-2003[/s]
Аватара пользователя
shurikan

Re: WinApi

Сообщение shurikan »

fLANkeR

Функция GetClassName предназначена для получения имени класса, к которому принадлежит окно. Первый параметр этой функции имеет тип HWND, т.е. handle (или дескриптор по русски) этого окна, а не произвольное число, которое ты пытаешься передать в функцию. Десятичное 99999999 это всего лишь шестнадцатеричное 5F5E0FF, что гораздо меньше по значению, чем типичный HWND. Если ты пытаешься узнать имя класса твоей формы (например), то функцию надо вызывать примерно так:



Код:
Аватара пользователя
fLANkeR

Re: WinApi

Сообщение fLANkeR »

shurikan



спасибо, но как использорвать эту функцию я знаю, дело не в этом.





посмотри этот код





hd:=findfindows(nil,pchar('form1'));

if hd0 then

begin

  if getclassname(hd,st,999)0 then

  form1.memo1.lines.add(string(st));

end;



здесь тоже не работет Изображение и почему?
Аватара пользователя
shurikan

Re: WinApi

Сообщение shurikan »

fLANkeR

FindWindow принимает два параметра. Первый - строка с именем класса!!! А ты его обнулил. Второй - имя окна. Но если ты применяешь её, то уже должен знать имя класса. А следовательно GetClassName тебе ни к чему. *А этот hd, который ты пытаешься определить, уже есть в форме, как я уже писал раньше, он равен Form1.Handle. Если что-то не понял, пиши... Изображение



Кстати form1 вовсе не имя окна. Это - имя экземпляра класса TForm





[s]Исправлено: shurikan, 8:20 25-01-2003[/s]
Ответить

Вернуться в «Программирование и базы данных»