AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SHCopyFile + Ini-File

Ein Thema von TheMiller · begonnen am 19. Mai 2003 · letzter Beitrag vom 19. Mai 2003
Antwort Antwort
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

SHCopyFile + Ini-File

  Alt 19. Mai 2003, 17:00
Hi Leute!

Ich habe eine Frage, die etwas kompliziert zu umschreiben ist. Ich habe ein Programm geschrieben, dass eine HauptForm als layout und eine Form2 als "Optionen" hat. In den Optionen kann man Quell und Ziel verzeichnis eingeben, welche in einer INI gespeichert werden. So - funzt einwandtfrei. Auch der Abruf der Optionen im HauptFrame ist kein Problem. Nur, wie bekomme ich hin, dass die SHCopyFile Funktion einen Wert für den Quell und Zielorder aus der INI File bezieht?? Ich hoffe ihr könnt mir helfen. Bin fast am Verzweifeln...

Danke im Vorraus

Achso, mein Code:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, inifiles, ShellAPI, ComCtrls, StdCtrls, Menus;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    ProgressBar1: TProgressBar;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    CheckBox6: TCheckBox;
    CheckBox7: TCheckBox;
    MainMenu1: TMainMenu;
    Sichern1: TMenuItem;
    Allessichern1: TMenuItem;
    AusgewhlteDatensichern1: TMenuItem;
    Optionen1: TMenuItem;
    ber1: TMenuItem;
    Exit1: TMenuItem;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Edit9: TEdit;
    Edit10: TEdit;
    Edit11: TEdit;
    Aktualisieren1: TMenuItem;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    CheckBox8: TCheckBox;
    CheckBox9: TCheckBox;
    CheckBox10: TCheckBox;
    Label15: TLabel;
    procedure Exit1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure AusgewhlteDatensichern1Click(Sender: TObject);
    procedure Optionen1Click(Sender: TObject);
    procedure Aktualisieren1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Allessichern1Click(Sender: TObject);
  private
{ Private-Deklarationen }
  function SHCopyFile(Handle: THandle; szSource, szDestination: TFileName): Boolean;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

function TForm1.SHCopyFile(Handle: THandle; szSource, szDestination: TFileName): Boolean;
var
  ShellFileOperation: TSHFileOpStruct;
begin
  Result := True;
  try
    with ShellFileOperation do
    begin
      Wnd := Handle;
      wFunc := FO_COPY;
      pFrom := PChar(szSource);
      pTo := PChar(szDestination);
      // fFlags := FOF_FILESONLY OR FOF_NOCONFIRMMKDIR FOF_SIMPLEPROGRESS;
      fFlags := FOF_NOCONFIRMMKDIR;
      lpszProgressTitle := 'Dateien kopieren ...';
    end;
    SHFileOperation(ShellFileOperation);
  except
    Result := False;
  end;
  end;

procedure TForm1.Exit1Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.FormCreate(Sender: TObject);
var ini:TInifile;
begin
ini := TIniFile.Create('C:\Programme\SCC\Settings.ini');
try
  Edit2.Text:=ini.ReadString('Source','1','Text');
  Edit3.Text:=ini.ReadString('Source','2','Text');
  Edit4.Text:=ini.ReadString('Source','3','Text');
  Edit5.Text:=ini.ReadString('Source','4','Text');
  Edit6.Text:=ini.ReadString('Source','5','Text');
  Edit7.Text:=ini.ReadString('Source','6','Text');
  Edit8.Text:=ini.ReadString('Source','7','Text');
  Edit9.Text:=ini.ReadString('Source','8','Text');
  Edit10.Text:=ini.ReadString('Source','9','Text');
  Edit11.Text:=ini.ReadString('Source','10','Text');
  Label3.Caption:=ini.ReadString('AppName','1','Caption');
  Label4.Caption:=ini.ReadString('AppName','2','Caption');
  Label5.Caption:=ini.ReadString('AppName','3','Caption');
  Label6.Caption:=ini.ReadString('AppName','4','Caption');
  Label7.Caption:=ini.ReadString('AppName','5','Caption');
  Label8.Caption:=ini.ReadString('AppName','6','Caption');
  Label9.Caption:=ini.ReadString('AppName','7','Caption');
  Label10.Caption:=ini.ReadString('AppName','8','Caption');
  Label11.Caption:=ini.ReadString('AppName','9','Caption');
  Label12.Caption:=ini.ReadString('AppName','10','Caption');
    finally
  ini.Free;

end;
end;

procedure TForm1.AusgewhlteDatensichern1Click(Sender: TObject);
var filesource, filedest:string;
var ini:TInifile;
begin
ini:=TInifile.Create('C:\Programe\SCC\Settings.ini');
try
IF CheckBox1.Checked THEN fileSource:=ini.ReadString('source','1',Text);
  filedest:=ini.ReadString('Destination','1',Text);
  CopyFile(PChar(fileSource), PChar(fileDest), False);
  finally
  ini.Free;

end;
 end;
procedure TForm1.Optionen1Click(Sender: TObject);
begin
Form1.Visible:=False;
Form2.Visible:=True;
end;

procedure TForm1.Aktualisieren1Click(Sender: TObject);
var ini:TInifile;
begin
ini := TIniFile.Create('C:\Programme\SCC\Settings.ini');
try
  Edit2.Text:=ini.ReadString('Source','1','Text');
  Edit3.Text:=ini.ReadString('Source','2','Text');
  Edit4.Text:=ini.ReadString('Source','3','Text');
  Edit5.Text:=ini.ReadString('Source','4','Text');
  Edit6.Text:=ini.ReadString('Source','5','Text');
  Edit7.Text:=ini.ReadString('Source','6','Text');
  Edit8.Text:=ini.ReadString('Source','7','Text');
  Edit9.Text:=ini.ReadString('Source','8','Text');
  Edit10.Text:=ini.ReadString('Source','9','Text');
  Edit11.Text:=ini.ReadString('Source','10','Text');
  Label3.Caption:=ini.ReadString('AppName','1','Caption');
  Label4.Caption:=ini.ReadString('AppName','2','Caption');
  Label5.Caption:=ini.ReadString('AppName','3','Caption');
  Label6.Caption:=ini.ReadString('AppName','4','Caption');
  Label7.Caption:=ini.ReadString('AppName','5','Caption');
  Label8.Caption:=ini.ReadString('AppName','6','Caption');
  Label9.Caption:=ini.ReadString('AppName','7','Caption');
  Label10.Caption:=ini.ReadString('AppName','8','Caption');
  Label11.Caption:=ini.ReadString('AppName','9','Caption');
  Label12.Caption:=ini.ReadString('AppName','10','Caption');
    finally
  ini.Free;

end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Progressbar1.StepIt;
end;

procedure TForm1.Allessichern1Click(Sender: TObject);
var ini:TInifile;
begin
ini := TIniFile.Create('C:\Programme\SCC\Settings.ini');
try
ini.ReadString
finally
ini.free;
end;
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2
  Alt 19. Mai 2003, 17:23
ReadString.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#3
  Alt 19. Mai 2003, 17:27
Ja, grad dann bringt er mir eine Fehlermeldung.
Kannst du mir bitte mal einen Beispiel-Code schreiben (Für einen ordner)??
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4
  Alt 19. Mai 2003, 17:29
Was soll ich da groß schreiben?

Einfach diese Funktion:
Delphi-Quellcode:
function TForm1.SHCopyFile(Handle: THandle; szSource, szDestination: TFileName): Boolean;
var
  ShellFileOperation: TSHFileOpStruct;
begin
  Result := True;
  try
    with ShellFileOperation do
    begin
      Wnd := Handle;
      wFunc := FO_COPY;
      pFrom := PChar(szSource);
      pTo := PChar(szDestination);
      // fFlags := FOF_FILESONLY OR FOF_NOCONFIRMMKDIR FOF_SIMPLEPROGRESS;
      fFlags := FOF_NOCONFIRMMKDIR;
      lpszProgressTitle := 'Dateien kopieren ...';
    end;
    SHFileOperation(ShellFileOperation);
  except
    Result := False;
  end;
end;
Mit dem Quellordner und dem Zielordner aufrufen. Steht doch schon alles da.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#5
  Alt 19. Mai 2003, 19:12
Ja, aber wie sage ich dem Prog, dass er sich den Ziel, Quellordner aus der Ini Laden soll.

Habe ja im normalen Code folgendes:

if SHCopyFile(Handle, 'C:\Windows\*.*', 'D:\Windows.Copy\')... aber es soll so heißen:

if SHCopyFile(Handle, '[quelleAusIni]', '[ZielAusINI]') aber das geht net... Wenn irgendeine mir helfen könnte, den fehler zu korrigieren, wäre ich ihm auf immer und ewig dankbar...
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#6
  Alt 19. Mai 2003, 19:55
Hallo,
ganz verstehe ich noch nicht genau was Du möchtest, aber
Du liest doch schon Ziel und Quelle aus der INI:

Delphi-Quellcode:
 fileSource:=ini.ReadString('source','1',Text);
 filedest:=ini.ReadString('Destination','1',Text);
if SHCopyFile(Handle, fileSource, filedest) sollte reichen, oder verstehe ich etwas falsch?
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#7
  Alt 19. Mai 2003, 20:00
Hi, ich möchte, dass in dem Koier-Code der Quell und Zielordner aus der INI gelesen wird. In ´Worte sehe das so aus

Kopieren von:[eintrag aus ini lesen) in(eintrag aus ini-lesen)

Hoffe, du verstehst mich
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 Uhr.
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