Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Messagebox-Creator

 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Skripte & Funktionen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1871
Wohnort: Österreich

BeitragVerfasst am: Mi Aug 09, 2006 9:26 am    Titel: Messagebox-Creator Antworten mit Zitat

Dieses Mini-Programm habe ich mir gestern geschrieben um Messageboxen schneller designen zu können.

Beim Minimieren wird es automatisch in den Tray-Bereich verschoben um weniger Platz in Anspruch zu nehmen. Ein einfacher Klick auf das Icon genügt um es daraus hervorzuholen. Alternativ kann das Context-Menü verwendet werden...

Er erlaubt auch die mehrzeilige Eingabe von Text, was automatisch umgewandelt wird. Eine Echtzeitansicht des Ergebnis findet sich im unteren Bereich.

Der Rest sollte selbsterklärend sein bis auf das Timeout. Ein Timeout von -1 interpretiere ich als "nicht verwendet". Als Dezimalpunkt ist auch "," erlaubt!

Code gibts hier.

Edit: Da das Forum im Moment offline ist:
Code:

;Tray-Menu
Menu, Tray, Add, Open, Open
Menu, Tray, Add, Reset Settings, Reset
Menu, Tray, Add, Close, GuiClose
Menu, Tray, Click, 1
Menu, Tray, Default, Open
Menu, Tray, NoStandard

;GUI
Gui, Add, Text, x10 y10 section, Title
Gui, Add, Edit, xs+0 ys+15 section w400 vTitle gCreate_Msgbox_Command,
Gui, Add, Text, xs+0 ys+25 section, Text:
Gui, Add, Edit, xs+0 ys+15 section r3 w400 vText gCreate_Msgbox_Command WantTab,

Gui, Add, Groupbox, x10 y130 h215 w190 section, Buttons
Gui, Add, Radio, xs+10 ys+20 section vButton_Selection1 Checked gCreate_Msgbox_Command, OK
Gui, Add, Radio, xs+0 ys+25 section vButton_Selection2 gCreate_Msgbox_Command, OK/Cancel
Gui, Add, Radio, xs+0 ys+25 section vButton_Selection3 gCreate_Msgbox_Command, Abort/Retry/Ignore
Gui, Add, Radio, xs+0 ys+25 section vButton_Selection4 gCreate_Msgbox_Command, Yes/No/Cancel
Gui, Add, Radio, xs+0 ys+25 section vButton_Selection5 gCreate_Msgbox_Command, Yes/No
Gui, Add, Radio, xs+0 ys+25 section vButton_Selection6 gCreate_Msgbox_Command, Retry/Cancel
Gui, Add, Radio, xs+0 ys+25 section vButton_Selection7 gCreate_Msgbox_Command, Cancel/Try Again/Continue
Gui, Add, Checkbox, xs+0 ys+25 vButton_Selection_Help gCreate_Msgbox_Command, Help button

Gui, Add, Groupbox, x220 y130 h215 w190 section, Icons
Gui, Add, Radio, xs+10 ys+25 section vIcon1 Checked gCreate_Msgbox_Command, No Icon
Gui, Add, Radio, xs+0 ys+40 vIcon2 gCreate_Msgbox_Command, Stop/Error
Gui, Add, Radio, xs+0 ys+80 vIcon3 gCreate_Msgbox_Command, Question
Gui, Add, Radio, xs+0 ys+120 vIcon4 gCreate_Msgbox_Command, Exclamation
Gui, Add, Radio, xs+0 ys+160 vIcon5 gCreate_Msgbox_Command, Info
;Gui, Add, Picture, xs+90 ys-10 gSelect_NoIcon icon1, %A_WinDir%\system32\user32.dll
Gui, Add, Picture, xs+90 ys-10 gSelect_NoIcon h30 w20
Gui, Add, Picture, xs+90 ys+30 gSelect_ErrorIcon icon4 , %A_WinDir%\system32\user32.dll
Gui, Add, Picture, xs+90 ys+70 gSelect_Question icon3 , %A_WinDir%\system32\user32.dll
Gui, Add, Picture, xs+90 ys+110 gSelect_Exclamation icon2, %A_WinDir%\system32\user32.dll
Gui, Add, Picture, xs+90 ys+150 gSelect_Info icon5 , %A_WinDir%\system32\user32.dll

