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 von einer Form auf Frame zugreifen (https://www.delphipraxis.net/59974-von-einer-form-auf-frame-zugreifen.html)

milanlu 31. Dez 2005 19:09


von einer Form auf Frame zugreifen
 
Hallo,
wie kann man von einer form auf eine bestimte procedure (ButtonClick) in einem Frame zugreifen.
danke im voraus

Knotti2005 31. Dez 2005 19:23

Re: von einer Form auf Frame zugreifen
 
Delphi-Quellcode:
procedure OnButtonClick....

begin
   frame1.label1.caption='Guten Rutsch';
end
so oder nicht...

milanlu 31. Dez 2005 19:29

Re: von einer Form auf Frame zugreifen
 
danke für guten rutsch wünsche ich dir auch und allen anderen delphi coder.
aber so geht eben nicht.

SirThornberry 31. Dez 2005 19:31

Re: von einer Form auf Frame zugreifen
 
dann liegt es vielleicht daran das diese dinge im protected des Frames liegen. Geht es auch nicht wenn du über Methoden und Propertys im Public darauf zugreifst?

milanlu 31. Dez 2005 19:33

Re: von einer Form auf Frame zugreifen
 
die sind aber im public.

SirThornberry 31. Dez 2005 19:37

Re: von einer Form auf Frame zugreifen
 
also ich kann ohne probleme auf Buttons etc. eines Frames zugreifen den ich erstellt habe.
Was heißt eigentlich geht nicht? Welche Fehlermeldung kommt wenn du wie im 2ten posting beschrieben darauf zugeifst?

milanlu 31. Dez 2005 19:49

Re: von einer Form auf Frame zugreifen
 
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!!! :wiejetzt:
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.

SirThornberry 31. Dez 2005 19:52

Re: von einer Form auf Frame zugreifen
 
dann musst du
Delphi-Quellcode:
frmumbenennen1.dateien_laden(DeineDatei);
aufrufen. Oder was für ein Fehler kommt dann?

milanlu 31. Dez 2005 19:55

Re: von einer Form auf Frame zugreifen
 
also so ich das sehe ist die procedure im Unit 4 und nicht im unit 5!
wenn schon dan frameumbenennen.dateien_laden(datei);
aber das geht leider nicht!

SirThornberry 31. Dez 2005 20:00

Re: von einer Form auf Frame zugreifen
 
du schreibst immer "das geht nicht". Was heißt "geht nicht"? Welche Fehlermeldung kommt?


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