Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2014, 11:51   #1
loom12
Пользователь
 
Регистрация: 05.09.2014
Сообщений: 24
По умолчанию Как передать nil в свою процедуру?

Здравствуйте! Подскажите пожалуйста как можно передать nil в свою процедуру.

Код:
procedure Click_Button(classwindow:string;namecaptwindow:string);
var wdh: hwnd;
begin
wdh:= findwindow (pchar(classwindow),pchar(namecaptionwindow));
end;

а мне надо вызывать Click_Button(nil;'имя окна');
в дискуссии рождается истина
loom12 вне форума Ответить с цитированием
Старый 12.11.2014, 11:53   #2
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Код:
procedure Click_Button(classwindow:TObject;namecaptwindow:string);
var wdh: hwnd;
begin
wdh:= findwindow (pchar(classwindow),pchar(namecaptionwindow));
end;
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 12.11.2014, 12:41   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Код:
Click_Button(#0, 'имя окна');
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 12.11.2014, 15:00   #4
loom12
Пользователь
 
Регистрация: 05.09.2014
Сообщений: 24
По умолчанию

Цитата:
Сообщение от D-mon Посмотреть сообщение
Код:
procedure Click_Button(classwindow:TObject;namecaptwindow:string);
var wdh: hwnd;
begin
wdh:= findwindow (pchar(classwindow),pchar(namecaptionwindow));
end;
надо универсальный вызов.
так работает
Click_Button(nil,'Имя окно');
а если надо указать имя класса окна, тогда как? Click_Button('TSearchRecConditionFr m','Имя окна');
в дискуссии рождается истина
loom12 вне форума Ответить с цитированием
Старый 12.11.2014, 15:04   #5
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Цитата:
а если надо указать имя класса окна, тогда как? Click_Button('TSearchRecConditionFr m','Имя окна');
А зачем передавать имя? Передавай сразу объект окна, а с объекта можно с лёгкостью имя взять.
Click_Button(TSearchRecConditionFro m(SearchRecConditionFrom),'Имя окна');

Код:
procedure Click_Button(AForm:TObject; namecaptwindow:string);
var wdh: hwnd;
begin
wdh:= findwindow (pchar(TSearchRecConditionFrom(SearchRecConditionFrom).Name), pchar(namecaptionwindow));
end;
Нет невыполнимых задач, всё дело времени...

Последний раз редактировалось D-mon; 12.11.2014 в 15:07.
D-mon вне форума Ответить с цитированием
Старый 12.11.2014, 15:05   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
  if classwindow='' then wdh:= findwindow (nil,pchar(namecaptionwindow))
                    else wdh:= findwindow (pchar(classwindow),pchar(namecaptionwindow));
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.11.2014, 15:09   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Так, я не понял, а какого хрена мой пост #3 проигнорили?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 12.11.2014, 15:29   #8
loom12
Пользователь
 
Регистрация: 05.09.2014
Сообщений: 24
По умолчанию

Код:
Click_Button(#0, 'имя окна');
Не понял как использовать
в дискуссии рождается истина
loom12 вне форума Ответить с цитированием
Старый 12.11.2014, 15:32   #9
loom12
Пользователь
 
Регистрация: 05.09.2014
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
  if classwindow='' then wdh:= findwindow (nil,pchar(namecaptionwindow))
                    else wdh:= findwindow (pchar(classwindow),pchar(namecaptionwindow));
не хочится с if потому что в процедуре на самом деле будет много функций
findwindow и findwindowex и разные имена классов
в дискуссии рождается истина
loom12 вне форума Ответить с цитированием
Старый 12.11.2014, 15:35   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Не понял как использовать
Так и использовать.
Я ж не виноват в том, что ты проверять не хочешь.
А я, вот, прогнал под отладчиком и узнал, что PChar(#0) = nil.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать динамический массив Tbitmap в процедуру Armageddets Мультимедиа в Delphi 3 21.06.2014 19:29
Как содержимое файла передать в процедуру ?! stalker1995s Общие вопросы Delphi 11 16.07.2012 03:37
Как написать свою процедуру? theYozh Помощь студентам 10 08.03.2009 11:18
Как передать упавление на процедуру? Волк Общие вопросы Delphi 7 05.02.2009 19:26
Как передать указатель в процедуру??? kate4ka Общие вопросы Delphi 1 17.03.2008 12:49