Autor Beitrag
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Fr 31.10.03 20:53 
Hi Leute.

Ich habe in meinem Programm mehrere Unterordner nach Dateien gesucht, diese vom Pfad getrennt und in einer ListBox ausgegeben. Das klappt auch alles hervorragend. Nun gebe ich in ein Edit-Feld ein paar Buchstaben ein und bekomme auch entsprechend alle Dateien, die mit dem Text aus dem Edit-Feld beginnen. Nun ja; da beginnt mein nächstes Problem. Wenn ich diese Dateien (z.B. Word-Dokumente) öffnen will, mache ich das ja per ShellExecute. Wie das funktioniert, weiß ich. Wie bekomme ich nun aber den Pfad, wo diese Datei liegt? Wißt ihr, wie ich's meine?

Ich habe als Pfad z.B. "C:\". Nun wird in C:\ und allen Unterordnern gesucht, ich kann aber nur die Dateien starten, die auch in C:\ liegen. Liegt die woanders, geht's nicht. Wer weiß Rat? Ich zumindest mal nicht.. ;-)

_________________
Hasta La Victoria Siempre


Zuletzt bearbeitet von Terra23 am Fr 31.10.03 23:45, insgesamt 1-mal bearbeitet
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Fr 31.10.03 21:41 
Speichere den Pfad extra in Zusatzinformationen (additem) oder du übernimmst das Zeichnen der Listbox selber (ondrawitem) und beim Anzeigen zeigst du dann nur den Dateinamen (extractfilename).

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Terra23 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Fr 31.10.03 23:44 
... so ähnlich habe ich mir jetzt auch geholfen. Ich habe eine zusätzliche ListBox in mein Programm gepackt, die jedoch unsichtbar ist. In der speichere ich die Pfade (wenn ich die Dateien auslese) und arbeite dann im Aufruf auch mit ihr. Ist zwar nicht sehr "sauber" programmiert, aber was soll's. Es funktioniert zumindest mal vorerst.. ;-)

Danke für die Hilfe..

:beer:

_________________
Hasta La Victoria Siempre
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Sa 01.11.03 09:30 
warum eine unsichtbare Listbox und nicht gleich eine normale Stringlist?

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 01.11.03 11:32 
Und wenn er das eine sortiert oder was aus der Listbox löscht gibt es Probleme. Aber TStrings kennt ja die Methode AddObject. Etwas Beispeil Code:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
type
  TPerson = record
    Name: string[255];
    Vorname: string[255]
  end;
  PPerson = ^TPerson;

procedure TForm1.btnAddClick(Sender: TObject);
var
  Person: PPerson;
begin
  new(person);
  Person^.Name := edtName.Text;
  Person^.Vorname := edtVorname.Text;
  Listbox1.Items.AddObject(IntToStr(Listbox1.Items.Count + 1), TObject(Person));
end;

procedure TForm1.ListBox1Click(Sender: TObject);
var
  Name, Vorname: string;
begin
  if Listbox1.ItemIndex > -1 then
  begin
    Name := PPerson(Listbox1.Items.Objects[Listbox1.ItemIndex])^.Name;
    Vorname := PPerson(Listbox1.Items.Objects[Listbox1.ItemIndex])^.Vorname;
    ShowMessage(name + ', ' + Vorname);
  end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
var
  Loop: Integer;
begin
  for Loop := 0 downto Listbox1.Items.Count - 1 do
    Dispose(PPerson(Listbox1.Items.Objects[Loop]));
end;

Oder einfach mal nach Suche in: Delphi-Forum, Delphi-Library ADDOBJECT suchen, da gibt es eine schöne, ausführliche Erklärung von Klabautermann.
Terra23 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Sa 01.11.03 12:57 
@Luckie: Danke. Ich schaue mir das mal an; löschen kann man aus der ListBox nicht. Das habe ich verboten..

@Keldorn: Mit der StringList habe ich immer so meine Probleme. Ich habe kaum Zeit, mich neben der Schule so intensiv mit Delphi weiterzubilden. Ich kann viele grundlegende Sachen, aber teilweise muss ich immer nochmal schauen. Bis ich so Sachen fehlerfrei aus dem Kopf kann, dauert's halt ein wenig; wie gesagt, gibt viel zu tun in der Schule.. ;-)

_________________
Hasta La Victoria Siempre