Das ist doch doppelt gemoppelt, den Button kannst du dir sparen, da du im OnEvent-Mode arbeitest.
Du hast doch die Funktionen für die Radios schon definiert. Du brauchst nicht mal den Status prüfen, da ein Radio bei Betätigung den Status $GUI_CHECKED bekommt und alle Radios derselben Gruppe automatisch $GUI_UNCHECKED sind.
Also in die zugehörigen Funktionen nur reinschreiben, was passieren soll - fertig.
Beiträge von BugFix
-
-
Naja, ich werde es einfach so machen, dass ich die Codezeilenzahl und Skriptgröße einfach nebeneinanderstelle - dann könnt ihr das selbst werten.

Ein echter Vergleich wird sowieso nicht möglich sein - dann müßte man auch Performance berücksichtigen, und das läßt sich schlecht prüfen.
-
Hi,
zum Thema Includes:
Ich denke es ist sinnvoll für einen echten Vergleich, die tatsächlich genutzten Funktionen zu bewerten.
Also sollten wir diese in das Skript reinkopieren. -
Hi,
wir hatten ja schon mal einen kleinen Programmierwettbewerb.
In dieser Richtung möchte ich nochmal einen kleinen Vergleich anschieben - und zwar für alle Skriptpuristen.
- Lösen einer Aufgabenstellung mit so wenig wie möglich CodezeilenDa ich gerade überlegt habe, wo noch weitere Tutorials sinnvoll sind, ist mir ins Auge gefallen, dass etliche codesparende Funktionen fast nie zum Einsatz kommen.
Auf diese Art und Weise können wir hier mal ein paar Anregungen vermitteln.Also hier eine ganz schlichte Aufgabe, die auch von jedem innerhalb kürzester Zeit realisiert werden kann. Aber trotzdem bietet sie Einsparpotential:
ZitatSimuliere die Ziehung der Lottozahlen 6 aus 49 (plus Zusatzzahl) und gib das Ergebnis nach der Ziehung gemeinsam aus (sortierte Ausgabe nicht erforderlich).
Es kann alles verwendet werden, was die Version 3.2.10 bietet.Falls ihr Lust habt, schickt doch einfach eure Lösungen an mich per PN. Als Termin würd ich mal das WE, also den 26.01.08 bis Mitternacht setzen. Dann kann ich die Ergebnisse am Sonntag präsentieren.
Mir geht es nicht vordergründig darum zu bewerten und einen Sieger zu küren, sondern ich bin an einer Vielzahl von Lösungswegen interessiert.
Letztlich hoffe ich, dass ihr daraus Anregung für eure eigenen Projekte schöpfen könnt.EDIT:
Nachdem einige Lösungen eingegangen sind, scheint es doch sinnvoll die Lottoregeln zu erklären:
1. Aus den Zahlen 1 bis 49 werden 6 Zahlen gezogen.
2. Aus den verbleibenden 43 Zahlen wird eine als Zusatzzahl gezogen. -
Da hast du wohl leider verpaßt, die Installationssperre für IE7 einzubauen. Nun hast du das Teil leider an der Backe.
Ich weiß nicht ob man den deinstallieren kann - glaube eher nicht.
Und die IE.au3 arbeitet mit IE7 nicht zu 100%.Kann da also nichts testen, da meine PC's alle IE7 frei sind (und bleiben).
-
$o_object.navigate ($s_Url)
[autoit]
Wie wärs denn stattdessen mit AutoIt-Syntax?_IENavigate($o_object, $s_Url)
[/autoit] -
Hi Oscar,
da ich ja ein noch älterer Sack bin als du
kann ich ja eigentlich fast Grünschnabel zu dir sagen 
Also laß die Gläser klingen und genieße das beste Mannesalter. -
Hallo huggy,
ich möchte es nicht versäumen, mich dem Kreis der Gratulanten anzuschließen.
Nun sind es ja nur noch 2 Jahre, bis du solch böse Sachen, wie Allolohl trinken und Kippen qualmen, machen darfst.
Bleib aber lieber bei AutoIt, das macht auch süchtig - ist aber nicht so gefährlich.
-
Es ist schon von Interesse wie du das Listview erstellt hast. Gibt ja jetzt 2 Möglichkeiten.
Ansonsten grundsätzlich Zugriff überb Index des Eintrags + Spaltenindex. -
Standardproblem - du erstellst die GUI erst beim Aufruf.
Besser: erst ALLE GUI definieren und dann im Programm je nach Bedarf mit @SW_SHOW zeigen und die nicht benötigte mit @SW_HIDE ausblenden. -
Ja, immer die aktuelle Version verwenden.
-
Wir haben so viele neue Funktionen.
Eine davon ist _GUICtrlComboBoxEx_SetImageList ()
Dazu findest du in der Hilfe ein gut verständliches Bsp.
Ich stelle es aber auch mal rein.
- erst ImageList erstellen
- dann Combo erstellen
- Einträge mit entsprechendem Index in der ImageList verknüpfenSpoiler anzeigen
[autoit]#include <GuiComboBoxEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GuiImageList.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]$Debug_CB = False ; Check ClassName being passed to ComboBox/ComboBoxEx functions, set to True and use a handle to another control to see it work
[/autoit] [autoit][/autoit] [autoit]Global $iMemo
[/autoit] [autoit][/autoit] [autoit]_Main()
[/autoit] [autoit][/autoit] [autoit]Func _Main()
[/autoit] [autoit][/autoit] [autoit]
Local $hGUI, $hImage, $hCombo
; Create GUI
$hGUI = GUICreate("ComboBoxEx Set Image List", 400, 300)
$hCombo = _GUICtrlComboBoxEx_Create ($hGUI, "", 2, 2, 394, 100)
$iMemo = GUICtrlCreateEdit("", 2, 32, 396, 266, 0)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
GUISetState()$hImage = _GUIImageList_Create (16, 16, 5, 3)
[/autoit] [autoit][/autoit] [autoit]
_GUIImageList_AddIcon ($hImage, @SystemDir & "\shell32.dll", 110)
_GUIImageList_AddIcon ($hImage, @SystemDir & "\shell32.dll", 131)
_GUIImageList_AddIcon ($hImage, @SystemDir & "\shell32.dll", 165)
_GUIImageList_AddIcon ($hImage, @SystemDir & "\shell32.dll", 168)
_GUIImageList_AddIcon ($hImage, @SystemDir & "\shell32.dll", 137)
_GUIImageList_AddIcon ($hImage, @SystemDir & "\shell32.dll", 146)
_GUIImageList_Add ($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap ($hCombo, 0xFF0000, 16, 16))
_GUIImageList_Add ($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap ($hCombo, 0x00FF00, 16, 16))
_GUIImageList_Add ($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap ($hCombo, 0x0000FF, 16, 16))
;Set Image List
_GUICtrlComboBoxEx_SetImageList ($hCombo, $hImage)For $x = 0 To 8
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlComboBoxEx_AddString ($hCombo, StringFormat("%03d : Random string", Random(1, 100, 1)), $x, $x)
Next;Get Image List
[/autoit] [autoit][/autoit] [autoit]
MemoWrite("ImageList Handle: " & _GUICtrlComboBoxEx_GetImageList($hCombo))Do
[/autoit] [autoit][/autoit] [autoit]
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>_Main; Write a line to the memo control
[/autoit]
Func MemoWrite($sMessage)
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite -
OK, vermutlich wird beim Protokollieren ein CRLF angehängt, somit ist die letzte Zeile leer.
[autoit]
Kannst dir ja mal das ganze Array angucken#include <array.au3>
[/autoit]
_ArrayDisplay($aFile)
[autoit]
oder die Zeile: letzte -1 ansehenMsgBox(0, 'vorletzte Zeile', $aFile[$aFile[0]-1]
[/autoit] -
Also das ist nicht so einfach, sich da reinzufrickeln.
Das Problem tritt ja nur auf, wenn du den 'falschen' Punkt markierst. Vielleicht vergleichst du da mal. -
Sry, Schreibfehler
[autoit]
Natürlich:$aFile[$aFile[0]]
[/autoit] -
Ja, $aFile muß vorher deklariert werden mit Dim oder Global - dann klappt es.
-
Du lieferst zum Programm einen Startschlüssel, der selbst befristet ist. Beim ersten Start löscht dein Programm diesen und erstellt einen neuen für einen ab diesen Zeitpunkt laufenden Zeitraum.
Ohne Schlüssel startet dein Programm gar nicht und der Startschlüssel wird von dir direkt vorher für z.B. 14 Tage Laufzeit erstellt.
Mir fallen da noch verschiedene Varianten ein
-
So kannst du die letzte Zeile der Log-Datei ausgeben:
[autoit]#include <file.au3>
[/autoit]
$file = "Ritzelrocker04.log"
$ret = _FileReadToArray($file, $aFile)
If $ret = 0 Then Exit MsgBox(0, '', 'Fehler')
MsgBox(0, 'letzter Eintrag', $aFile($aFile[0])) -
Verlang vom Nutzer eine Internetverbindung, damit kein manipuliertes PC-Datum verwendet wird. Lies von einem Time-Server das Datum aus und bilde mit einem in deinem Programm hinterlegten Schlüssel daraus ein verschlüsseltes Startdatum.
Beim Programmstart liest du den Schlüssel und prüfst ob die Nuzungsfrist abgelaufen ist. -
Hi,
zum einen kann ein Fenster, wenn es maximiert wird die Taskleiste nur überdecken, wenn diese auf 'automatisch asublenden' eingestellt ist (was anderes ist mir jedenfalls nicht bekannt). Anderenfalls wird nur bis zur Taskleiste maximiert.
Aber wie willst du maximieren, wenn du den Systembutton dafür nicht einblenden willst. Möchtest du dafür einen extra Button belegen?