Gui, Add, Groupbox, x430 y20 h140 w190 section, Modality
Gui, Add, Radio, xs+10 ys+20 section Checked vModality1 gCreate_Msgbox_Command, Normal
Gui, Add, Radio, xs+0 ys+25 section vModality2 gCreate_Msgbox_Command, Task Modal
Gui, Add, Radio, xs+0 ys+25 section vModality3 gCreate_Msgbox_Command, System Modal (always on top)
Gui, Add, Radio, xs+0 ys+25 section vModality4 gCreate_Msgbox_Command, Always on top
Gui, Add, Radio, xs+0 ys+25 section vModality5 gCreate_Msgbox_Command, Default desktop

Gui, Add, Groupbox, x430 y170 h45 w190 section, Default-Button
Gui, Add, Radio, xs+10 ys+20 section Checked vDefault1 gCreate_Msgbox_Command, 1st
Gui, Add, Radio, xs+65 ys+0 section vDefault2 gCreate_Msgbox_Command, 2nd
Gui, Add, Radio, xs+65 ys+0 section vDefault3 gCreate_Msgbox_Command, 3rd

Gui, Add, Groupbox, x435 y220 h45 w190 section, Allignment
Gui, Add, Checkbox, xs+10 ys+20 vAllignment1 section gCreate_Msgbox_Command, Right-justified
Gui, Add, Checkbox, xs+100 ys+0 vAllignment2 gCreate_Msgbox_Command, Right-to-left

Gui, Add, Groupbox, x430 y270 h45 w90 section, Timeout
Gui, Add, Edit, xs+10 ys+17 w70 vTimeout gCreate_Msgbox_Command
Gui, Add, UpDown, Range-1-2147483, -1

Gui, Add, Button, x530 y280 h30 w90 vTest gTest, &Test
Gui, Add, Button, x430 y320 h30 w90 Default gCopy_to_Clipboard, &Clipboard
Gui, Add, Button, x530 y320 h30 w90 gReset, &Reset

Gui, Add, Groupbox, x10 y350 w610 h75 section, Result
Gui, Add, Edit, xs+10 ys+20 w590 r3 vMsgbox_Command,

Gui, Show, , Create MessageBox
GoSub, Reset      ;Initalize GUI from Ini
return

Select_NoIcon:
GuiControl, , Icon1, 1
GoSub, Create_Msgbox_Command
return

Select_ErrorIcon:
GuiControl, , Icon2, 1
GoSub, Create_Msgbox_Command
return

Select_Question:
GuiControl, , Icon3, 1
GoSub, Create_Msgbox_Command
return

Select_Exclamation:
GuiControl, , Icon4, 1
GoSub, Create_Msgbox_Command
return

Select_Info:
GuiControl, , Icon5, 1
GoSub, Create_Msgbox_Command
return

Create_Msgbox_Command:
Gui, Submit, NoHide
;Get types of used buttons
Loop, 7
{
   if Button_Selection%A_Index% = 1
   {
      ButtonSelection := A_Index -1
      if Button_Selection_Help = 1
         ButtonSelection += 16384
      break
   }
}

;Get used Icon
Loop, 5
{
   if Icon%A_Index% = 1
   {
      if A_Index = 1
         Icon = 0
      else if A_Index = 2
         Icon = 16
      else if A_Index = 3
         Icon = 32
      else if A_Index = 4
         Icon = 48
      else if A_Index = 5
         Icon = 64
      break
   }
}

;Get Modality-State
Loop, 5
{
   if Modality%A_Index% = 1
   {
      if A_Index = 1
         Modality = 0
      else if A_Index = 2
         Modality = 8192
      else if A_Index = 3
         Modality = 4096
      else if A_Index = 4
         Modality = 262144
      else if A_Index = 5
         Modality = 131072
      break
   }
}

