Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   ListBox Item(s) per ENTER mit einer Anwendung öffnen (https://www.delphipraxis.net/119813-listbox-item-s-per-enter-mit-einer-anwendung-oeffnen.html)

LuCSteR 1. Sep 2008 12:34


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

Sherlock 1. Sep 2008 12:38

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

DeddyH 1. Sep 2008 12:39

Re: ListBox Item(s) per ENTER mit einer Anwendung öffnen
 
Schau Dir mal Hier im Forum suchenShellExecute an.

LuCSteR 1. Sep 2008 13:35

Re: ListBox Item(s) per ENTER mit einer Anwendung öffnen
 
Delphi-Quellcode:
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 :/
Diese Fehler bringt der Compiler:

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?

Marc. 1. Sep 2008 13:38

Re: ListBox Item(s) per ENTER mit einer Anwendung öffnen
 
Richtig! Hast Du auch die Unit Windows in der Klausel stehen? ;)

STS301 1. Sep 2008 13:39

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)

LuCSteR 1. Sep 2008 13:45

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?

DeddyH 1. Sep 2008 13:50

Re: ListBox Item(s) per ENTER mit einer Anwendung öffnen
 
Schau Dir die Parameter von ShellExecute nochmal genau an.

STS301 1. Sep 2008 13:51

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?

LuCSteR 1. Sep 2008 13:55

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 11:42 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz