FileListBox per mausklick öffnen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Foxi1896
Beiträge: 87
Registriert: Mo 10. Jun 2013, 09:06

FileListBox per mausklick öffnen

Beitrag von Foxi1896 »

Hallo netten Helfer =)

Ich habe eine FileListBox erstellt wo mir meine .txt Datein angezeigt werden.
Wie bekomme ich es hin wenn ich nun per Mausklick eine der Datei zu öffnen und direkt an eine Procedure weiterzugeben.

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
 var
    Dir: string;
  begin
    memo1.Clear;
    Dir:=Paramstr(0);                                       memo1.Lines.Add(Dir);
    Dir:=ExtractfilePath(Dir);                              memo1.Lines.Add(Dir);
    Dir:=includetrailingpathdelimiter(Dir)+'Messungen';     memo1.Lines.Add(Dir);
    Dir:=includetrailingpathdelimiter(Dir);                 memo1.Lines.Add(Dir);
    filelistbox1.Directory:=Dir;
    filelistbox1.Mask:='*.txt';
    filelistbox1.UpdateFileList;
 
  end;                             
und an die Procedure weiter geben.

Code: Alles auswählen

 
procedure InGrid(DatName : String);
var                                        
bisher hatte ich halt über Opendialog geöffnet.

gruß
foxi

DonMigos
Beiträge: 52
Registriert: Mi 15. Mai 2013, 21:21
OS, Lazarus, FPC: Win7 (L 1.0.8 FPC 2.6.2)
CPU-Target: 32Bit

Re: FileListBox per mausklick öffnen

Beitrag von DonMigos »

Hi,
so könnte es gehen, wenn ich dich richtig verstanden habe:

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
var
  Dir: string;
begin
    memo1.Clear;
    Dir:=Paramstr(0);                                       memo1.Lines.Add(Dir);
    Dir:=ExtractfilePath(Dir);                              memo1.Lines.Add(Dir);
    Dir:=includetrailingpathdelimiter(Dir)+'Messungen';     memo1.Lines.Add(Dir);
    //Dir:=includetrailingpathdelimiter(Dir); -> wird bei FileListBox1.FileName automatisch angehängt 
    //memo1.Lines.Add(Dir);
    filelistbox1.Directory:=Dir;
    filelistbox1.Mask:='*.txt';
    filelistbox1.UpdateFileList;
end;
 
procedure TForm1.FileListBox1DblClick(Sender: TObject);
var
  tmpList: TStringList;
begin
  tmpList:= TStringList.Create;
  try
    tmpList.LoadFromFile(FileListBox1.FileName);
    //-> hier übergabe an: InGrid(tmpList.Text);
  finally
    FreeAndNil(tmpList);
  end;
end;   
Zuletzt geändert von DonMigos am Mi 19. Jun 2013, 14:33, insgesamt 4-mal geändert.

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: FileListBox per mausklick öffnen

Beitrag von Michl »

Eine Datei öffnen:

Event OnClick oder OnDblClick

Code: Alles auswählen

procedure TForm1.FileListBox1Click(Sender: TObject);
begin
  InGrid(FileListBox1.FileName);   //FileListBox1.FileName beinhaltet auch Verzeichnisstruktur
end;

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Foxi1896
Beiträge: 87
Registriert: Mo 10. Jun 2013, 09:06

Re: FileListBox per mausklick öffnen

Beitrag von Foxi1896 »

also habe jetzt beide Varianten ausprobiert. Funktionieren leider beide nicht =/

@DonMigos: also bei deinem geht es schomal das er den Klick annimmt aber dann kommt:
Unable to open file

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: FileListBox per mausklick öffnen

Beitrag von Michl »

Versuch mal folgendes:

Code: Alles auswählen

procedure TForm1.FileListBox1Click(Sender: TObject);
begin
  Form1.Caption:=FileListBox1.FileName;   //FileListBox1.FileName beinhaltet auch Verzeichnisstruktur
end;
Jetzt steht in der Caption deiner Form der Name der angeklickten Datei. Jetzt überprüfe, ob diese Datei am angegebenen Ort vorhanden ist.

Wenn ja, dann liegt der Fehler wahrscheinlich in deiner Procedure "InGrid(...)", ansonsten gibt es einen Fehler bei TFileListBox, der mir erstmal nicht plausibel wäre.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Foxi1896
Beiträge: 87
Registriert: Mo 10. Jun 2013, 09:06

Re: FileListBox per mausklick öffnen

Beitrag von Foxi1896 »

AHH, DANKE Euch!!!
@michl: Dein erstes hat schon geklappt. War etwas verpeilt.

DonMigos
Beiträge: 52
Registriert: Mi 15. Mai 2013, 21:21
OS, Lazarus, FPC: Win7 (L 1.0.8 FPC 2.6.2)
CPU-Target: 32Bit

Re: FileListBox per mausklick öffnen

Beitrag von DonMigos »

Achso du wolltest nicht gleich den Textinhalt der Datei mit übergeben, hatte ich übersehen. Muss wohl die Hitze sein ... :lol:

Antworten