Einzelnen Beitrag anzeigen

milanlu

Registriert seit: 16. Nov 2005
51 Beiträge
 
Delphi 2005 Personal
 
#7

Re: von einer Form auf Frame zugreifen

  Alt 31. Dez 2005, 20:49
also Unit4 ist ein Frame:
Delphi-Quellcode:
unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DirDialog, StdCtrls, Menus, Printers;

type
  Tframeumbenennen = class(TFrame)
    pnlmenue: TPanel;
    gbeingabe: TGroupBox;
    edteingabe: TEdit;
    btnordner: TButton;
    gbdatei: TGroupBox;
    lbdateien: TListBox;
    ordner: TDirDialog;
    popumbenennen: TPopupMenu;
    Dateiumbenennen1: TMenuItem;
    Dateilschen1: TMenuItem;
    Listelschen1: TMenuItem;
    Listedrucken1: TMenuItem;
    PrintDialog1: TPrintDialog;
    Aktualisieren1: TMenuItem;
    procedure FrameResize(Sender: TObject);
    procedure btnordnerClick(Sender: TObject);
    procedure Listelschen1Click(Sender: TObject);
    procedure Listedrucken1Click(Sender: TObject);
    procedure Dateilschen1Click(Sender: TObject);
    procedure Dateiumbenennen1Click(Sender: TObject);
    procedure Aktualisieren1Click(Sender: TObject);
  private

    { Private-Deklarationen }
  public
    procedure dateien_laden(Directory: String);
    { Public-Deklarationen }
  end;

implementation

uses Unit1, Unit5;

{$R *.dfm}
procedure Tframeumbenennen.dateien_laden(Directory: String);
var
SR: TSearchRec;
begin
  if (Directory<>'') and (Directory[length(Directory)]<>'\') then
    Directory:=Directory+'\';

  if (FindFirst(Directory + '*.mp3', faAnyFile-faDirectory, SR) = 0) then
  begin
    repeat
      if (SR.Name<>'.') and (SR.Name<>'..') and (SR.Attr<>faDirectory) then
      begin
         lbdateien.Items.Add(Directory + SR.Name);
      end;
    until FindNext(SR)<>0;
    FindClose(SR);
  end;
end;

procedure Tframeumbenennen.FrameResize(Sender: TObject);
begin
  pnlmenue.Width := frmprogramm.Width - frmprogramm.pnlmenue.Width - 32;
  pnlmenue.Height := frmprogramm.pnlmenue.Height;
end;

procedure Tframeumbenennen.btnordnerClick(Sender: TObject);
begin
  lbdateien.Items.Clear;
  if ordner.Execute then
  begin
    edteingabe.Text := ordner.DirName;
  end;
  if edteingabe.text <> 'then
  begin
    dateien_laden(edteingabe.text);
  end;
end;

procedure Tframeumbenennen.Listelschen1Click(Sender: TObject);
begin
    lbdateien.Items.Clear;
end;

procedure Tframeumbenennen.Listedrucken1Click(Sender: TObject);
var
Line: Integer;
PrintText: TextFile;
pesmica: String;
begin
  if PrintDialog1.Execute then
  begin
  AssignPrn(PrintText);
  Rewrite(PrintText);
  for Line := 0 to lbdateien.Items.Count - 1 do
  begin
    pesmica := ExtractFileName(lbdateien.Items[Line]);
    Writeln(PrintText, inttostr(Line) + ': ' + pesmica);
  end;
  CloseFile(PrintText);
  end;
end;

procedure Tframeumbenennen.Dateilschen1Click(Sender: TObject);
begin
    DeleteFile(lbdateien.Items[lbdateien.ItemIndex]);
    lbdateien.Items.Clear;
    dateien_laden(edteingabe.text);
end;

procedure Tframeumbenennen.Dateiumbenennen1Click(Sender: TObject);
begin
    if lbdateien.ItemIndex >= 0 then
    begin
      ordnerici := ExtractFileDir(lbdateien.Items[lbdateien.ItemIndex]);
      frmumbenennen1.edtalt.Text := ExtractFileName(lbdateien.Items[lbdateien.ItemIndex]);
      frmumbenennen1.edtneu.Text := ExtractFileName(lbdateien.Items[lbdateien.ItemIndex]);
      frmumbenennen1.Show;
    end;

end;

procedure Tframeumbenennen.Aktualisieren1Click(Sender: TObject);
begin
    lbdateien.Items.Clear;
    dateien_laden(edteingabe.text);
end;

end.
Unit 5 ist eine Form:
Delphi-Quellcode:
unit Unit5;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  Tfrmumbenennen1 = class(TForm)
    gbumbenennen: TGroupBox;
    edtalt: TEdit;
    lbalt: TLabel;
    lbneu: TLabel;
    edtneu: TEdit;
    btnok: TButton;
    btnno: TButton;
    procedure btnnoClick(Sender: TObject);
    procedure btnokClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public

    { Public-Deklarationen }
  end;

var
  frmumbenennen1: Tfrmumbenennen1;
  ordnerici: String;

implementation

uses Unit4, Unit1;
{$R *.dfm}

procedure Tfrmumbenennen1.btnnoClick(Sender: TObject);
begin
  ordnerici := '';
  frmumbenennen1.Close;
end;

procedure Tfrmumbenennen1.btnokClick(Sender: TObject);
begin
  if (ordnerici[length(ordnerici)] <> '\') then
  begin
    ordnerici := ordnerici + '\';
  end;

  if ((edtalt.Text <> edtneu.Text) and (edtneu.Text <> '')) then
  begin
    RenameFile(ordnerici + edtalt.Text, ordnerici + edtneu.Text);
Hier muss ich auf die procedure von Unit4 dateien_laden zugreifen aber es geht nicht!!!
Delphi-Quellcode:
    btnnoClick(Sender);

  end
  else
  begin
    MessageDlg('Die Angabe ist Fehlerhaft.'#13'Bitte überprüfen Sie die Angabe!!!', mtInformation, [mbOK], 0);
  end;
end;

end.
Milan
  Mit Zitat antworten Zitat