GUICtrlCreateList und Web-Links

  • Moin zusammen,

    Tja da hab ich doch schon das nächste Problem.

    Ich möchte in einem GUICtrlCreateList Weblinks anzeigen die ich aus einer INI hole. Funktioniert auch soweit ganz gut nur möchte ich auch gerne das die Links in dem GUICtrlCreateList auch an geklickt erden können, sich der Browser öffnet (vorzugsweise FF) und die Seite auf gerufen wird.

    Hat da einer eine Idee?

    Greetz and THX
    MrB

  • Kein Problem:

    [autoit]

    #include <GUIConstantsEx.au3>

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

    $Links = IniReadSection("Links.ini","Links")

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

    GUICreate("Meine Link GUI")
    $mylist = GUICtrlCreateList("", 6, 6, 400, 200)
    For $i = 1 To $Links[0][0]
    GUICtrlSetData(-1, $Links[$i][1])
    Next

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

    $close = GUICtrlCreateButton("Ende", 64, 260, 175, 25)

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

    GUISetState()

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

    $msg = 0
    While $msg <> $GUI_EVENT_CLOSE
    $msg = GUIGetMsg()
    If $msg = $close Then Exit
    If $msg = $mylist Then ShellExecute(GUICtrlRead($mylist))
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit]
    Passende Ini-Datei 'Links.ini'
  • Hi funkey

    Funzt einwandfrei. Muss wohl doch noch einiges lernen :rolleyes:

    Das habe ich gesucht :

    If $msg = $mylist Then ShellExecute(GUICtrlRead($mylist))

    Gut das du es gefunden hast ! :thumbup:

    Noch 2 kleine Fragen:

    1. Wie bekomme ich eine leerzeile zwischen 2 Variablen
    z.B.:
    GUICtrlSetData($list, "" & $listnamenini & $listlinksini)

    Zwischen $listnamenini und $listlinksini ein leerzeichen

    2. Was mache ich falsch ? Ich lese eine Liste von Links und Namen aus der INI Datei aus (kein array, kapier ich net) und zeige sie in einem GUICtrlCreateList an. Mein Prob ist, das die Zuordnug in dem GUICtrlCreateList nicht übereinstimmt! Also 1=Karl steht nicht neben 1=www.google.de. woran liegt das und wie kann man das ändern
    z.B.:

    [Namen]
    1=karl
    2=horst
    3=peter
    usw.

    [links]
    1=www.google.de
    2=www.autoit.de
    3=www.egal.de


    Danke an alle die hier helfen. Find ich net schlecht

    Gruß
    MrB

  • Naochmal THX

    Zu 1
    Funzt! Wo ichs gelesen habe musste ich meine Stirn ein wenig malträtieren. Hab schonmal danach gesucht und auch gefunden und wieder vergessen :cursing:

    Zu 2
    Mit dem Thema Styles hab ich mich noch nie beschäftigt. hab mal gelesen das der Standard immer sortiert. Gut, wenn ich es ändern will muss ich also einen anderen Style nehmen. habe mich für $LBS_DISABLENOSCROLL entschieden. Ganz oben steht ja, das man um die Styles zu benutzen #include angeben muss. Nur wo und wie ? meine Versuche scheitern da. kannst mir da auch nochmal auf die Sprünge helfen. Werd aber auch die SuFu anstrengen.


    Und noch was: Wie kann man doppelte Einträge im GUICtrlCreateList zulassen. Nimmt nämlich keine an. Hmm, kann ja eigentlich auch net. Mal schauen
    MrB

  • Einfach oben im Skript includen. Damit wird eine Datei eingebunden, in der Funktionen und Variablen deklariert sind.

    Erweitertes Beispiel
    [autoit]

    #include <ListboxConstants.au3>
    #include <GUIConstantsEx.au3>

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

    $Links = IniReadSection("Links.ini","Links")

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

    GUICreate("Meine Link GUI")
    $mylist = GUICtrlCreateList("", 10, 10, 380, 200, $LBS_DISABLENOSCROLL)
    For $i = 1 To $Links[0][0]
    GUICtrlSetData(-1, $Links[$i][1])
    Next

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

    $close = GUICtrlCreateButton("Ende", 64, 260, 175, 25)

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

    GUISetState()

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

    $msg = 0
    While $msg <> $GUI_EVENT_CLOSE
    $msg = GUIGetMsg()
    If $msg = $close Then Exit
    If $msg = $mylist Then ShellExecute(GUICtrlRead($mylist))
    WEnd

    [/autoit]

    Wenn du gleiche Einträge brauchst, nimmst du am besten ListView anstelle von List

    ListView-Beispiel
    [autoit]

    #include <GUIConstantsEx.au3>

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

    $Links = IniReadSection("Links.ini","Links")

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

    GUICreate("Meine Link GUI")
    $mylist = GUICtrlCreateListView("Name|Link", 10, 10, 380, 200)
    For $i = 1 To $Links[0][0]
    MsgBox(0,"",$Links[$i][0]&"|"&$Links[$i][1])
    GUICtrlCreateListViewItem($Links[$i][0]&"|"&$Links[$i][1], $mylist)
    Next

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

    $close = GUICtrlCreateButton("Ende", 64, 260, 175, 25)

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

    GUISetState()

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

    $msg = 0
    While $msg <> $GUI_EVENT_CLOSE
    $msg = GUIGetMsg()
    If $msg = $close Then Exit
    If $msg = $mylist Then ShellExecute(GUICtrlRead($mylist))
    WEnd

    [/autoit]
  • Funzt einwandfrei. ich wusste einfach nicht welche Datei ich einbinden soll. Hab jetzt mal nach geschaut und denke das ich das System verstanden habe. Auf jeden Fall funzen jetzt alle Styles.

    Tja, das mit Listview hatte ich ja am Anfang. Aber da ist das Thema mit dem array . Muss gestehen, dass ich das nicht wirklich kapier. Werd mich da wohl doch noch mit befassen müssen. wollte es nur vermeiden, da ich im Mom wenig zeit habe

    Auf jeden Fall Danke

    CU


    P.S.: Irgendwie ist meine Shift Taste hinüber also achtet nicht so auf die Groß/Kleinschreibung