Что нового

Создание таблицы с возможностью добавления строк

Spyhunter

Знающий
Сообщения
56
Репутация
13
Собственно мне, с вашей помощью, нужно создать таблицу в которую можно будет добавить содержимое нажав кнопку "Добавить". Таблица должна содержать 3 критерия, то есть координаты X, Y и Z.
И так же получить все эти 3 значения при выборе какой-либо строки.
Думаю лучше записывать в ini файл, а как прочитать оттуда?
Идей как это всё сделать... нет. :-\

Вот этим можно в ini записать.
Код:
$sFile = FileSaveDialog("Укажите INI", "", "INI (*.ini)")
If @error Then Exit

$sData = InputBox("", "Введите X") & "|" & InputBox("", "Введите Y") & "|" & InputBox("", "Введите Z")
If @error Then Exit

$sSection = "ListView"
$sItemPrefix = "Item"

_GUICtrlListView_AddItemToINI($sFile, $sData, $sSection, $sItemPrefix)

Func _GUICtrlListView_AddItemToINI($hFile, $sString, $sSection, $sItemPrefix)
    Local $iTotal

    If Not FileExists($hFile) Then SetError(1)

    $iTotal = _GUICtrlListView_CountItemsFromINI($hFile, $sSection, $sItemPrefix)

    IniWrite($hFile, $sSection, $sItemPrefix & $iTotal, $sString)
EndFunc

Func _GUICtrlListView_CountItemsFromINI($hFile, $sSection, $sItemPrefix)
    Local $iNum = 0, $sString

    If Not FileExists($hFile) Then SetError(1)

    While 1 = 1
        $sString = IniRead($hFile, $sSection, $sItemPrefix & $iNum, "")

        If $sString = "" Then
            ExitLoop
        EndIf

        $iNum += 1

    WEnd

    Return $iNum
EndFunc
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Модератор.
 
Автор
Spyhunter

Spyhunter

Знающий
Сообщения
56
Репутация
13
Я в этом не знаток... но скорее всего да. окно и то, что в нём помимо таблицы готово. Осталось вставить саму таблицу...
 
Автор
Spyhunter

Spyhunter

Знающий
Сообщения
56
Репутация
13
Не совсем.. По виду, 1-ая вполне подходит, но в ней должна быть возможность выбора строки и её добавления/удаления.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
См. в сторону ListView, в справке есть примеры.
 
Автор
Spyhunter

Spyhunter

Знающий
Сообщения
56
Репутация
13
С кучей условий (не думаю, что верно) получилось. Задача решена.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Spyhunter [?]

[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 

white raven

Новичок
Сообщения
3
Репутация
0
[Данные, строки] Re: Создание таблицы с возможностью добавления строк

Код:
#include "Table.au3"
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <WinAPI.au3>

;----- GUI (Double Buffered) -----
$GUI = GUICreate("", 600, 600)

;----- Make sure GUI exists BEFORE creating Tables -----
GUISetState()

;----- Lock GUI until tables drawn -----


;----- Table Example 4 -----
$Table4 = _GUICtrlTable_Create(0, 0, 24, 16, 26, 8, 0)
_GUICtrlTable_Set_CellColor_All($Table4, 0xD2F0FF)
_GUICtrlTable_Set_RowHeight($Table4, 1, 35)
_GUICtrlTable_Set_Justify_All($Table4, 1, 1)
_GUICtrlTable_Set_TextFont_All($Table4, 8.5, 800, 0, "Tahoma")
_GUICtrlTable_Set_CellColor_Row($Table4, 1, 0x555555)
_GUICtrlTable_Set_TextColor_All($Table4, 0x555555)
_GUICtrlTable_Set_TextColor_Row($Table4, 1, 0xFFFFFF)
_GUICtrlTable_Set_TextColor_Column($Table4, 1, 0xFFFFFF)
    _GUICtrlTable_Set_CellColor_Column($Table4, 1, 0x555555)

_GUICtrlTable_Set_Text_Row($Table4, 1, "click|Пн|Вт|Ср|Чт|Пт|Сб|Вс")
_GUICtrlTable_Set_Text_Row($Table4, 2, "0|")
_GUICtrlTable_Set_Text_Row($Table4, 3, "1|")
_GUICtrlTable_Set_Text_Row($Table4, 4, "2|")
_GUICtrlTable_Set_Text_Row($Table4, 5, "3|")
_GUICtrlTable_Set_Text_Row($Table4, 6, "4|")
_GUICtrlTable_Set_Text_Row($Table4, 7, "5|")
_GUICtrlTable_Set_Text_Row($Table4, 8, "6|")
_GUICtrlTable_Set_Text_Row($Table4, 9, "7|")
_GUICtrlTable_Set_Text_Row($Table4, 10, "8|")
_GUICtrlTable_Set_Text_Row($Table4, 11, "9|")
_GUICtrlTable_Set_Text_Row($Table4, 12, "10|")
_GUICtrlTable_Set_Text_Row($Table4, 13, "11|")
_GUICtrlTable_Set_Text_Row($Table4, 14, "12|")
_GUICtrlTable_Set_Text_Row($Table4, 15, "13|")
_GUICtrlTable_Set_Text_Row($Table4, 16, "14|")
_GUICtrlTable_Set_Text_Row($Table4, 17, "15|")
_GUICtrlTable_Set_Text_Row($Table4, 18, "16|")
_GUICtrlTable_Set_Text_Row($Table4, 19, "17|")
_GUICtrlTable_Set_Text_Row($Table4, 20, "18|")
_GUICtrlTable_Set_Text_Row($Table4, 21, "19|")
_GUICtrlTable_Set_Text_Row($Table4, 22, "20|")
_GUICtrlTable_Set_Text_Row($Table4, 23, "21|")
_GUICtrlTable_Set_Text_Row($Table4, 24, "22|")
_GUICtrlTable_Set_Text_Row($Table4, 25, "23|")
_GUICtrlTable_Set_Border_Table($Table4, 0x555555)


GUICtrlSetPos(_GUICtrlTable_CellGetID($Table4, 1, 1),200,200)
GUICtrlSetState(_GUICtrlTable_CellGetID($Table4, 1, 1),$GUI_ENABLE)
msgbox(0,0,_GUICtrlTable_CellGetID($Table4, 1, 1))
;----- Unlock GUI to show tables -----

;----- Loop -----
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case _GUICtrlTable_CellGetID($Table4, 1, 1)
			msgbox(0,0,0)
	EndSwitch
WEnd


помогите...
у меня такая проблема:
нужно, чтобы при нажатии на отдельный элемент таблицы выходил MsgBox
p.s udf Table.au3
:stars: :'(
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
white raven

http://www.autoitscript.com/forum/topic/135199-table-wit-gdiborder-lines-dont-redraw/?p=943167
Только там нужно убрать функцию рисования рамки
 
Верх