Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
FMX Mimarisinde - TFrame Kullanmak
#11
Merhaba
uğraştım olmadı ufak bir demo yaparsanız sevinirim teşekkürler
Cevapla
#12
Bir frame ilk defa gösterip freeandnil yapıyorum.
2.kez formu yeniden göstermek istediğimde 
A component named FrameAdi alredy exists. Hatası alıyordum.
internette araştırdım hiç bir yerde bulamadım. denemeler sonucu sonucu buldum.
Frame içinde nekadar 
 Self.Visible := False;
   FreeAndNil(Mainform.dogumFrame);

Yazsanızda olmuyor. Yukardaki hatayı veriyor.

Hatadan kurtulmanın yolu Frame unitinde
destructor TDogumFrame.Destroy;
begin
 inherited;

end;
olması gerekiyor.
Windowsta hiçbir hata yok androide atıp denediğimde verdi bu hatayı.


Ek Dosyalar Resimler
   
Cevapla
#13
(15-02-2018, Saat: 18:22)Bay_Y Adlı Kullanıcıdan Alıntı: Teşekkürler , rica etsem kodu da paylaşır mısınız ? Bir şeyler yanlış sanırım bir türlü çalıştıramadım.

Ana form kodları

unit fmana;

interface

uses
 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Layouts, fr1,fr2,
 FMX.Objects;


type
   TModulTipi = (ornek1, Ornek2);

type
 TForm1 = class(TForm)
   Layout1: TLayout;
   Rectangle1: TRectangle;
   Rectangle2: TRectangle;
   procedure Rectangle1Click(Sender: TObject);
   procedure Rectangle2Click(Sender: TObject);
 private
   fframe1 : Tframe2;
   fframe2 : Tframe3;
   procedure SetFrameGoster(Frame: TFrame; ModulTipi: TModulTipi);
   procedure SetFrameGizle();
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.fmx}


procedure TForm1.Rectangle1Click(Sender: TObject);
begin
 SetFrameGoster(fframe1, TModulTipi.Ornek1);
end;

procedure TForm1.Rectangle2Click(Sender: TObject);
begin
 SetFrameGoster(fframe2, TModulTipi.Ornek2);
end;

procedure TForm1.SetFrameGizle();
var
I: Integer;
begin
for I := 0 to Layout1.ControlsCount - 1 do
  if Layout1.Controls[i] is TFrame then
    TFrame(Layout1.Controls[i]).Visible := False;
end;


procedure TForm1.SetFrameGoster(Frame: TFrame; ModulTipi: TModulTipi);
begin
if Frame = Nil then
begin
  case ModulTipi of
    Ornek1:
      begin
        fframe1 := Tframe2.Create(Self);
        Frame := fframe1;
      end;
    Ornek2:
      begin
        fframe2 := TFrame3.Create(Self);
        Frame := fframe2;
      end;
  end;
end;
Frame.Parent := Self.Layout1;
Frame.Align := TAlignLayout.Client;
SetFrameGizle();
Frame.Visible := True;
end;

end.


Frame1

unit fr1;

interface

uses
 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 
 FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
 FMX.Objects, FMX.Controls.Presentation;

type
 TFrame3 = class(TFrame)
   Rectangle1: TRectangle;
   Label1: TLabel;
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var frame3 : Tframe3;

implementation

{$R *.fmx}

end.

Frame 2

unit fr2;

interface

uses
 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 
 FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
 FMX.Objects, FMX.Controls.Presentation;

type
 TFrame2 = class(TFrame)
   Rectangle1: TRectangle;
   Label1: TLabel;
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var frame2 : Tframe2;

implementation

{$R *.fmx}

end.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  FMX Mimarisinde Harici Yazı FONT'u Kullanmak RAD Coder 1 388 27-10-2023, Saat: 18:01
Son Yorum: frmman
  ListView - CheckBox Kullanmak TescilsizUzman 18 17.829 11-04-2023, Saat: 11:54
Son Yorum: sunbeki



Konuyu Okuyanlar: 1 Ziyaretçi