Что нового

Вывод результата в Statusbar

Scampy

Новичок
Сообщения
50
Репутация
0
Добрый день!
Есть скрипт
Код:
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 615, 438, 192, 124)
$StatusBar1 = _GUICtrlStatusBar_Create($Form1)
Dim $StatusBar1_PartsWidth[4] = [150, 300, 450, -1]
_GUICtrlStatusBar_SetParts($StatusBar1, $StatusBar1_PartsWidth)
_GUICtrlStatusBar_SetText($StatusBar1, "", 0)
_GUICtrlStatusBar_SetText($StatusBar1, "", 1)
_GUICtrlStatusBar_SetText($StatusBar1, "", 2)
_GUICtrlStatusBar_SetText($StatusBar1, "", 3)
_GUICtrlStatusBar_SetMinHeight($StatusBar1, 17)
$regUAC = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System', 'EnableLUA')
$LabelAdmin = GUICtrlCreateLabel('', 10, 372, 200, 17)
$LabelUAC = GUICtrlCreateLabel('', 130, 372, 200, 17)

GUISetState(@SW_SHOW)

;~ Проверка Администратор
If IsAdmin() Then
    GUICtrlSetData($LabelAdmin, "admin")
Else
    GUICtrlSetData($LabelAdmin, "not admin")
EndIf

;~ Проверка UAC
Switch $regUAC
  Case 1
    GUICtrlSetData($LabelUAC, "UAC on")
  Case 0
    GUICtrlSetData($LabelUAC, "UAC off")
  Case Else
    MsgBox(0, "", "unknown")
EndSwitch

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd

Как вывести результат в не в Label, а 1 и 2 части Statusbar по центру в каждом?
Спасибо
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Вывод результата в статусбар

Предупреждение За нарушение общих правил (пункт В.8):
Так как эта конференция называется "Русское сообщество AutoIt", язык общения на ней - Русский. Названия фирм или программных продуктов, аббревиатуры и т.д. должны быть написаны так, как они пишутся в оригинале, например не следует писать УСБ вместо USB. На форуме крайне не рекомендуется намеренно искажать русский язык и использовать "сетевой жаргон" на подобии "Аффтар выпей йадау!".


С уважением, ваш Глобальный модератор.






Добавлено:
Сообщение автоматически объединено:

Scampy,
Название темы исправьте.


Добавлено:
Сообщение автоматически объединено:

Scampy [?]
вывести результат в не в Label, а 1 и 2 части Statusbar по центру
Как-то так:
Код:
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>

Global $aStatusBar_PartsWidth[4] = [150, 300, 450, -1], $sTxt

$hGui = GUICreate('StatusBar', 615, 438)
$hStatusBar = _GUICtrlStatusBar_Create($hGui)
_GUICtrlStatusBar_SetParts($hStatusBar, $aStatusBar_PartsWidth)
_GUICtrlStatusBar_SetMinHeight($hStatusBar, 17)
Switch Number(RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System', 'EnableLUA'))
	Case 0
		$sTxt = 'UAC off'
	Case 1
		$sTxt = 'UAC on'
	Case Else
		$sTxt = 'unknown'
EndSwitch
_GUICtrlStatusBar_SetText($hStatusBar, @TAB & $sTxt, 1)
$sTxt = 'not admin'
If IsAdmin() Then $sTxt = 'admin'
_GUICtrlStatusBar_SetText($hStatusBar, @TAB & $sTxt, 2)
$sTxt = ''
GUISetState()

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd
 

Kasper

Знающий
Сообщения
70
Репутация
8
Вот набросал быстро
Код:
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>

Dim $aText[3] = ["Левое выравнивание", @TAB & "Центр", @TAB & @TAB & "Правое выравнивание"]
Dim $aParts[3] = [100, 175, -1]
$hGUI = GUICreate("(Пример 3) Создание StatusBar", 400, 300)
$hStatus = _GUICtrlStatusBar_Create ($hGUI, $aParts, $aText)
$Button = GUICtrlCreateButton("Сменить", 2, 2, 396, 274)
GUISetState()


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button
			_ChangeDataStatusBar($hGUI,'100,175,-1','Тест1,Тест2,Тест3')

	EndSwitch
WEnd

Func _ChangeDataStatusBar($aGUI,$aParts,$aText)
	$aParts = StringSplit($aParts,',')
	$aText = StringSplit($aText,',')
	_GUICtrlStatusBar_Destroy($aGUI)
	$hStatus = _GUICtrlStatusBar_Create ($aGUI, $aParts, $aText)


EndFunc
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Kasper [?]
Вот набросал быстро
Неудачный пример. Зачем удалять старый и создавать новый StatusBar, если можно просто поменять текст. По Вашей логике для изменения текста в Label нужно удалить окно и создать новое с новым Label.
 

Kasper

Знающий
Сообщения
70
Репутация
8
madmasles сказал(а):
Kasper [?]
Вот набросал быстро
Неудачный пример. Зачем удалять старый и создавать новый StatusBar, если можно просто поменять текст. По Вашей логике для изменения текста в Label нужно удалить окно и создать новое с новым Label.
Согласен.
Но когда я писал я не видел вашего комментария и на странице описания функции _GUICtrlStatusBar_Create в пункте См. также я не увидел функции _GUICtrlStatusBar_SetText
Но теперь буду знать о ее существовании и не будет таких неудачных примеров :smile:
 
Верх