|
You last visited: Today at 08:13
Advertisement
Create Frage in Autoit
Discussion on Create Frage in Autoit within the AutoIt forum part of the Coders Den category.
06/12/2011, 21:25
|
#1
|
elite*gold: 75
Join Date: May 2010
Posts: 934
Received Thanks: 1,285
|
Create Frage in Autoit
Hallo Com
Ich hab da mal eine Frage,
Wie mache ich es, wenn ein Button gedrückt wurde, dass sich automatisch 5 neue Labels und 4 neue Buttons erstellen? Also es müsste so sein, dass sich die Buttons und Labels auf einer bestimmten Position erstellen, und dann 5 Bestimmte Inputboxen und 4 bestimme Buttons sich einige Picel nach unten verschieben, wäre so etwas möglich..?
Danke schonmal im Voraus.
Jonas
|
|
|
06/12/2011, 22:55
|
#2
|
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
|
Mach doch:
case $button1
guictrlcreate ;...
|
|
|
06/13/2011, 00:21
|
#3
|
elite*gold: 75
Join Date: May 2010
Posts: 934
Received Thanks: 1,285
|
ja aber wie amche ich das, dass sich die createte gui dann zwiaschen die iputoxen undso bekomme?
|
|
|
06/13/2011, 00:30
|
#4
|
elite*gold: 52
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
|
Könntest du die Frage vielleicht nochmal genauer und deutlich stellen?
|
|
|
06/13/2011, 07:48
|
#5
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by iJonas
ja aber wie amche ich das, dass sich die createte gui dann zwiaschen die iputoxen undso bekomme?
|
alte control-positionen auslesen und zum schluss jeweils die gewünschte position berechnen
das problem was hierbei auftreten könnte ist, das windows hierbei grafikfehler verursachen könnte...
beispiel:
Code:
Dim $label[1], $button[1], $control_y[1], $counter = 0
$gui = GUICreate('blubb', 300, 40)
$add = GUICtrlCreateButton('add stuff!', 10, 10, 280, 20)
GUISetState()
While 1
$msg = GUIGetMsg()
If $msg = -3 Then Exit
If $msg = $add Then
If $counter > 0 Then
ReDim $label[$counter+1], $button[$counter+1], $control_y[$counter+1]
EndIf
$pos = WinGetPos($gui)
For $i=0 To UBound($label)-1
$control_pos = ControlGetPos($gui, '', $label[$i])
$control_y[$i] = $control_pos[1]
Next
WinMove($gui, '', $pos[0], $pos[1], $pos[2], $pos[3]+30)
ControlMove($gui, '', $add, 10, 10)
$label[$counter] = GUICtrlCreateLabel('label '&$counter, 10, 40, 140, 20)
$button[$counter] = GUICtrlCreateButton('button '&$counter, 150, 40, 140, 20)
$counter +=1
For $i=0 To UBound($label)-1
ControlMove($gui, '', $label[$i], 10, $control_y[$i]+30)
ControlMove($gui, '', $button[$i], 150, $control_y[$i]+30)
Next
EndIf
WEnd
|
|
|
06/13/2011, 12:37
|
#6
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,351
Received Thanks: 410
|
Also wenn du willst, das sich neue Buttons und Labels erstellen, sobald du auf " Start " gedrückt hast, guck dir mal mein Beispielscript an, dann weisst du wie es geht.
Relative simpel. Aber was meinst du mit nach unten verschieben? Das sich dein alter Button nach unten verschiebt oder alles alte? Ist auch leichter möglich, als beim Script über mir ...
Beispiel :
HTML Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 461, 399, 192, 124)
$create = GUICtrlCreateButton("create", 184, 320, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $create
$Button1 = GUICtrlCreateButton("Button1", 48, 280, 75, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Button2", 336, 288, 75, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Button3", 72, 200, 75, 25, $WS_GROUP)
$Button4 = GUICtrlCreateButton("Button4", 336, 208, 75, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Label1", 64, 112, 36, 17)
$Label2 = GUICtrlCreateLabel("Label2", 120, 40, 36, 17)
$Label3 = GUICtrlCreateLabel("Label3", 232, 48, 36, 17)
$Label4 = GUICtrlCreateLabel("Label4", 208, 104, 36, 17)
$Label5 = GUICtrlCreateLabel("Label5", 360, 64, 36, 17)
EndSwitch
WEnd
|
|
|
06/13/2011, 12:46
|
#7
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by netterwurm8
Also wenn du willst, das sich neue Buttons und Labels erstellen, sobald du auf " Start " gedrückt hast, guck dir mal mein Beispielscript an, dann weisst du wie es geht.
Relative simpel. Aber was meinst du mit nach unten verschieben? Das sich dein alter Button nach unten verschiebt oder alles alte? Ist auch leichter möglich, als beim Script über mir ...
Beispiel :
HTML Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 461, 399, 192, 124)
$create = GUICtrlCreateButton("create", 184, 320, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $create
$Button1 = GUICtrlCreateButton("Button1", 48, 280, 75, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Button2", 336, 288, 75, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Button3", 72, 200, 75, 25, $WS_GROUP)
$Button4 = GUICtrlCreateButton("Button4", 336, 208, 75, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Label1", 64, 112, 36, 17)
$Label2 = GUICtrlCreateLabel("Label2", 120, 40, 36, 17)
$Label3 = GUICtrlCreateLabel("Label3", 232, 48, 36, 17)
$Label4 = GUICtrlCreateLabel("Label4", 208, 104, 36, 17)
$Label5 = GUICtrlCreateLabel("Label5", 360, 64, 36, 17)
EndSwitch
WEnd
|
letztendlich gesehen ist dieses script leider absolut unbrauchbar. sobald 2 mal der create button gedrückt wurde, erhält man unbrauchbare steuerelemente im gui, welche aufgrund einfach überschriebener handles nichteinmal mehr ansteuerbar sind. desweiteren ist der button im allgemeinen nur einmalig nutzbar.
da ich davon ausgehe, das der threadersteller beliebig oft neue gui elemente erstellen will, und hierbei alle einzeln ansprechbar halten will (leider schlecht ausgedrückt im erstpost), wird sich das ganze auch auf die gui größe auswirken.
ein ändern der gui größe führt dazu, das guielemente neu angeordnet werden, was zwangsweise die von mir angesprochenen grafikfehler verursacht.
|
|
|
06/13/2011, 18:22
|
#8
|
elite*gold: 75
Join Date: May 2010
Posts: 934
Received Thanks: 1,285
|
Also ich stelle euch mal mein script hier rein, damit ihr wisst wa sich meine
PHP Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
$User_Name = Inputbox ("Key Check","Bitte geben sie den Benutzernamen ein")
If $User_Name =("l") Then
$Password = InputBox ("Key Check","Bitte geben sie das Passwort ein","","*")
If $Password = ("") Then
$IE = _IECreateEmbedded()
#Region ### START GUI section ### Form=
$Form1 = GUICreate("Gilden Verwaltungs Tool", 978, 551, 189, 121)
$Tab1 = GUICtrlCreateTab(0, 0, 977, 641)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("Standart Informationen")
$TabSheet2 = GUICtrlCreateTabItem("Gilden Liste")
$Label1 = GUICtrlCreateLabel("Name", 8, 40, 92, 17)
$Label2 = GUICtrlCreateLabel("Klasse", 112, 40, 92, 17)
$Label3 = GUICtrlCreateLabel("Level", 216, 40, 36, 17)
$Label4 = GUICtrlCreateLabel("Rang", 264, 40, 60, 17)
$Label5 = GUICtrlCreateLabel("Titel", 336, 40, 68, 17)
$Label6 = GUICtrlCreateLabel("Gilde verlassen", 416, 40, 145, 17, $WS_GROUP)
$Label7 = GUICtrlCreateLabel("Gilde hinzufügen", 576, 40, 145, 17, $WS_GROUP)
$Label8 = GUICtrlCreateLabel("Rang hinzufügen", 736, 40, 113, 17, $WS_GROUP)
$Label9 = GUICtrlCreateLabel("Titel hinzufügen", 864, 40, 105, 17, $WS_GROUP)
$Label10 = GUICtrlCreateLabel("", 8, 64, 92, 17)
$Label11 = GUICtrlCreateLabel("Magier", 112, 64, 92, 17)
$Label12 = GUICtrlCreateLabel("90", 216, 64, 36, 17)
$Label3 = GUICtrlCreateLabel("Gildenleiter", 264, 64, 60, 17)
$Label14 = GUICtrlCreateLabel("Fürst", 336, 64, 68, 17)
$Button1 = GUICtrlCreateButton("Gilde verlassen", 416, 64, 145, 17, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button2 = GUICtrlCreateButton("Gilde hinzufügen", 576, 64, 145, 17, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button3 = GUICtrlCreateButton("Rang hinzufügen", 736, 64, 113, 17, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button4 = GUICtrlCreateButton("Titel hinzufügen", 864, 64, 105, 17, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Label15 = GUICtrlCreateLabel("", 8, 88, 92, 17)
$Label16 = GUICtrlCreateLabel("Priester", 112, 88, 92, 17)
$Label17 = GUICtrlCreateLabel("90", 216, 88, 34, 17)
$Label18 = GUICtrlCreateLabel("Stellvertreter", 264, 88, 60, 17)
$Label19 = GUICtrlCreateLabel("Marquis", 336, 88, 68, 17)
$Button5 = GUICtrlCreateButton("Gilde verlassen", 416, 88, 145, 17, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button6 = GUICtrlCreateButton("Gilde hinzufügen", 576, 88, 145, 17, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button7 = GUICtrlCreateButton("Rang hinzufügen", 736, 88, 113, 17, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button8 = GUICtrlCreateButton("Titel hinzufügen", 864, 88, 105, 17, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Label20 = GUICtrlCreateLabel("", 8, 112, 92, 17)
$Label21 = GUICtrlCreateLabel("Bogenschütze", 112, 112, 92, 17)
$Label22 = GUICtrlCreateLabel("90", 216, 112, 34, 17)
$Label23 = GUICtrlCreateLabel("Stellvertreter", 264, 112, 60, 17)
$Label24 = GUICtrlCreateLabel("Graf", 336, 112, 68, 17)
$Button9 = GUICtrlCreateButton("Gilde verlassen", 416, 112, 145, 17, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button10 = GUICtrlCreateButton("Gilde hinzufügen", 576, 112, 145, 17, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button11 = GUICtrlCreateButton("Rang hinzufügen", 736, 112, 113, 17, $WS_GROUP)
$Button12 = GUICtrlCreateButton("Titel hinzuügen", 864, 112, 105, 17, $WS_GROUP)
$Input1 = GUICtrlCreateInput("", 8, 136, 92, 21)
$Input2 = GUICtrlCreateInput("", 112, 136, 92, 21)
$Input3 = GUICtrlCreateInput("", 216, 136, 34, 21)
$Input4 = GUICtrlCreateInput("", 264, 136, 60, 21)
$Input5 = GUICtrlCreateInput("", 336, 136, 68, 21)
$Button17 = GUICtrlCreateButton("Gilde verlassen", 416, 136, 145, 17, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button18 = GUICtrlCreateButton("Gilde hinzufügen", 576, 136, 145, 17, $WS_GROUP)
$Button19 = GUICtrlCreateButton("Rang hinzufügen", 736, 136, 113, 17, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button20 = GUICtrlCreateButton("Titel hinzufügen", 864, 136, 105, 17, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$TabSheet3 = GUICtrlCreateTabItem("Black List")
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
#EndRegion ### END GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Else
Exit
EndIf
Else
Exit
EndIf
Ich meine, dass wenn man in die Input1-5 was eingibt und dann dann Button18 klickt, dass sich neue Labels bilden mit den sachen die in den inputboxen stehen und sich dann die input boxen in einem bestimmten abstand runter scheiben und sich die erstellten labels dazwischen schieben, so dass sie in den einzelnen spalten ( von den koordinaten her) gerade wie a´die anderen labels stehen.
|
|
|
06/13/2011, 20:54
|
#9
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
würde dir empfehlen das ganze einfach über einige arrays laufen zu lassen.
willst du noch eine vernünftige gilde verlassen funktion hinzufügen, solltest du vielleicht noch alle daten durch ein data array im hinterkopf lagern, sodass man in dem falle einfach die gesamte liste neu anordnen könnte.
aber für deine aktuelle anforderung könnte das ganze zb so aussehen:
Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
Dim $label[20][5], $input[20][5], $button[20][4]
$IE = _IECreateEmbedded()
$gui = GUICreate("Gilden Verwaltungs Tool", 978, 551, 189, 121)
$Tab1 = GUICtrlCreateTab(0, 0, 977, 641)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("Standart Informationen")
$TabSheet2 = GUICtrlCreateTabItem("Gilden Liste")
GUICtrlCreateLabel("Name", 8, 40, 92, 17)
GUICtrlCreateLabel("Klasse", 112, 40, 92, 17)
GUICtrlCreateLabel("Level", 216, 40, 36, 17)
GUICtrlCreateLabel("Rang", 264, 40, 60, 17)
GUICtrlCreateLabel("Titel", 336, 40, 68, 17)
GUICtrlCreateLabel("Gilde verlassen", 416, 40, 145, 17)
GUICtrlCreateLabel("Gilde hinzufügen", 576, 40, 145, 17)
GUICtrlCreateLabel("Rang hinzufügen", 736, 40, 113, 17)
GUICtrlCreateLabel("Titel hinzufügen", 864, 40, 105, 17)
For $i=0 To 19
$input[$i][0] = GUICtrlCreateInput("", 8, 64+$i*24, 92, 21)
$input[$i][1] = GUICtrlCreateInput("", 112, 64+$i*24, 92, 21)
$input[$i][2] = GUICtrlCreateInput("", 216, 64+$i*24, 34, 21)
$input[$i][3] = GUICtrlCreateInput("", 264, 64+$i*24, 60, 21)
$input[$i][4] = GUICtrlCreateInput("", 336, 64+$i*24, 68, 21)
$label[$i][0] = GUICtrlCreateLabel('', 8, 64+$i*24, 92, 17)
$label[$i][1] = GUICtrlCreateLabel('', 112, 64+$i*24, 92, 17)
$label[$i][2] = GUICtrlCreateLabel('', 216, 64+$i*24, 36, 17)
$label[$i][3] = GUICtrlCreateLabel('', 264, 64+$i*24, 60, 17)
$label[$i][4] = GUICtrlCreateLabel('', 336, 64+$i*24, 68, 17)
$button[$i][0] = GUICtrlCreateButton('Gilde verlassen', 416, 64+$i*24, 145, 17)
$button[$i][1] = GUICtrlCreateButton('Gilde hinzufügen', 576, 64+$i*24, 145, 17)
$button[$i][2] = GUICtrlCreateButton('Rang hinzufügen', 736, 64+$i*24, 113, 17)
$button[$i][3] = GUICtrlCreateButton('Titel hinzufügen', 864, 64+$i*24, 105, 17)
For $h=0 To 4
GUICtrlSetState($input[$i][$h], $gui_hide)
GUICtrlSetState($label[$i][$h], $gui_hide)
If $h<4 Then GUICtrlSetState($button[$i][$h], $gui_hide)
Next
Next
ActivateNewLine(0)
$TabSheet3 = GUICtrlCreateTabItem("Black List")
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
If $msg = -3 Then Exit
For $i=0 To 19
If $msg = $button[$i][1] Then
AddStuffToLine($i)
EndIf
Next
WEnd
Func AddStuffToLine($row)
If $row <= 19 Then
Local $stuff[4]
For $i=0 To 4
GUICtrlSetData($label[$row][$i], GUICtrlRead($input[$row][$i]))
GUICtrlSetState($label[$row][$i], $gui_show)
GUICtrlSetState($input[$row][$i], $gui_hide)
Next
GUICtrlSetState($button[$row][0], $gui_enable)
GUICtrlSetState($button[$row][1], $gui_disable)
If $row < 19 Then ActivateNewLine($row+1)
Else
MsgBox(0, 'Info', 'The maximum number of lines have been reached')
EndIf
EndFunc
Func ActivateNewLine($row)
For $i=0 To 4
GUICtrlSetState($label[$row][$i], $gui_hide)
GUICtrlSetState($input[$row][$i], $gui_show)
If $i<4 Then
GUICtrlSetState($button[$row][$i], $gui_show)
If $i<>1 Then GUICtrlSetState($button[$row][$i], $gui_disable)
EndIf
Next
EndFunc
|
|
|
06/13/2011, 21:32
|
#10
|
elite*gold: 75
Join Date: May 2010
Posts: 934
Received Thanks: 1,285
|
Mh, Habs ausprobiert genaus stelle ich mir das vor, aber wie mache ich das, das er auch noch mehrere labels amcht ( das programm automatisch größer wird bzw. man scrollen kann) & das beim gilde verlassen die jeweilige reihe gelöscht wird. ich kann die liste auch einfach saven, das beim ausmachen der forschritt gespeiercht wird udn beim nächsten mal wieder drinen ist, oder mit ner Dll Injektion, das die liste als dll gespeichert wird und man sie laden kann oder so.
|
|
|
06/13/2011, 21:39
|
#11
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
ich hab dir das als beispiel gegeben damit du weist wie ich mir das mit arrays vorgestellt hatte.
willst du eine löschfunktion, hinzufügen, musst due wie bereits erwähnt die daten immer in einem data array im speicher haben, sodass beim löschen einer zeile erst alle zeilen gelöscht werden können, und dann die restlichen wieder hergestellt werden.
die fragen welche du hier stellst wirken auf mich, als ob du nichteinmal versucht hast das script zu verstehen.
|
|
|
06/14/2011, 09:11
|
#12
|
elite*gold: 75
Join Date: May 2010
Posts: 934
Received Thanks: 1,285
|
Doch, habe dabei aber ein paar Probleme, da ich noch nicht so gut in AutoIt coden kann.
|
|
|
 |
Similar Threads
|
How to create your own bots/macros with AutoIt
01/27/2013 - CO2 Programming - 143 Replies
Starting Your Script
Creating your own bots and macros can be fun, and its very simple to do. This guide will talk about some basic methods on using AutoIt, and some very useful functions AutoIt provides that would help in making macros for Conquer.
First, if you don't have it already, download AutoIt by clicking the following link.
http://www.autoitscript.com/files/autoit3/...2.2. 0-setup.exe
To start a new script, either go to Start>All Programs>AutoIt v3>SciTE Script Editor, OR...
|
Create a dll with Autoit?
05/11/2011 - AutoIt - 4 Replies
can create a dll hack ... what is the code?
P.S i create a dll hack for s4 league
|
[AutoIT]How to create a GUI ohne Koda Designer etc.
10/06/2010 - Coding Tutorials - 3 Replies
Hallo,
jetzt zeige ich euch wie man eine GUI oder eine Form erstellt.
Also, zuerst erstellen wir eine neue *.au3 Datei.
So nun fangen wir an.... Zuerst, möchten wir das Fenster erstellen wo alle Buttons etc rein kommen sollen....
Dazu brauchen wir erstmal diesen Code :
GuiCreate
Danach folgt eine Klammer, wo die Werte reinkommen. In die Klammer kommen : Titel, Höhe, Breite, Position x, Position y.
Also könnte der Code so aussehen :
GUICreate("TITEL", 367, 202, 203, 123)
|
How to create a trainer with AutoIt
05/26/2010 - S4 League - 4 Replies
good because that is like taking addrest ..., how to hack it with CE, but I have no idea how to create a trainer with AutoIt
|
(GUIDE)How to create own scripts/bots with AutoIt
11/19/2008 - Rappelz - 4 Replies
for all who want to learn something or create bots for browsergames, mmorpgs and other games
download Autoit here:
http://www.autoitscript.com/cgi-bin/getfile.pl?au toit3/autoit-v3-setup.exe
Now run the Scite Script Editor
this is where you type in your code, let check your code if errors are in it and compile it to executable exe file.
the first thing you need are the coordinates of your mouse to find locations on the screen, like skill buttons, status bars, or just positions which...
|
All times are GMT +1. The time now is 08:13.
|
|