Moin moin,
Bräuchte mal Hilfe beim löschen von Checkboxen.
Ich generiere anhand der Spaltenanzahl einer Excel Tabelle ebenso viele Checkboxen und benenne diese mit den Einträgen aus den Zellen der Spalte.Maximal können dies 64 Checkboxen sein.
Soweit geht das auch alles.
Nur habe ich verschiedene Tabellen, 5 an der Zahl, die ich über Radiobuttons in der selbigen gui anzeigen lassen möchte.
Wie bekommt man es hin das man die vorher angezeigten Checkboxen gelöscht bekommt um die neuen anzeigen zu lassen
Habe mal eine Gui gemacht mit zwei Radios. Die kann es wohl besser ausdrücken was ich möchte
Testskript
#include <GuiDateTimePicker.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ComboConstants.au3>
#include <DateTimeConstants.au3>
#include <EditConstants.au3>
#include <Excel.au3>
#include <Array.au3>
#include <File.au3>
#include <GuiComboBox.au3>
#include <Date.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
#include <string.au3>
#include <hotkeys.au3>
#include <Misc.au3>
#include <_ToolTipMouseExit.au3>
#include <GuiEdit.au3>
#include <GuiConstantsEx.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]testgui()
Func testgui()
$Form1 = GUICreate("Testgui", 746, 450, 258, 119)
$Group2 = GUICtrlCreateGroup("Spalten Löschen für & $neulabel", 4, 30, 737, 338, BitOR($GUI_SS_DEFAULT_GROUP,$BS_LEFT))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Radioeinaus1 = GUICtrlCreateRadio("testtabelle1", 305, 401, 89, 17, BitOR($GUI_SS_DEFAULT_RADIO,$BS_LEFT))
$Radioeinaus2 = GUICtrlCreateRadio("testtabelle2", 403, 401, 73, 17, BitOR($GUI_SS_DEFAULT_RADIO,$BS_LEFT))
$beenden = GUICtrlCreateButton("Beenden", 500, 395, 120, 25)
GUISetState(@SW_SHOW)
GUISetOnEvent($GUI_EVENT_CLOSE, "beenden")
GUICtrlSetOnEvent($Radioeinaus1, "testtabelle1")
GUICtrlSetOnEvent($Radioeinaus2, "testtabelle2")
GUICtrlSetOnEvent($beenden, "beenden")
While 1
Sleep(50)
WEnd
EndFunc;==>testgui
Func testtabelle1()
$Open = FileOpenDialog("",@ScriptDir,"(test1.xls)")
$oExcel = _ExcelBookOpen($Open)
$Spalten = $oExcel.Worksheets(1).UsedRange.Columns.Count
$Spalten = $Spalten+2
Local $Checkbox[$Spalten]
Dim $aArray[$Spalten]
For $i = 1 To UBound($aArray) -1
$aArray[$i] = _ExcelReadArray($oExcel, 1, $i, 1, 1)
_ArrayToClip($aArray[$i])
$ddd = (ClipGet())
IniWrite(@ScriptDir & "\test.ini", "Zeile1", $ddd, "")
Next
_ExcelBookClose($oExcel)
$var = IniReadSection( @ScriptDir & "\test.ini", "Zeile1")
If @error Then
MsgBox(4096, "", "Es ist ein Fehler aufgetreten. Warscheinlich keine INI Datei vorhanden.")
Else
For $i = 1 To $var[0][0]-1
$top = 25 + ($i * 20)
$left = 25
If $top > 345 and $left = 25 Then
$left = $left + 175
$top = $top - 320
EndIf
If $top > 345 and $left = 200 Then
$left = $left + 175
$top = $top - 320
EndIf
If $top > 345 and $left = 375 Then
$left = $left + 175
$top = $top - 320
EndIf
If $top > 345 and $left = 550 Then
$left = $left + 175
$top = $top - 320
EndIf
$Checkbox[$i] = GUICtrlCreateCheckbox($var[$i][0], $left, $top, 175, 17)
Next
EndIf
EndFunc;==>testtabelle1
[/autoit] [autoit][/autoit] [autoit]Func testtabelle2()
$Open = FileOpenDialog("",@ScriptDir,"(test2.xls)")
$oExcel = _ExcelBookOpen($Open)
$Spalten = $oExcel.Worksheets(1).UsedRange.Columns.Count
$Spalten = $Spalten+2
Local $Checkbox[$Spalten]
Dim $aArray[$Spalten]
For $i = 1 To UBound($aArray) -1
$aArray[$i] = _ExcelReadArray($oExcel, 1, $i, 1, 1)
_ArrayToClip($aArray[$i])
$ddd = (ClipGet())
IniWrite(@ScriptDir & "\test.ini", "Zeile2", $ddd, "")
Next
_ExcelBookClose($oExcel)
$var = IniReadSection( @ScriptDir & "\test.ini", "Zeile2")
If @error Then
MsgBox(4096, "", "Es ist ein Fehler aufgetreten. Warscheinlich keine INI Datei vorhanden.")
Else
For $i = 1 To $var[0][0]-1
$top = 25 + ($i * 20);
$left = 25;
If $top > 345 and $left = 25 Then
$left = $left + 175
$top = $top - 320
EndIf
If $top > 345 and $left = 200 Then
$left = $left + 175
$top = $top - 320
EndIf
If $top > 345 and $left = 375 Then
$left = $left + 175
$top = $top - 320
EndIf
If $top > 345 and $left = 550 Then
$left = $left + 175
$top = $top - 320
EndIf
$Checkbox[$i] = GUICtrlCreateCheckbox($var[$i][0], $left, $top, 175, 17)
Next
EndIf
EndFunc;==>testtabelle2
Func beenden()
Exit
EndFunc;==>beenden
mfg
oh-ha