![]() |
Datei öffnen ohne Dialog (blutiger Newbie)
Gleich mal als erstes:
Ich bin ein ziemlicher Newbie *gg* :oops: Ich möchte eine Datei aus einer Liste direkt öffnen ohne ein Dialogfenster zu erzeugen. Bisher habe ich für meinen Wissensstand nix nützliches zu TOpenDialog(wird wohl damit eh nicht gehen) und OpenFile gefunden. Es müssen alle Dateitypen die spezifiziert sind (also. z.B. *.txt, *.exe, *.jpg, etc.) geöffnet werden. Muss ich dabei mit der Registry Dateierweiterungs-Liste (z.B. HKEY_CLASSES_ROOT (eine unter vielen)) arbeiten und dem darunter stehenden Programm die nötigen Parameter übergeben? Oder geht dies leichter? MfG Phil, der sich erst einarbeitet... P.S.: Sorry, wenn dieser Beitrag in einer falschen Area steht, aber ich weiß nicht einmal, was "VCL-Komponenten" sind :\ |
Hi und willkommen,
also, was willst du machen? Zum laden von Dateien in eine Memo:
Delphi-Quellcode:
Aber es kommt darauf an, was du machen willst...
Memo1.Lines.LoadFromFile('C:\Pfad\Zur\Datei.dat');
VCL ist die Standardmäßige Programmierweise. VCL steht für Visual Component Library. Daneben gibt es noch CLX (wofür das steht weiß ich nicht), dass ist die Art unter Linux (erst ab Delphi 5). Um unter Linux zu programmieren mit Delphi brauchst du Kylix (sozusagen Delphi für Linux). Dann gibt es noch nonVCL, damit programmiert man einfach nur Source. Also man zieht keine Komponenten auf das Formular, usw... Fragen dazu? Chris |
Moin Phil,
erst einmal herzlich willkommen. Zitat:
Da möchte ich erst einmal mit einer scheinbar bei Dir vorhandenen, aber, wie ich finde durchaus verständlichen, Begriffsverwirrung aufräumen: TOpenDialog (bzw. TSaveDialog) öffnet (bzw. speichert) keine Datei. Diese Dialoge dienen nur dazu den Pfad und Dateinamen abzufragen. Was Du dann mit diesem Pfad anfängst ist Deine Sache. Da Du ziemlich verschiedene Dateitypen verarbeiten willst, hätte ich da aber noch einmal eine Frage: Was soll mit diesen Dateien geschehen? Ggf. müsste das Öffnen typspezifisch unterschiedlich ablaufen. |
Hi,
ich glaube, ich habe jetzt verstanden, was du willst: du willst eine Datei aus einer Liste (z.B. ListBox) mit dem StandardEditor öffnen, kann das sein? Dazu ist ShellExecute zu Empfehlen. Also, 1 ListBox mit Inhalt, 1 Button. Button1.OnClick:
Delphi-Quellcode:
Ich hoffe, dass war es, was du meintest...
ShellExecute( Handle, 'open', PChar( ListBox1.Items[ ListBox1.ItemIndex ] ), nil, nil, SW_SHOW );
Chris |
zu: Chakotay1308
Nö... Ich will einen "Desktop-Manager" Schreiben, der meiner Unordnung standhält... *gg* Das Projekt sieht so aus: Verschiedene Profile für die Benutzer (Combobox) Programm-Art auswählen(Combobox) (z.B. Spiele), der Manager zeigt danach die, vorher eingegebenen, Spiele(,etc.) in einer FileListBox (Ich erstelle eine Art Baumstruktur in den Profilordnern mit der ich dann die FLBox füttere). In der FLBox befinden sich eigentlich nur Textdateien, in welche ich den richtigen Pfad der Auszuführenden Datei hineinschreibe (z.B.: C.\Spiele\half-Life\CounterStrike\cs.exe). Diesen Text kann ich ja schnell mit LoadFromFile laden, nur sollte ich dann auch das betreffende Programm starten. Eine Möglichkeit wäre OpenDialog1.filename:=ausgelesenerPfad; OpenDialog1.execute; Nur bringt mir letzteres ein Dialogfeld, welches ich bestätigen muss. Und genau diese Bestätigung will ich nicht! Ich will es direkt ausführen. MfG Phil |
Moin Phil,
sei doch bitte mal so gut, und lies Dir die Postings von Chris und mir noch einmal ganz genau durch. Dann müsstest Du wissen
;-) |
Zitat:
Eher wie der Explorer unter Windows. Er öffnet jegliche Datei mit dem richtigen Programm, nur wie kann ich ein anderes Programm öffnen (und diesem eventuell Parameter übergeben?) MfG Phil |
Oder kann ich mit ShellExecute jedes Prog öffnen?
MfG Phil, der das nicht ganz verstanden hat... |
Hi Phil,
also ShellExecute übergibt der Shell das Programm. Diese sucht aus der Registry das Programm aus, dass dieses bearbeitet. Bei Programm funktioniert das ähnlich, nur dass die Shell dann einen neuen Prozess startet, um dass Programm selber zu starten. Soll heißen: Mit ShellExecute kannst du Dateien öffnen, Programme starten und Websites öffnen.... Parameter: 4. Parameter von ShellExecute Chris |
Thx
Thx euch zwei für die flotte Beantwortung.
Hat mich sehr gefreut... :D MfG Phil |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:37 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