Hat schon mal jemand Grafische Button in eine GUI geladen?
Ich stelle mir das so vor : ich habe eine INI-Datei mit folgenden Inhalt:
ini
[Button]
1 = $btn_1
2 = $btn_1
[Ico]
1 = C:\Users\gabi\Documents\Downloads\Projekte\Slide-GUI\Button\normalize.ico
2 = C:\Users\gabi\Documents\Downloads\Projekte\Slide-GUI\Button\maxi.ico
[Caption]
1 = <b class>
2 = <b>
[Text]
1 = "Text der gesendet werden
soll mit Zeilenumbruch"
2 = "<b>$seltext$
</b>$cursor$"
[end]
Alles anzeigen
hier brauche ich noch ein wenig Hilfe mit den Befehlen für die einzelnen Buttons.
wie frage ich welcher Button den Event ausgelöst hat in der Funktion Btn_Clicked() ab?
Da ich nicht wusste wie ich den Event abfragen soll habe ich Kurzerhand eine Variable dazwischen geschoben.
Jetzt habe ich aber das Problem wie erzeuge ich in einer Schleife mehrere Funktionen oder kann man die wiederum mit Error
oder so zurück in eine einzelne Funktion schreiben. damit ich weiß welcher Button betätigt worden ist?
Der Zeilenumbruch wird auch noch nicht erkannt. Vielleicht weis hier jemand Rad.
au3
#include <Array.au3>
#include <ButtonConstants.au3>
#include <Constants.au3>
#include <EditConstants.au3>
#Include <Eventhandler.au3>
#include <File.au3>
#include <GUIConstantsEx.au3>
#include <IE.au3>
#include <StaticConstants.au3>
#Include <string.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1) ; Zum OnEvent-Mode wechseln
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]HotKeySet("{ESC}", "On_Exit")
Func On_Exit()
Exit
EndFunc
Global $aGo = True
Global $gMain, $h_close,$ii
Global $IniPath = @ScriptDir & "\data.ini"
Global $oIE = _IECreateEmbedded ()
$gMain = GUICreate("GUI on Top", 1200,200 , -1, 0, BitOR($WS_POPUP,$WS_BORDER, $WS_EX_TOPMOST ))
;$var_zahl = IniRead($IniPath, "sektion2", "Zahl", "0")
$var_x = 20
$var_y = 20
$var_btn = IniReadSection($IniPath, "Button")
$var_ico = IniReadSection($IniPath, "Ico")
$var_caption = IniReadSection($IniPath, "Caption")
$var_text = IniReadSection($IniPath, "Text")
$GUI_Button_Home = GUICtrlCreateButton("Home", 18, 165, 80, 25)
$GUI_Button_Stop = GUICtrlCreateButton("Exit", 100, 165, 80, 25)
_GUICtrlSetOnEvent($EVENT_PRIMARY_CLICK, "On_Exit", $gMain,$GUI_Button_Stop)
For $i = 1 To 4
Func Btn_Clicked&$i&()
MsgBox(0,$i,"Mach was")
EndFunc
Next
If @error Then
MsgBox(4096, "", "Es ist ein Fehler aufgetreten. Warscheinlich keine INI Datei vorhanden.")
Else
For $i = 1 To $var_btn[0][0]
$Button_1 = GUICtrlCreateButton($var_caption[$i][1], $var_x,4, 80, 25)
GUICtrlSetImage(-1,$var_ico[$i][1], -1)
GUICtrlSetTip(-1, $var_text[$i][1],$var_caption[$i][1], 0, 1)
; events definieren
_GUICtrlSetOnEvent($EVENT_PRIMARY_CLICK, "Btn_Clicked"&$i, $gMain, $Button_1 )
$Pic1 = GUICtrlCreatePic(@ProgramFilesDir & "\AutoIt3\Examples\GUI\logo4.gif", ($var_x+82), 4, 60, 25)
GUICtrlSetTip(-1, $var_text[$i][1],$var_caption[$i][1], 0, 1)
_GUICtrlSetOnEvent($EVENT_PRIMARY_CLICK, "Btn_Clicked", $gMain, $Pic1)
_GUICtrlSetOnEvent($EVENT_SECONDARY_CLICK, "Btn_Clicked", $gMain, $Pic1)
;ConsoleWrite($var_btn[$i][0])
;MsgBox(0,0,$var_btn[$i][0])
$var_x = $var_x + 144
;Global GUICtrlSetCursor($_PicButton[0], 0) ; set the cursor to handpoint
Next
EndIf
GUISetState(@SW_SHOW, $gMain) ; Zeigt das leere GUI-Fenster
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]while $aGo
Sleep(100)
WEnd
$d="hallo"
GUIDelete()
Func Btn_Clicked()
MsgBox(0,0,"Btn_Clicked")
EndFunc
Func Btn_Clicked1()
MsgBox(0,1,"Btn_Clicked1")
EndFunc
Func Btn_Clicked2()
MsgBox(0,2,"Btn_Clicked2")
EndFunc
Func _screibe($a)
MsgBox(0,1,$a)
EndFunc
Func ExitClicked() ; handle für End-Knopf
$aGo = False
EndFunc
benötigte Dateien
1. Nach Tipp von BugFix, neuere Version eingefügt:
siehe Thread
2. Beispieldatei hinzugefügt:
Eventhandler.au3
Bsp_Eventhandler.au3