![]() |
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 |
Re: von einer Form auf Frame zugreifen
Delphi-Quellcode:
so oder nicht...
procedure OnButtonClick....
begin frame1.label1.caption='Guten Rutsch'; end |
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. |
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?
|
Re: von einer Form auf Frame zugreifen
die sind aber im public.
|
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? |
Re: von einer Form auf Frame zugreifen
also Unit4 ist ein Frame:
Delphi-Quellcode:
Unit 5 ist eine Form:
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.
Delphi-Quellcode:
Hier muss ich auf die procedure von Unit4 dateien_laden zugreifen aber es geht nicht!!! :wiejetzt:
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);
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. |
Re: von einer Form auf Frame zugreifen
dann musst du
Delphi-Quellcode:
aufrufen. Oder was für ein Fehler kommt dann?
frmumbenennen1.dateien_laden(DeineDatei);
|
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! |
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 17:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz