Für Fragen von Einsteigern und Programmieranfängern...
Foxi1896
Beiträge: 87 Registriert: Mo 10. Jun 2013, 09:06
Beitrag
von Foxi1896 » Mi 19. Jun 2013, 12:13
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.
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
Beitrag
von DonMigos » Mi 19. Jun 2013, 13:07
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
Beitrag
von Michl » Mi 19. Jun 2013, 13:18
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
Beitrag
von Foxi1896 » Mi 19. Jun 2013, 13:43
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
Beitrag
von Michl » Mi 19. Jun 2013, 13:46
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
Beitrag
von Foxi1896 » Mi 19. Jun 2013, 14:06
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
Beitrag
von DonMigos » Mi 19. Jun 2013, 14:30
Achso du wolltest nicht gleich den Textinhalt der Datei mit übergeben, hatte ich übersehen. Muss wohl die Hitze sein ...