Форум работает в тестовом режиме. Все данные были перенесены со старого сайта 2018 года. Некоторая информация может быть недоступна, например вложения или хайды. Просьба сообщать о данных случаях через функционал "Жалоба", прямо под постом, где отсуствуют данные из хайда или проблемы с вложением.
Могут быть проблемы в "выкидыванием" с форума (слетевшей авторизацией). Нужно собрать статистику таких случаев.
Есть Тема, куда можете сообщить о проблемах с сайтом либо просто передать привет.

Помогите решить проблему при получении информации с другого окна

Рег
6 Ноя 2016
Сообщения
89
Реакции
0
Хотел написать скрипт, контролирующий другие окна, но сталкнулся с проблемой, если то окно, которое контролирую с основного, вылетает, то скрипт выдаёт ошибку доступа к адресу....
можно ли избежать эту ошибку?
Вот простой скрипт:

begin
if GetControl('NikName').GetUser.OID<>0 then
print('Персонаж в игре');
end.

Он выдаёт надпись "Персонаж в игре", если NikName действительно в игре, но если NikName не в игре, то скрипт выдаёт ошибку:
Script error: Module: "", Line: 1, Message: Access violation at address 009E19FC in module 'Notepad.exe'. Read of address 00000004

Как можно обойти это? Т.е. если персонажа нет в игре, то скрипт ничего бы не делал, либо просто не обращал внимания на ошибку? Между персонажами расстояние большое,
 
попробовал так:

var myPtr : TL2Char;
begin
myPtr:=nil;
if Assigned(GetControl('Nick').GetUser) then
begin
myPtr:=GetControl('Nick').GetUser;
print(myPtr.Name);
end;
end.

Не помогло, или же я не совсем понял как воспользоваться функцией, всё равно ошибка если Nick не в игре( Правда появилась мысль брать всех в пати и получать контроль по пати листу, но это больше на костыль похоже, хотя придётся так и реализовать если по другому не получится(
 
Из скриптов IRev пример -
Код:
  remoteControl := GetControl(remoteNick);
  if (Assigned(remoteControl)) then
  begin
    remoteUser := remoteControl.GetUser;
  ......................................
 
@BreadfanLock, Отлично! огромное спасибо, работает)
 
Назад
Сверху