Автор Тема: Не понятные сложности при создании графических элементов  (Прочитано 546 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kyi [?]

  • Новичок
  • *
  • Сообщений: 43
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Добрый день!
Объясните пожалуйста зачем писать такие сложности
Код: AutoIt [Выделить]
$Button1 = GUICtrlCreateButton("Кнопка", 54, 88, 133, 33)
 

Когда тоже самое можно получить и без создания переменной, вот так
Код: AutoIt [Выделить]
GUICtrlCreateButton("Кнопка", 54, 88, 133, 33)
 

Я не понимаю, зачем процесс создания графического элемента описывать как переменная.

Русское сообщество AutoIt


Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3784
  • Репутация: 999
    • Награды
  • Версия AutoIt: 3.3.14.0
kyi  [?]
Цитировать
зачем процесс создания графического элемента описывать как переменная
Чтобы при обработке события знать от какого элемента оно пришло.
Разберите пример в справке по этой функции и всё поймёте.

Оффлайн kyi [?]

  • Новичок
  • *
  • Сообщений: 43

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Так в том то и дело, что нету примеров которые бы подробно описывали что и зачем, поэтому и обратился сюда.
Если у вас есть пример (для тех кто с программированием знаком 3 недели на уровне чтения справки) с самым подробным разбором всего, буду очень признателен

Оффлайн Prog [?]

  • Осваивающий
  • **
  • Сообщений: 292
  • Репутация: 29
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
kyi  [?]
Цитировать
Так в том то и дело, что нету примеров которые бы подробно описывали что и зачем
Посмотрите пример в справке https://autoit-script.ru/autoit3_docs/functions/GUICtrlCreateButton.htm
Код: AutoIt [Выделить]
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>

#NoTrayIcon ; не показывать иконку в трее

Local $Button_1, $Button_2, $Button_3, $Button_4, $Button_5, $msg, $hGUI
$hGUI = GUICreate("GUI с кнопкой") ; Создаёт окно в центре экрана

Opt("GUICoordMode", 2)
$Button_1 = GUICtrlCreateButton("Запуск блокнота", 10, 20, 120)
$Button_2 = GUICtrlCreateButton("Тестовая кнопка", -1, 0) ; относительные координаты
GUICtrlSetBkColor(-1, 0x0) ; Назначение цвета кнопке приводит к потере события WM_NOTIFY и не обрабатывает быстрые многократные нажатия
GUICtrlSetColor(-1, 0xFFFFFF)

$Button_3 = GUICtrlCreateButton("-", -1, 10, 22, 22, $BS_ICON)
GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 42, 0)

$Button_4 = GUICtrlCreateButton("-", -1, 10, 40, 40, $BS_ICON + $BS_FLAT)
GUICtrlSetImage(-1, "shell32.dll", 46, 1)

$Button_5 = GUICtrlCreateButton("кнопка с рисунком bmp", -1, 10, 160, 160, $BS_PUSHLIKE + $BS_BITMAP)
GUICtrlSetImage(-1, "oemlogo.bmp")

GUISetState() ; показывает созданное окно

; Запускается цикл опроса GUI до тех пор пока окно не будет закрыто
While 1
     Switch GUIGetMsg()
         Case $GUI_EVENT_CLOSE
             ExitLoop
         Case $Button_1
             Run('notepad.exe') ; будет запущен или открыт блокнот
         Case $Button_2
             GUICtrlSetData($Button_2, 'Новый текст')
         Case $Button_3
             GUICtrlSetImage($Button_3, @SystemDir & '\shell32.dll', 22, 0)
         Case $Button_4
             MsgBox(4096, 'Тест', 'Нажата кнопка со стилем плоской кнопки', 0, $hGUI); Демонстрация действия при нажатии Button 4
         Case $Button_5
             MsgBox(4096, 'Тест', 'Нажата кнопка с BMP рисунком', 0, $hGUI)
     EndSwitch
WEnd

А теперь представьте что при создании кнопок их идентификаторы не сохранены в переменных.
Код: AutoIt [Выделить]
$Button_1 = GUICtrlCreateButton("Запуск блокнота", 10, 20, 120)
GUICtrlCreateButton("Тестовая кнопка", -1, 0) ; относительные координаты
GUICtrlCreateButton("-", -1, 10, 22, 22, $BS_ICON)
GUICtrlCreateButton("-", -1, 10, 40, 40, $BS_ICON + $BS_FLAT)
GUICtrlCreateButton("кнопка с рисунком bmp", -1, 10, 160, 160, $BS_PUSHLIKE + $BS_BITMAP)

Как узнать какую кнопку нажали?

Русское сообщество AutoIt


Оффлайн kyi [?]

  • Новичок
  • *
  • Сообщений: 43

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Даааасс...
Конечно немного прояснилось, но пока привыкну и буду понимать на все 100%....
Кстати, а вот это обязательно?
Код: AutoIt [Выделить]
Local $Button_1, $Button_2, $Button_3, $Button_4, $Button_5, $msg, $hGUI

В некоторых скриптах заранее не описывают переменные... ээээ... элементов что ли.

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
9 Ответов
5425 Просмотров
Последний ответ Февраль 10, 2010, 17:48:20
от Nitro-N
21 Ответов
13660 Просмотров
Последний ответ Июль 26, 2010, 23:29:51
от assch
0 Ответов
2403 Просмотров
Последний ответ Июль 26, 2010, 01:38:49
от CreatoR
2 Ответов
2431 Просмотров
Последний ответ Май 11, 2012, 06:30:39
от Yanish
5 Ответов
3157 Просмотров
Последний ответ Август 21, 2012, 08:58:48
от Vlasssov
18 Ответов
5079 Просмотров
Последний ответ Октябрь 17, 2012, 00:07:30
от Kaster
3 Ответов
2065 Просмотров
Последний ответ Декабрь 21, 2014, 19:24:21
от brain
13 Ответов
3482 Просмотров
Последний ответ Август 18, 2015, 17:37:49
от veretragna
0 Ответов
79 Просмотров
Последний ответ Апрель 13, 2018, 10:02:50
от АндрейVirus
3 Ответов
160 Просмотров
Последний ответ Июнь 18, 2018, 22:10:29
от dr.room