;Get Default-Button
Loop, 3
{
   if Default%A_Index% = 1
   {
      if A_Index = 1
         Default = 0
      else if A_Index = 2
         Default = 256
      else if A_Index = 3
         Default = 512
      break
   }
}

;Check Allignment
Allignment = 0
if Allignment1 = 1
   Allignment += 524288
if Allignment2 = 1
   Allignment += 1048576

Msgbox_Number := ButtonSelection + Icon + Modality + Default + Allignment   ;Generate type of messagebox

Escape_Characters(Title)
Escape_Characters(Text)

;Timeout "-1" = no timeout
if Timeout = -1
   Timeout =
else
{
   StringReplace, Timeout, Timeout, `,, .      ;Allows "," as decimal-point
   Timeout = , %Timeout%
}



;Create command and set it to Edit-Control
Msgbox_Command = msgbox, %Msgbox_Number%, %Title%, %Text%%Timeout%
GuiControl, , Msgbox_Command, %Msgbox_Command%
return


;Creates a Temp-File to show actual configuration
Test:
GoSub, Create_Msgbox_Command
GuiControl, Disable, Test
FileAppend, %Msgbox_Command%, MsgboxTemp.ahk
RunWait, MsgboxTemp.ahk
FileDelete, MsgboxTemp.ahk
GuiControl, Enable, Test
return


;Escapes Characters like ","
Escape_Characters(byref Var)
{
   StringReplace, Var, Var, `n, ``n, All      ;Translate line breaks in entered text
   StringReplace, Var, Var, `,, ```,, All      ;Escapes ","
   StringReplace, Var, Var, `;, ```;, All      ;Escapes ";"
}



Copy_to_Clipboard:
Clipboard = %Msgbox_Command%
IniRead, Reset_after_Clipboard, %A_ScriptDir%\Msgbox.ini, Clipboard, Reset after Clipboard, 0
if Reset_after_Clipboard = 1
   GoSub, Reset
return

GuiClose:
ExitApp

Open:
Gui, Show
return

Reset:
IfExist %A_ScriptDir%\Msgbox.ini
{
   IniRead, Title, %A_ScriptDir%\Msgbox.ini, Reset, Title, plk
   if Title = plk
      Title =
   IniRead, Text, %A_ScriptDir%\Msgbox.ini, Reset, Text, plk
   if Text = plk
      Text =
   IniRead, Modality, %A_ScriptDir%\Msgbox.ini, Reset, Modality, 1
   IniRead, Icon, %A_ScriptDir%\Msgbox.ini, Reset, Icon, 1
   IniRead, Button_Selection, %A_ScriptDir%\Msgbox.ini, Reset, Button, 1
   IniRead, Button_Selection_Help, %A_ScriptDir%\Msgbox.ini, Reset, Help Button, 0
   IniRead, Default, %A_ScriptDir%\Msgbox.ini, Reset, Default Button, 1
   IniRead, Timeout, %A_ScriptDir%\Msgbox.ini, Reset, Timeout, -1
   IniRead, Allignment1, %A_ScriptDir%\Msgbox.ini, Reset, Allignment_Right, 0
   IniRead, Allignment2, %A_ScriptDir%\Msgbox.ini, Reset, Allignment_RtL, 0
}
else
{
   Title =
   Text =
   Modality = 1
   Icon = 1
   Button_Selection = 1
   Button_Selection_Help = 0
   Default = 1
   Timeout = -1
   Allignment1 = 0
   Allignment2 = 0
}

GuiControl, , Title, %Title%
GuiControl, , Text, %Text%
GuiControl, , Modality%Modality%, 1
GuiControl, , Icon%Icon%, 1
GuiControl, , Button_Selection%Button_Selection%, 1
GuiControl, , Button_Selection_Help, %Button_Selection_Help%
GuiControl, , Default%Default%, 1
GuiControl, , Timeout, %Timeout%
GuiControl, , Allignment1, %Allignment1%
GuiControl, , Allignment2, %Allignment2%
return

