Author Topic: об окнах  (Read 2687 times)

0 Members and 1 Guest are viewing this topic.

quant13

  • Активный участник
  • ***
  • Posts: 174
    • View Profile
об окнах
« on: October 04, 2014, 11:57:06 PM »
Можно ли средствами программы взять окно, изменить его положение и размер (как это сделать я знаю), а потом (внимание!!) Вернуть на место как было

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: об окнах
« Reply #1 on: October 05, 2014, 12:49:10 AM »
Для этого необходимы системные переменные возвращающие размер и координаты окна, их нет поэтому нельзя.
Можно использовать поиск картинок чтобы вычислить положение окна, но опять же это неудобный костыль.

quant13

  • Активный участник
  • ***
  • Posts: 174
    • View Profile
Re: об окнах
« Reply #2 on: October 05, 2014, 07:37:04 AM »
Тогда предлагаю ввести их, ведь ОС должна возвращать данные о позиции и размере окна, много программ запоминают эти данные при выходе, откуда-то они их берут.

И еще вопрос, есть какой способ присвоить параметру #name переменную, или переменной значение этого параметра?
И какая переменная возвращает текущее количество циклов выполнения скрипта? Если нету, надо бы ввести


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: об окнах
« Reply #3 on: October 05, 2014, 11:26:15 AM »
Тогда предлагаю ввести их, ведь ОС должна возвращать данные о позиции и размере окна, много программ запоминают эти данные при выходе, откуда-то они их берут.

И еще вопрос, есть какой способ присвоить параметру #name переменную, или переменной значение этого параметра?
И какая переменная возвращает текущее количество циклов выполнения скрипта? Если нету, надо бы ввести

Ладно про окна то понятно, вещь нужная, а вот остальное надуманно...

Что тебе мешает создать после имени переменную?!
Code: (clickermann) [Select]
#name "СуперБот v1.2"
$skript_name = "СуперБот v1.2"

В конце скрипта пишешь счетчик, вот тебе и количество циклов.
Code: (clickermann) [Select]
INC($skript_count,1)

quant13

  • Активный участник
  • ***
  • Posts: 174
    • View Profile
Re: об окнах
« Reply #4 on: October 05, 2014, 08:09:32 PM »
это лишние переменные, лишние операторы, и проверки. Приведу пример зачем оно нужно
Code: [Select]
описание переменных
привязка к окнам
расстановка окон
и прочее

:m1
бла бла бла
работа скрипта
условия и циклы
goto m1

вот в коде все что идет до метки :m1 нужно выполнить один раз

использовать goto не самая блестящая идея, но обвешивать скрипт лишними переменными, inc'ами и проверками еще хуже, не говоря о том что неудобно и можно запутаться.
Со встроенной переменной счетчика циклов выполнения скрипта(от начала выполнения), будет нужна всего одна проверка.
Тем более что такой счетчик и так есть, только в среду не введен, в главном окне программы внизу он отображается.

Про переменные с #name.
Есть идея менять заголовок окна в зависимости от #name, также менять #name по условиям, да идей разных полно. В целом это для упрощения, загрузил скрипт, изменил одну строчку и сразу поменялось многое по ходу выполнения.
« Last Edit: October 05, 2014, 08:18:18 PM by quant13 »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: об окнах
« Reply #5 on: October 05, 2014, 09:37:05 PM »
Приводишь пример в котором твоя идея работать не будет. Как раз гото используется правильно, в большинстве скриптов так и делают. Сначала предварительные команды а потом на вечно зацикленный основной код. В результате до конца скрипт не дойдет и будет всегда 0 проходов. Системные переменные нельзя сбросить.
Одна строчка
Code: (clickermann) [Select]
INC($skript_count,1)позволяет гибко использовать счетчик, считать внутри циклов там где это надо, и сбрасывать по достижению нужных величин.

Code: (clickermann) [Select]
//привязка к окнам
//расстановка окон
//и прочее

m1:
//бла бла бла
//работа скрипта
//условия и циклы

INC($skript_count,1)
IF($skript_count = 100)
   $skript_count = 0
   // действия каждый 100й проход
END_IF
goto (m1)

В результате не желая писать одну строчку, ты просишь ограниченную системную переменную, которая в большинстве случаев и работать то не будет.  :o
Кстати в новой 4.11 бетте этого счетчика больше нет. Его заменило вывод последней строки лога.

Имя оно и есть имя, представь себе рассказ который каждую страницу меняет свое имя, странно  ???
Если ты написал имя то и переменную с именами написать не сложно, её то и надо менять если потребуется, тем более что это все редкие частные случаи.
В общем все это и так можно осуществить.

« Last Edit: October 05, 2014, 09:41:56 PM by Oraven »