Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » WinApi

Ответить
Настройки темы
WinApi

Pascal 4ever


Сообщения: 48
Благодарности: 0

Профиль | Отправить PM | Цитировать


функция 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]

Отправлено: 21:22, 23-01-2003

 

Аватара для shurikan

Старожил


Сообщения: 240
Благодарности: 1

Профиль | Отправить PM | Цитировать


fLANkeR
Функция GetClassName предназначена для получения имени класса, к которому принадлежит окно. Первый параметр этой функции имеет тип HWND, т.е. handle (или дескриптор по русски) этого окна, а не произвольное число, которое ты пытаешься передать в функцию. Десятичное 99999999 это всего лишь шестнадцатеричное 5F5E0FF, что гораздо меньше по значению, чем типичный HWND. Если ты пытаешься узнать имя класса твоей формы (например), то функцию надо вызывать примерно так:
Код: Выделить весь код
GetClassName(Form1.Handle, namecl, 999);
Если namecl - строка в стиле С и 999 - её длина.

-------
UNIX, UNAS и др. Myself I'll like 'em


Отправлено: 04:01, 25-01-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Pascal 4ever


Сообщения: 48
Благодарности: 0

Профиль | Отправить PM | Цитировать


shurikan

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


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


hd:=findfindows(nil,pchar('form1'));
if hd<>0 then
begin
  if getclassname(hd,st,999)<>0 then
  form1.memo1.lines.add(string(st));
end;

здесь тоже не работет и почему?

Отправлено: 06:15, 25-01-2003 | #3


Аватара для shurikan

Старожил


Сообщения: 240
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

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


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

-------
UNIX, UNAS и др. Myself I'll like 'em


Отправлено: 08:15, 25-01-2003 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » WinApi

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Работа с иконками + WinAPI Yashied AutoIt 0 14-05-2009 04:19
создание BRUSH в С++ WinAPI Vlad Drakula Программирование и базы данных 14 15-06-2006 19:10
WinAPI Guest Программирование и базы данных 1 19-03-2004 03:14
Книга по WinAPI antonym Программирование и базы данных 2 04-05-2003 11:59
Image дружит с WinAPI ? SPirit Программирование и базы данных 1 16-03-2002 18:30




 
Переход