Hallo, da Bilder mehr sagen als tausend Wort habe ich mal 2 gemacht.
Ich wollte eine Gui mit mehreren Tabs, nur die Combo Box verschwindet nicht, und ist in jeden Tab sichtbar?
Wahrscheinlich ist es ganz einfach, nur komme ich nicht darauf
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_Description=Produkt Rechner für Nicole
#AutoIt3Wrapper_Res_Fileversion=1
#AutoIt3Wrapper_Run_Obfuscator=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
$ini = @ScriptDir&'\Texte\Datei.ini'
[/autoit][autoit][/autoit][autoit]#include<GuiComboBox.au3>
#include<GUIConstantsEx.au3>
; Puffer für den Text
Global $sTextA4
Global $sTextA3
;Gui
$Gui=GUICreate ('Produkt-Rechner', 900,530); Wagerechte; Höhe
GUISetFont(9, 300)
GUISetBkColor(0x3300B2);663399 )
$tab=GUICtrlCreateTab (5,10, 880,510)
$tab0=GUICtrlCreateTabitem ("A3 und A4")
GUICtrlcreatelabel ('Einstellungen für A4' ,10,40)
$A4 = _GUICtrlComboBox_Create ($GUI,'', 10, 70, 250, 296)
$ini_sektions = IniReadSection($ini, "Laserdruck")
For $i = 1 To $ini_sektions[0][0]
_GUICtrlComboBox_AddString($A4, $ini_sektions[$i][0])
Next
GUICtrlcreatelabel ('Einstellungen für A3',10,140)
$A3 = _GUICtrlComboBox_Create ($GUI,'', 10, 160, 250, 296)
$ini_sektions = IniReadSection($ini, "Laserdruck")
For $i = 1 To UBound($ini_sektions) - 1
_GUICtrlComboBox_AddString($A3, $ini_sektions[$i][0])
Next
GUICtrlcreatelabel ('Hier bitte gewünschte Anzahl für A4 eintragen' ,10,90)
GUICtrlcreatelabel ('Hier bitte gewünschte Anzahl für A3 eintragen' ,10,180)
$Anzahl = GUICtrlCreateEdit ("1", 90,110,50,20,0)
$Anzahl2 = GUICtrlCreateEdit ("1", 90,200,50,20,0)
$berechnena4 = GUICtrlCreateButton ('Berechnen für A4', 300,70)
$berechnena3 = GUICtrlCreateButton ('Berechnen für A3', 300,160)
$berechnenA4undA3zusammen=GUICtrlCreateButton ('Berechne Gesamtsumme von A4 und A3', 450,85)
$endbutton = GUICtrlCreateButton ('Schließen', 800,470)
$tab2=GUICtrlCreateTabitem ( "Scannen")
[/autoit][autoit][/autoit][autoit][/autoit][autoit]$tab99=GUICtrlCreateTabItem("Über")
GUICtrlCreateLabel("Hier steht mal eine Erklärung",80,130,420,120)
GUICtrlCreateTabitem (""); end tabitem definition
GUISetState(@SW_SHOW)
[/autoit][autoit][/autoit][autoit];Gui ENDE
[/autoit][autoit][/autoit][autoit][/autoit][autoit]While 1
$msg = GUIGetMsg()
$zahl1 = GUICtrlRead($Anzahl)
$zahl2 = GUICtrlRead($Anzahl2)
Select
[/autoit][autoit][/autoit][autoit][/autoit][autoit]Case $msg = $endbutton Or $msg = $GUI_EVENT_CLOSE
exit
case $msg = $berechnena4
GetWindowText ($A4, $sTextA4, 260)
$a4wert=IniRead($ini,'Laserdruck',$sTextA4,"Wählen Sie Bitte eine Position")
$a4wert=$a4wert*1
$Ergebnisa4 = $zahl1 * $a4wert * 1.19
$ErgebnismitMWSTa4=Round($Ergebnisa4,3)
$AusgabeA4=$zahl1 & "*" & $a4wert & "= " & $ErgebnismitMWSTa4&' €' & 'incl. Mwst'
if $a4wert='Wählen Sie Bitte eine Position' then $AusgabeA4='Wählen Sie Bitte eine Position'
MsgBox (64,"Preis des Auftrages A4",$AusgabeA4 ) ;Ausgabe der Rechenaufgabe
[/autoit][autoit][/autoit][autoit][/autoit][autoit]case $msg = $berechnena3
GetWindowText ($A3, $sTextA3, 260)
$a3wert=IniRead($ini,'Laserdruck',$sTextA3,"Wählen Sie Bitte eine Position")
$a3wert= $a3wert*2
$Ergebnisa3 = $zahl2 * $a3wert*1.19
$ErgebnismitMWSTa3=Round($Ergebnisa3,3)
$AusgabeA3=$zahl2 & "*" & $a3wert & "= " & $ErgebnismitMWSTa3 &' € '& 'incl. Mwst'
if $a3wert='Wählen Sie Bitte eine Position' then $AusgabeA3='Wählen Sie Bitte eine Position'
MsgBox (64,"Preis des Auftrages A3",$AusgabeA3 )
;Ausgabe der Rechenaufgabe
case $msg = $berechnenA4undA3zusammen
[/autoit][autoit][/autoit][autoit]GetWindowText ($A4, $sTextA4, 260)
GetWindowText ($A3, $sTextA3, 260)
$a4wert=IniRead($ini,'Laserdruck',$sTextA4,"Wählen Sie Bitte eine Position")
$a3wert=IniRead($ini,'Laserdruck',$sTextA3,"Wählen Sie Bitte eine Position")
$Ergebnisa4unda3zusammen = (($zahl1 * $a4wert)+($zahl2*$a3wert*2))*1.19
$AusgabeA4unda3zusammenmitmwst=Round($Ergebnisa4unda3zusammen,3)
$AusgabeA4unda3zusammenmitmwst=$AusgabeA4unda3zusammenmitmwst&' €' & ' incl. Mwst'
if $Ergebnisa4unda3zusammen=0 then $AusgabeA4unda3zusammenmitmwst='Bitte Positionen wählen'
MsgBox (64,"Preis des Auftrages A4 und A3",$AusgabeA4unda3zusammenmitmwst & 'incl. Mwst') ;Ausgabe der Rechenaufgabe
EndSelect
[/autoit][autoit][/autoit][autoit]wend
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]Func GetWindowText ($hWnd, ByRef $sString, $nMaxCount)
[/autoit][autoit][/autoit][autoit]Local $type = 'wstr'
If (IsPtr ($sString)) Then _
$type = 'ptr'
Local $aRes = DllCall ("user32.dll", 'int', 'GetWindowTextW', _
'HWND', $hWnd, _
$type , $sString, _
'int' , $nMaxCount)
If @error Then _
Return @error
If (not IsPtr ($sString)) Then _
$sString = $aRes[2]
Return $aRes[0]
EndFunc
[/autoit]Ich weiß es ist nicht schön, aber ich komme eigentlich ganz gut mit den Namen der Variablen zurecht