Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#1

Zugriff von Frame zu Frame

  Alt 21. Mai 2014, 13:49
Hallo Zusammen,

iuch hätte da mal gerne ein Problem - sorry, ich habs schon:

Ich habe ein Formular, auf dem mehrere Frames liegen. In einem Frame habe ich eine "Public" Procedure geschrieben, auf die ich von einem anderen Frame zugreifen möchte. Ich habe das Frame mit der Procedure in den Uses des Frames mit dem gewünschten Procedureaufruf aufgenommen. Aber zu einem mir nicht erklärenbaren Grund kann ich auf das Frame mit der Procedure nicht zugreifen. Auch nicht testhalber auf dort platzierte Labels. In dem Frame wird das andere Frame einfach nicht gefunden. Ich kann zwar die FrameUnit, die ich eingebunden habe finden, aber mit dem Namen des Frames kann er nichts anfangen...

Frame1: Dort soll die Procedure (Get_Auftrag) aufgerufen werden. Das Frame Frame_Details ist in den Uses.

Delphi-Quellcode:
unit Frame_UebersichtUnit;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, AdvObj,
  BaseGrid, AdvGrid, Vcl.ExtCtrls, AdvGlowButton, Frame_DetailsUnit,
  Vcl.StdCtrls, AdvEdit, DBAdvEd, TGridDesignUnit, TAuftragUnit;

type
  TFrame_Uebersicht = class(TFrame)
    Grid_Uebersicht: TAdvStringGrid;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

implementation

{$R *.dfm}

procedure TFrame_Uebersicht.Grid_UebersichtSelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
   Frame_Details1.Get_Auftrag(Grid_Uebersicht.Cells[1,ARow],Grid_Uebersicht.Cells[3,ARow]);//Das FrameDetails wird nicht gefunden!!!!
end;

end.
Frame2:
Hier ist die Procedure Get_Auftrag

Delphi-Quellcode:
unit Frame_DetailsUnit;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls,
  TAuftragUnit, TArtikelUnit, TArbeitsgangUnit;

type
  TFrame_Details = class(TFrame)
    Panel_Artikel: TPanel;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    procedure Fill_Details;
    procedure Get_Auftrag(Auftrag_Nr: string; AG_Nr: string);
  end;

implementation

{$R *.dfm}

procedure TFrame_Details.Get_Auftrag(Auftrag_Nr: string; AG_Nr: string);
begin
   Auftrag.Auftrag_Nr:=Auftrag_Nr;
   Try
      Auftrag.AG_Nr:=StrToInt(AG_Nr);
   Except
      Auftrag.AG_Nr:=0;
   End;
end;
Wenn ich den gleichen Aufruf Frame_Details1.Get_Auftrag(); auf in dem Form, in dem beide Frames eingefügt sind mache, klappt es sofort...
Kann mir jemand helfen?

Vielen Dank
Patrick
Patrick

Geändert von Ykcim (21. Mai 2014 um 14:19 Uhr)
  Mit Zitat antworten Zitat