Hey
Als ich habe eine kleine frage,
wenn ich 2 Comboboxen habe ComboBox1 und ComboBox2 ist es da möglich das sicht je nach ausgewehltem item in der ComboBox1 sich die auszuwälenden Items in der ComboBox2 ändern ?
MfG TonySiat
Hey
Als ich habe eine kleine frage,
wenn ich 2 Comboboxen habe ComboBox1 und ComboBox2 ist es da möglich das sicht je nach ausgewehltem item in der ComboBox1 sich die auszuwälenden Items in der ComboBox2 ändern ?
MfG TonySiat
Das geht z.B. so:
#include <GUIConstants.au3>
#include <GUIComboBox.au3>
Global $aCombo[11][2]
$aCombo[0][0] = 10
For $i = 1 To $aCombo[0][0]
$aCombo[$i][0] = Chr($i + 64)
$aCombo[$i][1] = $aCombo[$i][0] & 1 & "|" & $aCombo[$i][0] & 2 & "|" & $aCombo[$i][0] & 3
Next
$hWnd = GUICreate("Test", 200, 55)
$cCombo1 = GUICtrlCreateCombo("", 5, 5, 190, 25)
$cCombo2 = GUICtrlCreateCombo("", 5, 30, 190, 25)
GUISetState()
_GUICtrlComboBox_BeginUpdate($cCombo1)
For $i = 1 To $aCombo[0][0]
_GUICtrlComboBox_AddString($cCombo1, $aCombo[$i][0])
Next
_GUICtrlComboBox_EndUpdate($cCombo1)
$iLastSel = -1
[/autoit] [autoit][/autoit] [autoit]While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
$iCurSel = _GUICtrlComboBox_GetCurSel($cCombo1)
If $iCurSel <> $iLastSel Then
GUICtrlSetData($cCombo2, "")
GUICtrlSetData($cCombo2, $aCombo[$iCurSel + 1][1])
$iLastSel = $iCurSel
EndIf
WEnd
Danke...
Ist aufjedemfall das was ich wollte muss es nur noch verstehen da bin ich aba grade drann
villt frage ich hier noch mal gleich was.....
MfG TonySiat
Hallo TonySiat,
herzlich willkommen im Forum und viel Spass mit AutoIt.
Hier kannst du dir die Hilfe herunterladen.
Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee
und hier noch ein Besispielskipt dass zu deiner Fragestellung passt:
#include <GUIConstantsEx.au3>
#AutoIt3Wrapper_Add_Constants=n
#include <Date.au3>
$Form1 = GUICreate("2 Combos",200,150)
$cbo1 = GUICtrlCreateCombo("",5,5,190)
GUICtrlSetData($cbo1,"Täglich")
GUICtrlSetData($cbo1,"Wöchentlich")
GUICtrlSetData($cbo1,"Monatlich")
GUICtrlSetData($cbo1,"Jährlich")
$cbo2 = GUICtrlCreateCombo("",5,45,190)
GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
Switch $msg
case $Gui_Event_Close
Exit
case $cbo1
$sCbo1 = GUICtrlRead($cbo1)
GUICtrlSetData($cbo2,"","")
Switch $sCbo1
Case "Täglich"
$sCbo2 = ""
for $i = 9 to 17
$sCbo2 &= $i & " Uhr"
If $i < 17 Then $sCbo2 &= "|"
Next
GUICtrlSetData($cbo2,$sCbo2,"9 Uhr")
Case "Wöchentlich"
$sCbo2 = ""
for $i = 1 to 7
$sCbo2 &= _Locale_DayName($i)
If $i < 7 Then $sCbo2 &= "|"
Next
GUICtrlSetData($cbo2,$sCbo2,_Locale_DayName(1))
case "Monatlich"
$sCbo2 = ""
for $i = 1 to 5
$sCbo2 &= $i & ". Woche"
If $i < 5 Then $sCbo2 &= "|"
Next
GUICtrlSetData($cbo2,$sCbo2,"1. Woche")
case "Jährlich"
$sCbo2 = ""
for $i = 1 to 12
$sCbo2 &= _Locale_MonthName($i)
If $i < 12 Then $sCbo2 &= "|"
Next
GUICtrlSetData($cbo2,$sCbo2,_Locale_MonthName(@MON))
EndSwitch
EndSwitch
WEnd
Func _Locale_MonthName($Month, $Abbrev = False)
; ==========================================================================================
; Autor: Großvater (http://www.autoit.de)
; Parameter:
; $Month - Nummer des Monats (1 - 12)
; $Abbrev - abgekürzten Namen liefern:
; |0 : nein
; |1 : ja
; ==========================================================================================
Local Const $LOCALE_USER_DEFAULT = 0x0400
Local Const $LOCALE_SMONTHNAME = 0x37
Local Const $LOCALE_LOCALE_SABBREVMONTHNAME = 0x43
Local $LCType = $LOCALE_SMONTHNAME
If $Abbrev Then $LCType = $LOCALE_LOCALE_SABBREVMONTHNAME
If Not StringIsInt($Month) Or $Month < 1 Or $Month > 12 Then Return False
Local $aResult = DllCall("Kernel32.dll", "Int", "GetLocaleInfoA", _
"UInt", $LOCALE_USER_DEFAULT, _
"UInt", $LCType + $Month, _
"Str", "", _
"Int", 255)
If @error Or $aResult[0] = 0 Then Return False
Return $aResult[3]
EndFunc
Func _Locale_DayName($WDay, $Abbrev = False)
; ==========================================================================================
; Autor: Großvater (http://www.autoit.de)
; Parameter:
; $WDay - Nummer des Wochentages (1 - 7) (!!! 1 ist Montag (s.u.) !!!)
; $Abbrev - abgekürzten Namen liefern:
; |0 : nein
; |1 : ja
; Anmerkungen:
; Zu meinem Erstaunen hat MS in WinNLS.h folgende Konstanten definiert:
; #define LOCALE_SDAYNAME1 0x0000002A // long name for Monday
; ...
; #define LOCALE_SDAYNAME7 0x00000030 // long name for Sunday
; Anders als beim Macro @WDAY gilt deshalb der Montag als Tag 1 und der Sonntag
; als Tag 7. Der passende Wert lässt sich per Aufruf der UDF-Funktion
; _DateToDayOfWeekISO()
; ermitteln.
; ==========================================================================================
Local Const $LOCALE_USER_DEFAULT = 0x0400
Local Const $LOCALE_SDAYNAME = 0x29
Local Const $LOCALE_SABBREVDAYNAME = 0x30
Local $LCType = $LOCALE_SDAYNAME
If $Abbrev Then $LCType = $LOCALE_SABBREVDAYNAME
If Not StringIsInt($WDay) Or $WDay < 1 Or $WDay > 7 Then Return False
Local $aResult = DllCall("Kernel32.dll", "Int", "GetLocaleInfoA", _
"UInt", $LOCALE_USER_DEFAULT, _
"UInt", $LCType + $WDay, _
"Str", "", _
"Int", 255)
If @error Or $aResult[0] = 0 Then Return False
Return $aResult[3]
EndFunc
PS.: wenn eine Problem gelöst ist ist es gut ihn den Thread auch auf gelöst zu setzten. Einfach 1. Beitrag bearbeiten, Präfix (nähe Überschrift) ändern und speichern (absenden)
mfg autoBert
Vielen dank für die Nette Begrüßung und danke für Das Skript
das Problem is jetzt gelöst doch jetzt steh ich fohr dem Nächsten hinterniss (einfach zu viele kombinatzionen 105 If bediungen schon n zahl)
MfG Tevi
Dann mach es nicht mit If Bedingungen . Du kannst ja Arrays verwenden wie in meinem Beispiel, oder eine Kombination aus autoBert's Script und Arrays...