GuiSize:
if A_EventInfo = 1
   Gui, Show, Hide
return

_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe


Zuletzt bearbeitet von Thalon am So Jun 29, 2008 1:20 pm, insgesamt 6-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1871
Wohnort: Österreich

BeitragVerfasst am: Mi Aug 09, 2006 4:22 pm    Titel: Antworten mit Zitat

Auf die letzte AHK-Version upgedatet... (siehe Edit2)

Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
garry



Anmeldedatum: 25.10.2005
Beiträge: 405
Wohnort: switzerland

BeitragVerfasst am: Do Aug 10, 2006 8:51 pm    Titel: Antworten mit Zitat

sehr praktisch, ein 'must' für meine AHK-tools
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Obi-Wahn



Anmeldedatum: 19.04.2006
Beiträge: 611
Wohnort: Wien

BeitragVerfasst am: Fr Aug 11, 2006 8:31 am    Titel: Antworten mit Zitat

Danke Thalon!
Endlich mal ne bequeme art, MsgBoxes zu erstellen.

Ich hab jedoch leider einen Bug gefunden:

Wenn ich in das Textfeld einen Beistrich eingebe, und ein Timeout deffiniere, wird das Timeout nicht genommen, da der Beistrich im Text (bzw. der Text der dahinter steht) als Marke und als Timeout-Wert genommen wird.

Bsp.:
Code:
;Korrekte MsgBox
MsgBox, 1, Test, Dies ist ein Test`, welcher bereitgestellt wurde., 2

;MsgBox mit deinem Programm erstellt. (man beachte den 4. Beistrich)
MsgBox, 1, Test, Dies ist ein Test, welcher bereitgestellt wurde., 2

Es fehlt der String:
Code:
StringReplace, Text, Text, `,, ```,, All      ;Translate "," in entered text

in z.B. Zeile 167 unter der Line-Break übersetzung.


MfG
Obi-Wahn
_________________
Garten ist eine Kunstnatur
Das Leben ist nicht fair. Es ist nur fairer als der Tod, das ist alles.
Obi-Wahns Codeschnipsel @ securityvision.ch
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1871
Wohnort: Österreich

BeitragVerfasst am: Fr Aug 11, 2006 9:52 am    Titel: Antworten mit Zitat

Vielen Dank!
Ich habe auch den Strichpunkt hinzugefügt! (auch für den Titel).

Ansonsten wird alles als Text interpretiert und ich hoffe das passt jetzt so Smile
Es wurde auch der Support für Tab hinzugefügt (navigiert nun nicht mehr im Title & Text-Control.

Thx,
Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1871
Wohnort: Österreich

BeitragVerfasst am: Di Aug 15, 2006 2:27 pm    Titel: Antworten mit Zitat

Komfort-Erweiterungen wurden gemacht:
Es gibt nun einen Reset-Button auch in der Oberfläche.
Ein Config-File wurde (optional) hinzugefügt um für die "Reset"-Option Default-Werte einstellen zu können.
Im Config-File kann auch ein Schalter umgestellt werden womit nach Betätigung des Buttons "Copy to Clipboard" die GUI automatisch resettiert wird...

HAND,
Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
fredchf



Anmeldedatum: 18.09.2006
Beiträge: 676
Wohnort: Deutschland

BeitragVerfasst am: Fr Okt 20, 2006 10:14 am    Titel: Antworten mit Zitat

danke thalon,eine sorge weniger Laughing
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
n|cOn'*



Anmeldedatum: 16.05.2008
Beiträge: 9
Wohnort: HKEY_LOCAL_MACHINE

BeitragVerfasst am: Sa Mai 17, 2008 12:18 am    Titel: richtig cooles Tool Antworten mit Zitat

Ist ein wirklich nützliches Tool. Das nimmt viel Arbeit beim MsgBox einfügen ab. Dankeschön Very Happy Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Skripte & Funktionen Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de