Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Savedialog Frage (https://www.delphipraxis.net/97088-savedialog-frage.html)

darkblog 4. Aug 2007 12:27


Savedialog Frage
 
Hallo

Hier mein QuellCode :

Delphi-Quellcode:
unit FTP;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdFTP, StdCtrls, WinInet;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    ftp: TIdFTP;
    Edit3: TEdit;
    Button2: TButton;
    Label1: TLabel;
    SaveDialog1: TSaveDialog;
    Button3: TButton;
    OpenDialog1: TOpenDialog;
    Button4: TButton;
    Button5: TButton;
    ListBox2: TListBox;
    Button6: TButton;
    Button7: TButton;
    ListBox3: TListBox;
    Button8: TButton;

    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ftpWork(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCount: Integer);
    procedure ftpWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
    procedure ListBox1DblClick(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
     
function IsFile(const Filename : String) : Boolean;
var
  IsFile: Boolean;
begin
  if FileExists(Filename) then
  begin
    Result := true;
  end
  else
  begin
    Result := false;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin

ftp.Username := edit1.text;
ftp.Password := edit2.text;
ftp.Host := edit3.text;

Try
ftp.Connect;
ftp.list (listbox1.items,'',false);
label1.Font.Color := clgreen;
Listbox2.Items.Add('Erfolgreich Verbunden !') ;
Except
Listbox2.Items.Add('Verbindung Fehlerhaft') ;
end;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
label1.Font.Color := clred;
Label1.Caption := 'Status : Nicht verbunden';
ftp.disconnect;
Listbox1.clear;
Listbox2.Items.Add('Disconnected') ;
end;


procedure TForm1.ftpWork(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
begin
Label1.Caption := 'Working!';
end;

procedure TForm1.ftpWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
label1.caption := 'fertig geworkt ^^';
end;

procedure TForm1.ListBox1DblClick(Sender: TObject);
begin

if Listbox1.ItemIndex <> - 1 then
  begin
   if IsFile(ListBox1.Items[ListBox1.ItemIndex]) then // Hier ist es eine Datei
    begin
   if savedialog1.Execute then
FTP.Get(edit3.text, Savedialog1.FileName);
    end
    else
    begin

      ftp.ChangeDir(Listbox1.Items[Listbox1.ItemIndex]); // Verzeichnis wechseln
      ftp.list(listbox1.items,'',false);
     listbox2.items.Add('Ordner wurde gewechselt');

    end;
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if opendialog1.execute then
begin
ftp.Put(Opendialog1.filename,extractfilename(opendialog1.filename));
ftp.list (listbox1.items,'',false);
Listbox2.Items.Add('Erfolgreich hochgeladen') ;
end;
end;

procedure TForm1.Button5Click(Sender: TObject);
  var s:string;
begin
s:='Neuer Ordner';
  if inputQuery('Neuer Ordner','Wie soll der Ordner heißen?',s) then
    begin
      ftp.MakeDir(s);
    end;
ftp.list (listbox1.items,'',false);
end;



procedure TForm1.Button4Click(Sender: TObject);
  var i:integer;
      s:string;
begin
  i:=listbox1.ItemIndex; //Selection in i
    if i <> -1 then   // is selected
      begin
        s:=listbox1.Items[i]; //String der Selection in s
       if savedialog1.Execute then
   FTP.Get(edit3.text, Savedialog1.FileName);
                          listbox2.Items.add('Datei wurde gedownloaded');
                           ftp.list (listbox1.items,'',false);
      end
       else
        // Bitte einen Ordner auswählen !!
end;

procedure TForm1.Button6Click(Sender: TObject);
  var i:integer;
      s:string;
begin
  i:=listbox1.ItemIndex; //Selection in i
    if i <> -1 then   // is selected
      begin
        s:=listbox1.Items[i]; //String der Selection in s
        if MessageDLG('Sind sie sicher, dass Sie die Datei loeschen wollen?',mtWarning,[mbYes,mbNo],0)= mrYes then
         FTP.Delete(s);
                          listbox2.Items.add('Datei wurde gelöscht');
                           ftp.list (listbox1.items,'',false);
      end
       else
        // Bitte einen Ordner auswählen !!
end;


procedure TForm1.Button7Click(Sender: TObject);
  var i:integer;
      s:string;
begin
  i:=listbox1.ItemIndex; //Selection in i
    if i <> -1 then   // is selected
      begin
        s:=listbox1.Items[i]; //String der Selection in s
        if MessageDLG('Sind sie sicher, dass Sie den Ordner loeschen wollen?',mtWarning,[mbYes,mbNo],0)= mrYes then
         FTP.RemoveDir(s);
                           ftp.list (listbox1.items,'',false);
                           listbox2.items.Add('Ordner wurde gelöscht !')
      end
       else
        // Bitte einen Ordner auswählen !!
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
if OpenDialog1.Execute then
  ListBox3.Items.Add(ExtractFileName(OpenDialog1.FileName));
end;

end.
So weit so gut :)

Wie kann ich es aber machen das der Filename von der listbox1 automatisch in den Savedialog1. als Filename kommT?

Luckie 4. Aug 2007 12:32

Re: Savedialog Frage
 
Poste doch beim nächsten mal nur den relevanten Code.

Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject);
begin
if OpenDialog1.Execute then
  OpenDialog1.Filename := ListBox3.Items.Add(ExtractFileName(OpenDialog1.FileName));
  ListBox3.Items.Add(ExtractFileName(OpenDialog1.FileName));
end;

DeddyH 4. Aug 2007 12:38

Re: Savedialog Frage
 
Zitat:

Zitat von Luckie
Delphi-Quellcode:
OpenDialog1.Filename := ListBox3.Items.Add(ExtractFileName(OpenDialog1.FileName));

:wiejetzt:

Bastler 4. Aug 2007 12:44

Re: Savedialog Frage
 
Den Code von Luckie hätte ich die genauso geschrieben und gepostet, wo is denn jetz dein Verständnisproblem?

Das einzige was mir grade so auffällt ist, das du Fragt wie du den Filenam aus ListBox1 in den Savedlg bekommst und Luckie ihn dir für ListBox3 gepostet hat, aber diese änderung kannst du ja selber vornehmen...

Luckie 4. Aug 2007 12:51

Re: Savedialog Frage
 
Das Add ist natürlich falsch. Es muss richtigerweise heissen:
Delphi-Quellcode:
OpenDialog1.Filename := ExtractFilename(ListBox3.Items[0]);
Aber letztendlich ist das Prinzip eigentlich deutlich geworden, dass man die Eigenschaft Filename des OpenDialoges eben auch vorbelegen kann.

Bastler 4. Aug 2007 13:22

Re: Savedialog Frage
 
Nagut, eins ist doppelt, das ist richtig, aber ob man :

Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject);
begin
if OpenDialog1.Execute then
  OpenDialog1.Filename := ListBox3.Items.Add(ExtractFileName(OpenDialog1.FileName));
end;
oder

Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject);
begin
if OpenDialog1.Execute then
  OpenDialog1.Filename := ExtractFileName(OpenDialog1.FileName);
  ListBox3.Items.Add(ExtractFileName(OpenDialog1.FileName));
end;
schreibt ist doch eigentlich egal, da das selbe passiert...

Christian Seehase 4. Aug 2007 13:26

Re: Savedialog Frage
 
Moin Bastler,

da ListBox.Items.Add aber den Index des hinzugefügten Strings zurückliefert, und nicht den String, ist das keineswegs egal ;-)

DeddyH 4. Aug 2007 13:27

Re: Savedialog Frage
 
Gell? :zwinker:

jfheins 4. Aug 2007 14:19

Re: Savedialog Frage
 
Zitat:

Zitat von Bastler
Nagut, eins ist doppelt, das ist richtig, aber ob man :

Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject);
begin
if OpenDialog1.Execute then
  OpenDialog1.Filename := ListBox3.Items.Add(ExtractFileName(OpenDialog1.FileName));
end;
oder

Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject);
begin
if OpenDialog1.Execute then
  OpenDialog1.Filename := ExtractFileName(OpenDialog1.FileName);
  ListBox3.Items.Add(ExtractFileName(OpenDialog1.FileName));
end;
schreibt ist doch eigentlich egal, da das selbe passiert...

Bin ich jetzt dumm, oder interessiert sich keiner für den Fall das .Execute() false zurückliefert (= Abbruch) :gruebel:
In diesem Fall sind die beiden nicht identisch, da bei der unteren Variante das .Add immer ausgeführt wird ...
Desweitern erschließt sich der Sinn hinter
Delphi-Quellcode:
OpenDialog1.Filename := ExtractFileName(OpenDialog1.FileName);
nicht so richtig ...

:wiejetzt:

darkblog 4. Aug 2007 16:23

Re: Savedialog Frage
 
Meine etwas ganz anderes :lol: :oops:

http://files.fastpic.de/Unbenannt_4502.JPG

Wenn mann auf einem Item in der Listbox1 klickt und dann Button4 klickt soll bei dem markiertem Bereich das stehen was in der listbox1 stand ist das überhaupt möglich oO


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 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