1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. HassanMullah

Beiträge von HassanMullah

  • MS SQL Abfrage abfangen, wenn kein Ergebnis geliefert wird

    • HassanMullah
    • 17. Juli 2013 um 10:34

    Guten Morgen,

    folgendes kleines Problem habe ich. Wenn ich mit meinen Script eine Abfrage an eine MSSQL Datenbank absetze, wo kein Ergebnis geliefert wird, dann schmiert mir mein Script ab.

    hier mal ein wenig Code:

    [autoit]


    If $Suchkategorie = "Entsorgungsnachweis ID" Then
    Local $SQLQuery = _MSSQL_Query($sqlCon, "select n.nachweis_id, n.nachweisnr, n.vorlaeufigeennr, n.angelegt_am, u.username, n.gueltig_von, n.gueltig_bis, n.relevant, n.entsorgungsmenge_max, n.entsorgungsmenge_init, n.entsorgungsmenge_akt, n.deaktiviert_am, n.geloescht_am, t.behoerdliche_nummer, tr.KUERZEL, t.NAME from nachweis n left join teilnehmer t on n.teilnehmer_id = t.teilnehmer_id left join teilnehmerrolle tr on t.teilnehmerrolle_id = tr.teilnehmerrolle_id left join users u on n.angelegt_durch = u.user_id where n.nachweis_id = " & $Suchbegriff & ";")
    $aSQLQueryErgebnis = $SQLQuery.GetRows
    If Not IsArray($aSQLQueryErgebnis) Then
    MsgBox(48, 'Information', 'Die Suche enthält keine Daten')
    Else

    [/autoit]


    Leider greift hier Zeile 4 bis 6 nicht.
    Kann mir bitte einer mal sagen, was ich falsch mache ?

    Danke

  • Funktion hinter Button läuft schon los, ohne diesen zu drücken.

    • HassanMullah
    • 16. Juli 2013 um 15:39

    Eine kleine Frage habe ich noch. Ist es möglich Controls, welche mit

    [autoit]

    GUIStartGroup

    [/autoit]

    zusammengefasst sind, auf einen Schlag unsichtbar zu machen, indem man

    [autoit]

    GUIStartGroup

    [/autoit]

    unsichtbar macht ?

  • Funktion hinter Button läuft schon los, ohne diesen zu drücken.

    • HassanMullah
    • 16. Juli 2013 um 15:33

    Danke Euch beiden,

    ich schätze ich werde mir jetzt mal ein Konzept überlegen, wie die GUI aussehen soll und dann die ganzen Controlls mal erstellen und unsichtbar machen.

  • Funktion hinter Button läuft schon los, ohne diesen zu drücken.

    • HassanMullah
    • 16. Juli 2013 um 15:25

    Hallo Bugfix,

    nur so zum Verständnis. Ich könnte verschiedene Controls mit unterschiedlichen Variablen auf überschneidenden Koordinaten erzeugen lassen und dann z.B. via

    [autoit]


    GUICtrlSetState($GUI_Button02, $GUI_HIDE)

    [/autoit]


    verstecken ?

    Je nachdem, welchen Punkt ich von Menü 1 anklicke, lasse ich dann via

    [autoit]


    GUICtrlSetState($GUI_Button02, $GUI_SHOW)

    [/autoit]


    meine Controls sichtbar werden ?

  • Funktion hinter Button läuft schon los, ohne diesen zu drücken.

    • HassanMullah
    • 16. Juli 2013 um 15:13

    Hi,

    erst mal danke für die Zeilen Optimierung. Das mit der nicht zugewiesenen Variable kommt vielleicht hin. Sie Variable wurde als Global definiert, jedoch wird der Button erst erstellt, wenn eine Datenbank ausgewählt wurde. Ich möchte sozusagen erste mein Menü 1 aufbauen und je nachdem, was dort angeklickt wird, sieht Menü 2 dann anderst aus. Der Button ist in Menü 2 eingebaut.

    Soll ich die Variable erst deklarieren, wenn ich Sie erstelle ?

  • Funktion hinter Button läuft schon los, ohne diesen zu drücken.

    • HassanMullah
    • 16. Juli 2013 um 14:40

    Hallo,

    momentan stehe ich mal wieder voll auf dem Schlauch.

    kurze Erklärung:

    • via Funktion 1 erstelle ich meine GUI
    • hier meine While - Wend Schleife
    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    _Exit(); Wenn X gedrückt wird, wird _Exit Funktion aufgerufen

    [/autoit] [autoit][/autoit] [autoit]

    Case $WelcomeItem; Wenn Willkommen im 1. Frame gedrückt wird ..
    _Menu($WelcomeItem); ... dann 3. Frame mit Willkommensnachricht

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItem; Wenn "Suche Dokumente auf" im 1. Frame gedrückt wird
    _Menu($SuchenItem); ... dann bestücke den 2. und 3. Frame

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItemSub[1]; Wenn das Such Item angeklickt wird
    _Menu($SuchenItemSub[1]); ... gehe zur Funktion

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItemSub[2]; Wenn das Such Item angeklickt wird
    _Menu($SuchenItemSub[2]); ... gehe zur Funktion

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItemSub[3]; Wenn das Such Item angeklickt wird
    _Menu($SuchenItemSub[3]); ... gehe zur Funktion

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItemSub[4]; Wenn das Such Item angeklickt wird
    _Menu($SuchenItemSub[4]); ... gehe zur Funktion

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItemSub[5]; Wenn das Such Item angeklickt wird
    _Menu($SuchenItemSub[5]); ... gehe zur Funktion

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItemSub[6]; Wenn das Such Item angeklickt wird
    _Menu($SuchenItemSub[6]); ... gehe zur Funktion

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItemSub[7]; Wenn das Such Item angeklickt wird
    _Menu($SuchenItemSub[7]); ... gehe zur Funktion

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItemSub[8]; Wenn das Such Item angeklickt wird
    _Menu($SuchenItemSub[8]); ... gehe zur Funktion

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItemSub[9]; Wenn das Such Item angeklickt wird
    _Menu($SuchenItemSub[9]); ... gehe zur Funktion

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItemSub[10]; Wenn das Such Item angeklickt wird
    _Menu($SuchenItemSub[10]); ... gehe zur Funktion

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItemSub[11]; Wenn das Such Item angeklickt wird
    _Menu($SuchenItemSub[11]); ... gehe zur Funktion

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItemSub[12]; Wenn das Such Item angeklickt wird
    _Menu($SuchenItemSub[12]); ... gehe zur Funktion

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItemSub[13]; Wenn das Such Item angeklickt wird
    _Menu($SuchenItemSub[13]); ... gehe zur Funktion

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItemSub[14]; Wenn das Such Item angeklickt wird
    _Menu($SuchenItemSub[14]); ... gehe zur Funktion

    [/autoit] [autoit][/autoit] [autoit]

    Case $SuchenItemSub[15]; Wenn das Such Item angeklickt wird
    _Menu($SuchenItemSub[15]); ... gehe zur Funktion

    [/autoit] [autoit][/autoit] [autoit]

    Case $GUI_Button02; Wenn der Suchen Knopf gedrückt wird ...
    _Menu($GUI_Button02); gehe in die Funktion _Menu und übergeben den Case "$GUI_Button02"
    EndSwitch
    WEnd

    [/autoit]
    • die Funktion _Menu sieht so aus
    Spoiler anzeigen
    [autoit]


    Func _Menu($Case); Je nach Fall (Case), wird die Funktion unterschiedlich bestückt

    [/autoit] [autoit][/autoit] [autoit]

    If $Case = $WelcomeItem Then
    ConsoleWrite("Willkommen wurde gedrückt" & @CRLF)
    GUICtrlSetState($SuchenItem, $GUI_HIDE); verstecke die "Suche Dokumente auf"
    GUICtrlSetState($ErstelleItem, $GUI_HIDE); verstecke die "BTZ erstellen auf"
    GUICtrlSetState($FindeReadOnlyUserItem, $GUI_HIDE); verstecke die "Finde Benutzer mit Lesezugriff
    _GUIChangeItems($SuchenItemLabel, $FindeReadOnlyUserLabel, $WelcomeItemLabel, $WelcomeItemLabel); Zeige die Willkommenseite im 3.Frame
    ; Erstelle den oberen Frame
    $FrameOben = GUICtrlCreateLabel("", 241, 0, @DesktopWidth - 241, 91); $FrameOben wird erstellt - als Label
    GUICtrlSetState($FrameOben, $GUI_DISABLE)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $Case = $SuchenItem Then
    ConsoleWrite("Suche Dokumente auf wurde gedrückt" & @CRLF)
    GUICtrlSetState($WelcomeItem, $GUI_HIDE); verstecke die "Willkommen"
    GUICtrlSetState($ErstelleItem, $GUI_HIDE); verstecke die "BTZ erstellen auf"
    GUICtrlSetState($FindeReadOnlyUserItem, $GUI_HIDE); verstecke die "Finde Benutzer mit Lesezugriff
    _GUIChangeItems($WelcomeItemLabel, $FindeReadOnlyUserLabel, $SuchenItemLabel, $SuchenItemLabel); Wechsel zum Label für die Dokumentensuche
    ; Erstelle den oberen Frame
    $FrameOben = GUICtrlCreateLabel("", 241, 0, @DesktopWidth - 241, 91); $FrameOben wird erstellt - als Label
    GUICtrlSetState($FrameOben, $GUI_DISABLE)
    ;GUICtrlCreateCheckbox("Checkbox 1", 250, 30)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $Case = $SuchenItemSub[1] Then; DB1
    $SelectedDatabase = "DB1"
    $DBSelection = _DatabaseSelection($SelectedDatabase); Datenbankverbindung wird aufgebaut
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $Case = $SuchenItemSub[2] Then; DB2
    $SelectedDatabase = "DB2"
    $DBSelection = _DatabaseSelection($SelectedDatabase); Datenbankverbindung wird aufgebaut
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $Case = $GUI_Button02 Then; Wenn der Suchen Knopf gedrückt wird
    ConsoleWrite("Combo2 ist " & GUICtrlRead($GUI_Combo02) & " Input1 ist " & GUICtrlRead($GUI_Input01) & @CRLF)
    EndIf
    EndFunc ;==>_Menu

    [/autoit]

    Mein Problem ist jetzt $GUI_Button02. Hier sollte der ConsoleWrite ja erst erfolgen, wenn ich den Button drücke, aber ich sehe das hier gleich in die Console geschrieben wird, bevor ich den Knopf drücke. Ich vermute mal ein Layer 8 Hitze Problem :cursing:

    Danke für die Unterstützung

  • Problem mit If $case Abfrage

    • HassanMullah
    • 15. Juli 2013 um 13:12

    Hallo,

    ich baue gerade meine GUI um und habe einen Treeview zusammen bauen lassen.

    [autoit]


    Global $DB = "Firma 1|Firma 2|Firma 3"
    Global $arDB = StringSplit($DB, '|')
    Global $SuchenItemSub[UBound($arDB)]

    [/autoit]


    Mit der For Schleife wird das Baumkonstrukt erstellt

    [autoit]


    For $i = 1 To UBound($arDB) - 1
    $ErstelleItemSub[$i] = GUICtrlCreateTreeViewItem($arDB[$i], $ErstelleItem)
    Next

    [/autoit]


    In einer weiteren Funktion möchte ich jetzt z.B. Abfragen, wenn ich auf "Firma 1" klicke und dann z.B. eine Msgbox ausgeben.
    Bisher sah das so aus, was aber nicht geht

    [autoit]


    If $Case = $SuchenItemSub[1] Then
    MsgBox(0, "Firma", "Firma 1")
    EndIf

    [/autoit]


    Ich habe hier fest mit "1" gearbeitet, da "i" in dieser Funktion nicht mehr bekannt ist, bzw. nach der Erstellung des Baums ja hochgezählt wurde.
    Schöner wäre es natrürlich, das wieder dynamisch hin zu bekommen. Aber momentan poppt noch nicht mal die Messagebox auf.

    Bitte um etwas Hilfestellung

  • Variable in For Schleife mit Array definieren ?

    • HassanMullah
    • 1. Juli 2013 um 15:44

    Oscar : Vielen Dank. Mein Problem war, das ich das

    [autoit]


    $aSuchenItem[UBound($arDB)

    [/autoit]


    nicht definiert hatte.

    Habe noch For $i = 1 gemacht, dann hat jetzt alles gepasst.

  • Variable in For Schleife mit Array definieren ?

    • HassanMullah
    • 1. Juli 2013 um 15:24

    Korrektur im Script

    [autoit]


    For $i = 0 To UBound($arDB) - 1
    Global $SuchenItemSub[$i + 1] = GUICtrlCreateTreeViewItem($arDB[$i + 1], $SuchenItem)
    Next

    [/autoit]


    dann bekomme ich

    Zitat


    ERROR: syntax error
    Global $SuchenItemSub[$i + 1] = GUICtrlCreateTreeViewItem


    ...auch das geht nicht

    [autoit]


    For $i = 1 To UBound($arDB)
    Global $SuchenItemSub & $i = GUICtrlCreateTreeViewItem($arDB[$i], $SuchenItem)
    Next

    [/autoit]
  • Variable in For Schleife mit Array definieren ?

    • HassanMullah
    • 1. Juli 2013 um 15:16

    Hallo PainTain,

    ich kenn das Tutorial, aber anhand von Deinem Beispiel ist das Array mit 15 fix. Ich dachte mit

    [autoit]


    For $i = 0 To UBound($arDB) - 1

    [/autoit]


    ermittle ich die Größe des Array.
    Aber bei mir klappt dieser Teil nicht:

    [autoit]


    $SuchenItem & [$i] =

    [/autoit]


    Es soll dann ein

    [autoit]


    $SuchenItem1 =
    $SuchenItem2 =
    usw...

    [/autoit]


    rauskommen

  • Variable in For Schleife mit Array definieren ?

    • HassanMullah
    • 1. Juli 2013 um 15:00

    Hallo,

    ich möchte ungerne 15 solche Einträge machen

    [autoit]


    $SuchenItemSub01 = GUICtrlCreateTreeViewItem("DB 1", $SuchenItem); Unterpunkt 1 wird erstellt
    $SuchenItemSub02 = GUICtrlCreateTreeViewItem("DB 2", $SuchenItem); Unterpunkt 2 wird erstellt
    $SuchenItemSub03 = ....

    [/autoit]


    von daher habe ich das bisher so gemacht:

    [autoit]


    Global $DB = "DB1|DB2|DB3"; DB steht nur als Platzhalter für andere Bezeichnungen!

    [/autoit][autoit]


    $arDB = StringSplit($DB, '|')
    For $i = 0 To UBound($arDB) - 1
    $SuchenItem & [$i] = GUICtrlCreateTreeViewItem($arDB[$i], $SuchenItem)
    Next

    [/autoit]


    Allerdings klappt der Teil mit

    [autoit]


    $SuchenItem & [$i] =

    [/autoit]


    gar nicht :(

    Wie muss der Aufruf sein, das ich via Forschleife das so hinbekomme:

    [autoit]


    $SuchenItemSub01 = GUICtrlCreateTreeViewItem("DB 1", $SuchenItem); Unterpunkt 1 wird erstellt
    $SuchenItemSub02 = GUICtrlCreateTreeViewItem("DB 2", $SuchenItem); Unterpunkt 2 wird erstellt
    $SuchenItemSub03 = ....

    [/autoit]
  • GUI Konzept

    • HassanMullah
    • 28. Juni 2013 um 13:56

    Raupi : Das ist nicht ganz das was ich suche (aber vielleicht bin ich auch zu Betriebsblind) :)

    Egal, bin auf einen für mich guten Weg, allerdings habe ich jetzt folgendes Problem.

    Als erstes habe ich meine gesamte GUI gebaut und den 1. Frame sozusagen mit GUICtrlCreateTreeView bestückt. Wenn ich hier verschiedene Optionen anklicke bekomme ich im 3. Hauptframe diverse Texte angezeigt (also zur Übung).
    Jetzt wollte ich mal einen Button und eine Checkbox im 2. Frame erzeugen. Hierbei fällt mir folgendes auf. Ich habe den 2. Frame mit eine großen farbigen Label als Hintergrund belegt.

    [autoit]


    ; Erstelle den oberen 2. Frame
    $FrameOben = GUICtrlCreateLabel("", 241, 0, @DesktopWidth - 241, 91, $SS_SUNKEN); $FrameOben wird erstellt - als Label
    GUICtrlSetBkColor($FrameOben, 0xDDDDDD) ; Hintergrundfarbe für $FrameOben

    [/autoit]


    Wenn ich den Button und die Checkbox erzeuge, kann ich diese nicht bedienen (also es kann in der Checkbox nichts angehakt werden und Button geht nicht runter). Wenn ich den Label nicht erzeugen lasse, dann geht alles.

    Wie hängt das zusammen, bzw. wie kann ich das technisch umgehen ?

    Nachtrag!
    So habe ich es bis jetzt am Laufen:

    [autoit]


    $FrameOben = GUICtrlCreateLabel("", 241, 0, @DesktopWidth - 241, 91); $FrameOben wird erstellt - als Label
    GUICtrlSetStyle($FrameOben, BitOR($SS_LEFT, $SS_WHITEFRAME))

    [/autoit]
  • GUI Konzept

    • HassanMullah
    • 27. Juni 2013 um 11:29

    Hallo Ihr 3

    erst mal vielen Dank für die Info. Ich habe mich jetzt mal in das Script von m-obi eingelesen und denke das ich es verstanden habe. Jetzt werde ich das mal mit 3 Frames testen und dann richtig umsetzen.
    Ich lasse den Thread mal offen, vielleicht kommt noch die eine oder andere Frage :)

    Gruss Hassan

  • GUI Konzept

    • HassanMullah
    • 27. Juni 2013 um 10:17

    Guten Morgen,

    ich möchte eine bestehende Anwendung um ein paar Features erweitern. Hierzu möchte ich jedoch die GUI etwas ändern. Bisher hatte ich immer eine ganz einfache GUI, wo sozusagen alles auf einen Blick zu sehen war. Gerne würde ich jetzt "Frame ähnlich" eine GUI erstellen (siehe Bild)
    [Blockierte Grafik: http://www.hasenmueller.de/files4forum/gui.gif]
    jedoch fehlt mir gerade das Umsetzungskonzept im Kopf.

    Der Plan ist folgender. Die GUI startet, und Feld 1 ist mit diversen Controls belegt. Sobald ich im Feld 1 ein Control bediene, sollen unterschiedliche Inhalte (weitere Controls usw.) in Feld 2 erscheinen. Das hat logischerweise dann die Folge, das sich Feld 2 + 3 auch wieder "löschen" muss, wenn in Feld 1 ein anderes Controll gedrückt wird. Wenn dann in Feld 2 auf den Controlls Aktionen durchgeführt werden, muss das Ergebnis in Feld 3 zu sehen sein. Auch hier muss Feld 3 gelöscht werden, wenn in Feld 2 andere Controlls bedient werden.

    Wir hier mit unterschiedlichen "neuen" GUIs gearbeitet oder .... sorry ich hab gerade überhaupt keinen Plan, wie ich hier anfangen soll. Wie erzeuge ich meine Felder und wie übergebe und lösche ich die anzusprechenden neuen Felder. Über ein kleines Samplescript würde ich mich sehr freuen :)

    Gruss und Danke

  • Script zu lang und unübersichtlich => Auslagerung in UDF

    • HassanMullah
    • 26. Juni 2013 um 15:31

    Hallo Ihr Beiden,

    DANKE !!!!

  • Script zu lang und unübersichtlich => Auslagerung in UDF

    • HassanMullah
    • 26. Juni 2013 um 13:44

    Hallo,

    so heute ist der Tag, wo ich den Überblick verloren habe :(

    Bisher hatte ich immer ein Script gemacht, wo ich unten die Funktionen hinterlegt habe. Bei knapp 1000 Zeilen wird das jedoch etwas unübersichtlich. Da ich diverse Funktionen immer wieder verwende, wollte ich mal anfangen, eine "MyUDF.au3" zu erstelllen, dort die Funktionen auszulagern und diese dann als include zu integrieren.

    Von daher habe ich ein paar Fragen.

    1. Muss ich bei einer privaten UDF auch mit dem ganzen Header Gedöns arbeiten, oder reicht da auch nur die eigentliche Funktion, sprich wird eine UDF ohne Header im Hauptscript erkannt ?
    2. Es passt was nicht mit meinen Rückgabewerten. Am besten mal als Beispiel

    So geht es:

    So war die Funktion ursprünglich im Hauptscript
    [autoit]


    Func _CheckDPI()
    $DPI = RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics", "AppliedDPI")
    If $DPI = 96 Then
    $DPI = 1
    Else
    $DPI = 96 / $DPI
    EndIf
    ConsoleWrite("DPI in der Funktion _CheckDPI ist: " & $DPI & @CRLF)
    EndFunc ;==>_DPI

    [/autoit]


    Die Variable $DPI wurde mit DIM $DPI deklariert
    Der Aufruf erfolgt dann so:

    alter Hauptaufruf
    [autoit]


    Func MeineGUI()
    _CheckDPI()
    $MainGUI = GUICreate("MeineGUI - Version " & $Version, $GUIWidth, $GUIHeight, Default, Default); Starte HauptGUI
    ConsoleWrite("DPI außerhalb der Funktion _CheckDPI ist: " & $DPI & @CRLF)
    GUISetFont(8.5 * $DPI, 400, -1, ""); Schriftgröße
    ;..... noch ein wenig Code
    EndFunc

    [/autoit]


    Die Ausgabe in der Console zeigt folgendes:

    Code
    DPI in der Funktion _CheckDPI ist: 1
    DPI außerhalb der Funktion _CheckDPI ist: 1


    Die GUI baut sich mit normaler Schriftgröße auf.

    So geht es nicht:

    Die Funktion liegt jetzt in der MyUDF.au3
    [autoit]


    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #AutoIt3Wrapper_Run_Tidy=y
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
    Func _CheckDPI()
    Local $iDPI = RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics", "AppliedDPI")
    If $iDPI = 96 Then
    $iDPI = 1
    Else
    $iDPI = 96 / $iDPI
    EndIf
    ConsoleWrite("iDPI in der Funktion _CheckDPI ist: " & $iDPI & @CRLF)
    Return $iDPI; hier bin ich mir nicht sicher, ob ich es richtig mache
    EndFunc ;==>_CheckDPI

    [/autoit]


    Die MyUDF.au3 habe ich in den Default Include Ordner kopiert und mit

    [autoit]


    #include <MyUDF.au3>

    [/autoit]


    ins Hauptscript included.
    Der Aufruf erfolgt jetzt so:

    der neue Aufruf
    [autoit]


    Func MeineGUI()
    Local $iDPI; deklariere ich Local, da diese Variable ja auch lokal in der MyUDF.au3 liegt und hier somit nicht bekannt ist. Richtig ?
    _CheckDPI(); Funktion wird aus der MyUDF.au3 aufgerufen
    $MainGUI = GUICreate("MeineGUI - Version " & $Version, $GUIWidth, $GUIHeight, Default, Default); Starte HauptGUI
    ConsoleWrite("iDPI außerhalb der Funktion _CheckDPI ist: " & $iDPI & @CRLF)
    GUISetFont(8.5 * $iDPI, 400, -1, ""); Schriftgröße
    ;...... wieder etwas Code
    EndFunc

    [/autoit]


    Das neue Ergebnis der Consolenausgabe ist:

    Code
    iDPI in der Funktion _CheckDPI ist: 1
    iDPI außerhalb der Funktion _CheckDPI ist:


    das heißt ich mache noch was falsch bei den Übergabe der Werte.
    Meine GUI hat jetzt ein stark vergrößertes Schriftbild :(
    Wo "denke" ich hier falsch, bzw. wie und wo sollte man die Variablen deklarieren, das Sie sauber übergeben werden.

    Danke für die Hilfe

  • Combobox direkt nach Selektion abfragen, ohne Button zu betätigen

    • HassanMullah
    • 11. Juni 2013 um 16:22

    Oh Schnitzel, manchmal sieht man den Wald vor Bäumen nicht. Ich Vollpfosten ;(

    Danke

  • Combobox direkt nach Selektion abfragen, ohne Button zu betätigen

    • HassanMullah
    • 11. Juni 2013 um 15:27

    Servus,
    ich stehe mal wieder vor einem neuen kleinen Problem.
    Hier mal der Ausschnitt aus meiner GUI
    [Blockierte Grafik: http://www.hasenmueller.de/files4forum/Bild-005-2013-06-11.jpg]
    Aktuell wähle ich in der Combobox "Suche nach" ein Kriterium aus, gebe dann meinen "Suchbegriff" aus und klicke auf "Suchen..." (roter Kasten)
    Jetzt wird eine SQL Abfrage gestartet.
    Jetzt möchte ich gerne die Anwendung erweitern. Dazu macht aber das Inputfeld und der Suchenbutton am Anfang noch keinen Sinn.
    Wenn in der Combobox z.B. die Möglichkeiten A|B|C zur Verfügung stehen, dann soll nachdem ich A oder B gewählt habe, die Inputbox sowie der Button für das Suchen erscheinen,
    wenn ich jedoch C wähle möchte ich dort 3 weitere Comboboxen an der gleichen Stelle erscheinen lassen.
    Bisher frage ich die aktuelle Combo ja mit dem drücken des "Suchen..." Buttons erst ab. Wie kann ich gleich nach der Selektion der Combo den Wert ermitteln, ohne von Hand eingreifen zu müssen ?
    Gruß und Danke
    Hassan

  • HTML Quelltext nach Stringmuster parsen und in eine Datei schreiben

    • HassanMullah
    • 5. Juni 2013 um 08:51

    Hallo Christoph,

    vielen Dank für die einfach zu verstehende Erklärung. Was lerne ich daraus ? Doch in RegEx einarbeiten :whistling:

    Gruss Hassan

  • HTML Quelltext nach Stringmuster parsen und in eine Datei schreiben

    • HassanMullah
    • 4. Juni 2013 um 10:49

    x0r: Nicht traurig sein, Du hast dafür andere Qualitäten :)

    BinDannMalWeg: Ich traue mich ja langsam an RegEx ran, aber ich habe an Deinem Beispiel 2 Verständnisprobleme.

    1.) Du zerlegst meine paar Beispielzeilen in den String $sHTML. Das sieht hier nach viel "Schreibarbeit" aus. Ich habe aber den gesamten Quelltext der Site in der Zwischenablage. Reicht es hier aus, die Zwischenablage in eine Variable auszulesen, oder muss hier noch was "von Hand" gemacht werden.

    2.) Fehlt mir die Logik, woher das Script weiss, wenn es z.B. (an Deinem Beispiel) in Zeile 4 ein "QT" findet, das dann die "zksMID" in Zeile 2 interessant ist und gezogen werden muss.

    Gruss und vielen Dank

    Hassan

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™