![]() |
ListBox Item(s) per ENTER mit einer Anwendung öffnen
Hi,
also mir ist nix besseres zur Themenbeschreibung eingefallen. Sorry o_O Es geht mir darum: In einer ListBox stehen die Namen von Log-Dateien eines Ordners drin. Durch Doppelklick/ENTER auf ein Item (bzw. auch bei MultiSelect) soll die zugehörige Log-Datei mit einem best. Programm (TextPad) geöffnet werden. Bei Mehrfachselektierung von Items soll jedes in einem seperaten TextPad-Fenster geöffnet werden. Ich habe mir gedacht das ganze über eine OnKeyUp/OnKeyDown Ereignis der ListBox zu lösen. Meine Frage dazu ist: Welche Befehle benötige ich, um eine Anwendung zu starten? Bzw. wie heißt dieses Themengebiet, was sich mit solchen Problemen beschäftigt, damit ich mir selbst das nötige Wissen zusammensuchen kann? Grüße |
Re: ListBox Item(s) per ENTER mit einer Anwendung öffnen
ShellExecute, sollte da am Anfang helfen können. Gibt von da ausgehend noch ein paar andere Möglichkeiten. Aber zum Einstieg reicht das.
Sherlock |
Re: ListBox Item(s) per ENTER mit einer Anwendung öffnen
Schau Dir mal
![]() |
Re: ListBox Item(s) per ENTER mit einer Anwendung öffnen
Delphi-Quellcode:
Diese Fehler bringt der Compiler:
if Key=VK_RETURN then
for i:=0 to ListBox7.Items.Count-1 do if ListBox7.Selected[i] then ShellExecute(nil, 'open', DownloadDir+ListBox7.Items[i], nil, nil, SW_SHOWNORMAL); //SW_SHOW funktioniert auch nicht :/ Unit1.pas(763,20) Error: Identifier not found "VK_RETURN" Unit1.pas(766,89) Error: Identifier not found "SW_SHOWNORMAL" Warum? Habe ShellAPI in die Uses-Klausel eingebunden. Richtig oder? |
Re: ListBox Item(s) per ENTER mit einer Anwendung öffnen
Richtig! Hast Du auch die Unit Windows in der Klausel stehen? ;)
|
Re: ListBox Item(s) per ENTER mit einer Anwendung öffnen
in welchem Event hast du es reingeschrieben, es funktioniert nur mit VKDown unter OnKeyPress Bin mir nicht sicher, wenn es nicht funtioniert unter KeyDown, dann versuche es unter OnKeyPress)
|
Re: ListBox Item(s) per ENTER mit einer Anwendung öffnen
Guter Einwand erst einmal ^^
Hab das Ereignis im OnKeyUp, das ist problematisch sagst du? auf jeden Fall habe ich jetzt eine Menge anderer Fehler, die es vorher nicht gab o_O Unit1.pas(458,42) Error: Incompatible type for arg no. 1: Got "AnsiString", expected "PChar" Unit1.pas(556,62) Error: Incompatible type for arg no. 1: Got "AnsiString", expected "PChar" Unit1.pas(766,25) Error: Incompatible type for arg no. 1: Got "Pointer", expected "LongWord" Unit1.pas(774) Fatal: There were 3 errors compiling module, stopping Handelt sich jeweils um Dateipfadnamen bei: DeleteFile()-Befehleb. Wie kommts? |
Re: ListBox Item(s) per ENTER mit einer Anwendung öffnen
Schau Dir die Parameter von ShellExecute nochmal genau an.
|
Re: ListBox Item(s) per ENTER mit einer Anwendung öffnen
schreib es unter OnKeyDown
edit: dürfte aber kein großer Unterschied zu OnKeyUp sein, oder? |
Re: ListBox Item(s) per ENTER mit einer Anwendung öffnen
Die Fehler treten mit dem Einbinden von "Windows" auf. Und zwar an 2 Stellen, wo ich Dateien löschen will (die Pfadangabe). Die haben aber mit dem OnKeyDown garnix am Hut. Das hat auch vorher prima funktioniert.
@DeddyH: Gibt keinen Fehler mehr mit den Paramtern :) hier die beiden Fehlerstellen: DeleteFile(TempDir+SubStr); //PChar gefordert ? DeleteFile(DownloadDir+ListBox4.Items[i]); //auch PChar gefordert ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz