Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TMUnit < wasn das ? (https://www.delphipraxis.net/51591-tmunit-wasn-das.html)

Gast 15. Aug 2005 18:38


TMUnit < wasn das ?
 
Hallo,

habe seit langem mal wieder Delphi geöffnet, nach dem formatieren und nun habe ich ein vorhandenes Programm geöffnet und oben steht

Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TMUNIT, StdCtrls, FileCtrl, Gauges, ComCtrls, ShellCtrls, Menus;
File not Found: 'TMUNIT.dcu' ist der Fehler und selbst bei google findet man nichts zu tmunit, kann mir einer helfen ? Wo kriege ich das her ?


In dem Programm steht z.B. "DateienLoeschen" ich gehe mal stark davon aus, dass ich die Datei dafür brauche. Bin für jede Hilfe dankbar.

SirThornberry 15. Aug 2005 18:40

Re: TMUnit < wasn das ?
 
hast du dir diese Unit vielleicht selbst mal geschrieben. Denn eine Funktion wird eigentlich nie "DateienLoeschen" genannt wenn sie für weitergabe bestimmt ist. Und ein T führt eignetlich auch niemand dafür an. Das "M" steht vermutlich für "my".

Gast 15. Aug 2005 18:42

Re: TMUnit < wasn das ?
 
Ne hab ich nicht, habe auch noch jemanden HIER mit dieser Unit gefunden aber kriege ihn nicht kontaktiert. Vielleicht bestitzt ja noch jmd diese Unit, wäre echt cool :-)


Evtl. kennt jemand ja ne Unit die ich dafür brauche ... habe z.B. folgendes im Code drin:

Delphi-Quellcode:
DateienLoeschen(path+'\','*.jpeg');
Damit lösche ich z.B. alle jpeg Dateien.

ichbins 15. Aug 2005 19:34

Re: TMUnit < wasn das ?
 
Ich schätze mal damit habe ich die Funktion nachprogrammiert:
Delphi-Quellcode:
function dateienloeschen(filename:string):integer;
var
  f:tsearchrec;
  fi:file;
  files:array of string;
  i:integer;
begin
  result:=0;
  if findfirst(filename,0,f)<>0 then exit;
  setlength(files,1);
  files[0]:=f.Name;
  while findnext(f)<>0 do begin
    setlength(files,length(files)+1);
    files[length(files)-1]:=f.Name;
  end;
  findclose(f);
  for I:=0 to length(files)-1 do
  begin
    try begin
      assignfile(fi,files[i]);
      erase(fi);
      inc(result);
    end; except end;
  end;
end;
Die Funktion tut genau das und gibt am Ende die Anzahl gelöschter Dateien zurück.

Gast 15. Aug 2005 19:46

Re: TMUnit < wasn das ?
 
Irgendein Fehler gibts noch .. "Too many actual parameters" :-( och menno

fkerber 15. Aug 2005 19:59

Re: TMUnit < wasn das ?
 
HI!

Wie rufst du denn auf?


Ciao Frederic

Gast 15. Aug 2005 20:08

Re: TMUnit < wasn das ?
 
Hier mal der ganze Code vom Programm ;)

Delphi-Quellcode:

unit mtifd;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TMUNIT, StdCtrls, FileCtrl, Gauges, ComCtrls, ShellCtrls, Menus;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ShellTreeView1: TShellTreeView;
    GroupBox1: TGroupBox;
    Bilddateien: TCheckBox;
    Textdateien: TCheckBox;
    Videodateien: TCheckBox;
    Webdateien: TCheckBox;
    Gepacktedateien: TCheckBox;
    AlleDateien: TCheckBox;
    label1: TEdit;
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Beenden2: TMenuItem;
    Hilfe1: TMenuItem;
    Anleitung1: TMenuItem;
    Info1: TMenuItem;
    procedure Button1Click(Sender: TObject);
    procedure AlleDateienClick(Sender: TObject);
    procedure ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
    procedure Beenden2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  path: String;
  self: String;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  path := ShellTreeView1.SelectedFolder.PathName;

  if (Bilddateien.checked = true) then begin
    DateienLoeschen(path+'\','*.jpeg');
    DateienLoeschen(path+'\','*.jpg');
    DateienLoeschen(path+'\','*.jpe');
    DateienLoeschen(path+'\','*.jfif');
    DateienLoeschen(path+'\','*.bmp');
    DateienLoeschen(path+'\','*.gif');
    DateienLoeschen(path+'\','*.png');
    DateienLoeschen(path+'\','*.tif');
    DateienLoeschen(path+'\','*.psd');
    DateienLoeschen(path+'\','*.dib');
    DateienLoeschen(path+'\','*.tiff');
  end;

  if (Textdateien.checked = true) then begin
    DateienLoeschen(path+'\','*.doc');
    DateienLoeschen(path+'\','*.txt');
    DateienLoeschen(path+'\','*.rtf');
  end;

  if (Videodateien.checked = true) then begin
    DateienLoeschen(path+'\','*.mp3');
    DateienLoeschen(path+'\','*.wav');
    DateienLoeschen(path+'\','*.wmv');
    DateienLoeschen(path+'\','*.avi');
  end;

  if (Webdateien.checked = true) then begin
    DateienLoeschen(path+'\','*.htm');
    DateienLoeschen(path+'\','*.html');
    DateienLoeschen(path+'\','*.php');
    DateienLoeschen(path+'\','*.php3');
    DateienLoeschen(path+'\','*.php4');
    DateienLoeschen(path+'\','*.css');
  end;

  if (Gepacktedateien.checked = true) then begin
    DateienLoeschen(path+'\','*.rar');
    DateienLoeschen(path+'\','*.zip');
    DateienLoeschen(path+'\','*.ace');
    DateienLoeschen(path+'\','*.cab');
    DateienLoeschen(path+'\','*.tar');
    DateienLoeschen(path+'\','*.iso');
  end;

  if (AlleDateien.checked = true) then begin
    DateienLoeschen(path+'\','*.*');
  end;

end;

procedure TForm1.AlleDateienClick(Sender: TObject);
begin
  if (Alledateien.checked = true) then begin
    Bilddateien.Checked := true;
    Textdateien.Checked := true;
    Videodateien.Checked := true;
    Webdateien.Checked := true;
    Gepacktedateien.Checked := true;
  end;
end;

procedure TForm1.ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
begin
  path := ShellTreeView1.SelectedFolder.PathName;
  label1.text := path+'\';
end;

procedure TForm1.Beenden2Click(Sender: TObject);
begin
  close;
end;

end.

alzaimar 15. Aug 2005 20:39

Re: TMUnit < wasn das ?
 
Du wirst doch wohl noch FindFirst, FindNext, FindClose und DeleteFle in der richtigen Reihenfolge und den entsprechenden Parametern benutzen können, wenn Du schon in deiner Freizeit programmierst, und uns bittest, uns doch wenigstens auf deiner Homepage zu verewigen. Das in der Delphi Hilfe angeführte Beispiel sollte ausreichen, um diese Dateilöschen-Routine zu schreiben.

Alternativ kannst Du auch den Befehl 'DEL' ausführen, den 'del c:\mydir\*.jpeg' funktioniert ja auch. Und Befehle des Command-Prozessors CMD.EXE kann man als Parameter an selbigen übergeben. Dann gibt es beim Command-Prozessor CMD.EXE eine Option, die ihn veranlasst, nur den als Parameter übergebenen Befehl auszuführen, um sich dann zu beenden.

Programme kann man von Delphi aus starten: Es gibt hier im Forum genug Hilfe dazu.

Viel Spass

ichbins 15. Aug 2005 20:41

Re: TMUnit < wasn das ?
 
Du brauchst das Komma garnicht. Ruf einfach so auf:

Delphi-Quellcode:
  //Nicht so:
  DateienLoeschen(path+'\','*.jpeg');
  //Sondern so:
  DateienLoeschen(path+'\*.jpeg');
Eine Funktion die 2 Parameter erfordert, so wie du sie verwendest, sieht so aus:

Delphi-Quellcode:
function dateienloeschen(filepath,fileext:string):integer;
var
  f:tsearchrec;
  fi:file;
  files:array of string;
  i:integer;
  filename:string;
begin
  result:=0;
  filename:=filepath+fileexit;
  if findfirst(filename,0,f)<>0 then exit;
  setlength(files,1);
  files[0]:=f.Name;
  while findnext(f)<>0 do begin
    setlength(files,length(files)+1);
    files[length(files)-1]:=f.Name;
  end;
  findclose(f);
  for I:=0 to length(files)-1 do
  begin
    try begin
      assignfile(fi,files[i]);
      erase(fi);
      inc(result);
    end; except end;
  end;
end;

Gast 15. Aug 2005 21:06

Re: TMUnit < wasn das ?
 
Ok ich teste es mal


*edit* Das Programm hängt sich jedes mal auf, weißte warum ?


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