Jump to content


Photo

MainForm 2 Kere Create Oluyor


  • Please log in to reply
6 replies to this topic

#1 multimesut

multimesut

    Active Member

  • uniGUI Subscriber
  • PipPipPip
  • 85 posts

Posted 19 February 2018 - 11:45 AM

Merhaba,
 
 
Yeni bir proje açıp sadece LoginForm ekliyorum. Aşağıdaki gibi basit bir kullanımda MainForm 2 kere create oluyor. Örnek için basit kod yaptım. Aslında login durumlarına göre yetkili formu create edip main içerisine basıyorum. "tKullanici.Parent:=Main.MainForm;". Değişkenlerine eriştiğim zaman create oluyor. Birde login form kapatırken create ediyor. Zaten Create edildi ise birdaha create edilmemesi lazım. Bir bug gibi geldi bana. Kullandığım sürüm "1.0.0.1420".
 
Teşekkürler..
 
 
procedure TUniLoginForm1.btnLoginClick(Sender: TObject);
begin
main.MainForm.UniEdit1.Text:='Merhaba';
ModalResult:=mrOK;
end;

  • 0

#2 Delphi Developer

Delphi Developer

    Advanced Member

  • Moderators
  • 4991 posts

Posted 19 February 2018 - 11:59 AM

Hi,

 

You should use like in this demo example:

\FMSoft\Framework\uniGUI\Demos\Desktop\LoginForm
type
  TUniMainModule = class(TUniGUIMainModule)
  private
    { Private declarations }
  public
    { Public declarations }
    AUserName : string;
  end;
procedure TUniLoginForm1.UniButton1Click(Sender: TObject);
begin
  UniMainModule.AUserName := 'This User'; //<----------
  ModalResult:=mrOK;  
end;
procedure TMainForm.UniFormShow(Sender: TObject);
begin
  UniLabel1.Caption := UniMainModule.AUserName;
end;

  • 0

#3 multimesut

multimesut

    Active Member

  • uniGUI Subscriber
  • PipPipPip
  • 85 posts

Posted 19 February 2018 - 12:11 PM

Thanks #Delphi Developer. But "Parent" Same Problem.

tKullanici:=FrmKullanici.TKullaniciFrm.Create(UniApplication);
tKullanici.Parent:=Main.MainForm;

  • 0

#4 multimesut

multimesut

    Active Member

  • uniGUI Subscriber
  • PipPipPip
  • 85 posts

Posted 19 February 2018 - 02:07 PM

Çözümü aşağıdaki gibi buldum. Fix it;

procedure TMainForm.UniFormShow(Sender: TObject);
begin
if TMainForm(Sender).Name<>'MainForm' then
  begin
  UniMainModule.UnRegisterFormInstance(TMainForm(Sender));
  UniMainModule.RegisterFormInstance(MainForm);
  Hide;
  end;
end;

  • 0

#5 Farshad Mohajeri

Farshad Mohajeri

    Administrator

  • Administrators
  • 10356 posts

Posted 23 February 2018 - 07:11 AM

Merhaba,

 

LoginForm'un içinden MainForm'a ulaşmaya asla çalışmayın. Sorunun kaynağı budur.

Ortak verilerinizi MainModule'de saklayın.


  • 0

#6 Abaksoft

Abaksoft

    Advanced Member

  • uniGUI Subscriber
  • PipPipPipPip
  • 617 posts
  • LocationAlgeria

Posted 25 February 2018 - 10:13 AM

مرحبا
http://forums.unigui...-it/#entry52488

Best regards
  • 0

#7 multimesut

multimesut

    Active Member

  • uniGUI Subscriber
  • PipPipPip
  • 85 posts

Posted 26 February 2018 - 12:27 PM

Tüm ortak verilerim MainModule de. Fakat UniGUI de tek bir MainForm Page olabildiği için diğer sayfalarımı MainForm a Parent kullanıyorum (tFirma.Parent:=Main.MainForm;). Hal böyle oluncada MAIN e dokunmak gerekiyor. Aslında UniGUI sadece tek bir MainForm Page olarak tasarlanmış, ikinci MainForm i create etmemesi gerek.


  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users