Автор Тема: Перемещение Graphic при Resize дочернего окна  (Прочитано 825 раз)

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

Оффлайн Vint91 [?]

  • Новичок
  • *
  • Сообщений: 9
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Все привет, не судите строго я чайник. Почему "убегает" вниз кружок при изменении размера дочернего  окна $h_GUItree (сперва прокрутите скролл, шарик внизу)?
Ссылка на проект(я не могу оставлять ссылки так что только так):
//yadi.sk/d/kyDaQUpEILTzhg

Код: AutoIt [Выделить]
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <GuiButton.au3>
#Include <GuiMenu.au3>
#include <WinAPIShellEx.au3>
#include "GUIScrollbars_Ex.au3"
#include <Array.au3>
#include <File.au3>

$projpath="d:\Projects\MZAL\Sim072"
$g_namemydir=".myarc"
$sourcedir = '!source'
ProjForm(@ScriptDir)

Func ProjForm($proj)
    local $ParentWidth = 800
    Global $ProjectForm = GUICreate("ProjectForm",$ParentWidth,465,-1,-1,$WS_OVERLAPPEDWINDOW,-1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit", $ProjectForm)
    GUISetState(@SW_SHOW,$ProjectForm)
    ChildGuiTree($ParentWidth-50, $proj)

EndFunc

Func ChildGuiTree($childwidth, $projpath)

    local $height = 200, $heightscroll = 0, $diamcirc = 11
    $h_GUItree = GUICreate("Child GUI", $childwidth, $height, 10, 10, $WS_CHILD+$WS_OVERLAPPED+$WS_THICKFRAME, $WS_EX_CLIENTEDGE, $ProjectForm)
    GUISetBkColor(0xFFFFFF)
    $hell=GUICtrlCreateGraphic(20, 20, 400, 100)
    ;GUICtrlSetBkColor(-1, 0xffffff)
    ;GUICtrlSetColor(-1, 0)
    Local $A_amountbranch = _FileListToArray($projpath & '\' & $g_namemydir,"*", 2)
    Local $First_element =  $A_amountbranch[1]
    _ArrayDelete($A_amountbranch,1)

    Dim  $A_branch
    Dim $A_AmountRow[]=[0]
    ;Определение максимального количества элементов в ветви
    ;~ _ArrayDisplay($A_AmountRow)
        For  $i = 1 to $A_amountbranch[0]-1 step 1
            $A_branch = _FileListToArray($projpath & '\' & $g_namemydir & '\' & $A_amountbranch[$i],"*", 2)
            _ArrayAdd($A_AmountRow,$A_branch[0])
        Next
    Local $MaxElement =_ArrayMax($A_AmountRow)
    Local $A_branchcontent[$MaxElement][$A_amountbranch[0]-1]

    ;Создание многомерного массива с назаваниями элементов ветвей
    If $A_amountbranch[0]>1 Then
        For  $i = 1 to $A_amountbranch[0]-1 step 1
            $A_branch = _FileListToArray($projpath & '\' & $g_namemydir & '\' & $A_amountbranch[$i],"*", 2)
            if @error <> 0 then Return
            For  $j = 1 to $A_branch[0] step 1
                $A_branchcontent[$j-1][$i-1] = $A_branch[$j]
            Next
        Next
    EndIf
    ConsoleWrite($First_element & "///" & $MaxElement &  "...." & @CR)
    IF $MaxElement <=  5 Then
        IF $First_element = $sourcedir Then
            GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x000000, 0xc0c0ff)
            GUICtrlSetGraphic(-1, $GUI_GR_ELLIPSE, 5, $height + $heightscroll -50, $diamcirc, $diamcirc)
        EndIf
    Else
        IF $First_element = $sourcedir Then
            $heightscroll = $MaxElement * 15
            GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x000000, 0xc0c0ff)
            GUICtrlSetGraphic(-1, $GUI_GR_ELLIPSE, 5, $height + $heightscroll -20, $diamcirc, $diamcirc)
            GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM)
        EndIf
    EndIf


    GUISetState(@SW_SHOW)
    _GUIScrollbars_Generate($h_GUItree, 0,$height +  $heightscroll)
EndFunc

Func _Exit()
    Exit
EndFunc

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

    EndSwitch
WEnd

« Последнее редактирование: Январь 15, 2019, 17:29:21 от Vint91, Причина: Изменен код »

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

Перемещение Graphic при Resize дочернего окна
« Отправлен: Январь 15, 2019, 17:16:07 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
6 Ответов
5425 Просмотров
Последний ответ Март 02, 2012, 04:06:52
от CreatoR
4 Ответов
5410 Просмотров
Последний ответ Июль 11, 2010, 14:12:32
от Garrett
4 Ответов
5484 Просмотров
Последний ответ Август 16, 2010, 16:24:37
от XpycT
3 Ответов
3037 Просмотров
Последний ответ Ноябрь 21, 2010, 13:09:50
от maddoc
25 Ответов
12125 Просмотров
Последний ответ Март 19, 2011, 13:25:20
от AZJIO
0 Ответов
1403 Просмотров
Последний ответ Март 23, 2012, 16:58:36
от 3y3
0 Ответов
1527 Просмотров
Последний ответ Май 01, 2013, 04:36:28
от Alexander
0 Ответов
1737 Просмотров
Последний ответ Сентябрь 18, 2014, 14:34:05
от SyDr
2 Ответов
1702 Просмотров
Последний ответ Август 05, 2015, 13:11:38
от ckret
2 Ответов
842 Просмотров
Последний ответ Сентябрь 23, 2016, 13:47:41
от Vovsla