![]() |
|
Uygulamamın açılışındaki siyah ekran Hakkında - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7) +--- Konu Başlığı: Uygulamamın açılışındaki siyah ekran Hakkında (/showthread.php?tid=1849) Sayfalar:
1
2
|
Uygulamamın açılışındaki siyah ekran Hakkında - webprog - 19-01-2018 Merhaba arkadaşlar Yaptığım uygulamayı android de test ettiğimde 12 saniye siyah ekrandan sonra program açılıyor. Bende kendimce splash ekran yapıp loading mantığı kurayım bu aradada formlar yüklensin istedim. Ama sanki bi yerlerde hata yaptım uygulama istediğim gibi olmadı. Toplam 7 form var. project.dpr dosyasını aşağıdaki gibi düzenledim. program Project1;
uses
System.StartUpCopy,
FMX.Forms,
FMX.StdCtrls,
Unit6 in 'Unit6.pas' {Form6};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm6, Form6);
Application.Run;
end.
unit6 içeriği aşağıdaki gibi
unit Unit6;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects,
FMX.StdCtrls,System.StartUpCopy;
type
TForm6 = class(TForm)
Rectangle1: TRectangle;
AniIndicator1: TAniIndicator;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
uses
Unit1,ayarlar,
Unit2 {Form2},
Unit3 {Form3},
Unit4 {Form4},
Unit5 {Form5},
main {MainForm},
Unit7 {Form7};
{$R *.fmx}
procedure TForm6.FormShow(Sender: TObject);
begin
AniIndicator1.Visible := True;
AniIndicator1.Enabled := True;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm7, Form7);
Application.CreateForm(TMainForm, MainForm);
AniIndicator1.Enabled := False;
AniIndicator1.Visible := False;
Application.Run;
form1.Show;
end;
end.
Yaptığım mantık komik gelebilir ama aklıma böyle geldi. Buna alternatif uyguladığınız yöntemler var mı. Daha yeni olduğum için ancak bunu düşünebildim. Muhtemelen farklı yöntemler vardır. Cvp: Uygulamamın açılışındaki siyah ekran Hakkında - Fesih ARSLAN - 19-01-2018 Merhaba, Açılışta varsayılan splash ekrandan hemen sonra oluşan siyah ekran bekleme sorunu (mantıksal bir sorundu; tüm formlar oluşturulduktan sonra beklemesi anlamsızdı), Delphi 10.2 Tokyo sürümü ile çözülmüş. Cvp: Uygulamamın açılışındaki siyah ekran Hakkında - Fesih ARSLAN - 19-01-2018 Naçizhane bir öneride bulunayım; Ana formunuzun OnShow olayında geçen, procedure TForm6.FormShow(Sender: TObject); begin AniIndicator1.Visible := True; AniIndicator1.Enabled := True; Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.CreateForm(TForm3, Form3); Application.CreateForm(TForm4, Form4); Application.CreateForm(TForm5, Form5); Application.CreateForm(TForm7, Form7); Application.CreateForm(TMainForm, MainForm); AniIndicator1.Enabled := False; AniIndicator1.Visible := False; Application.Run; form1.Show; end;kod kısımlarında; * Initialize ve Run bildirimleri ve bunlar arasında geçen tüm yapıcı metodlarınız, zaten uygulamalarınız tarafından otomatik yönetiliyor. OnShow olayında değil de kullanıcı davranışına bağlı olarak (örn. Kayıt ekle butonuna tıklanması durumunda formu oluştur), yaparsanız daha doğru olur. Mevcut kodlarınızda OnShow olayı zaten açılışta çalıştığı için tüm formlarınız da oluşacaktır. * Initialize ve Run OnShow olayında ise dpr dosyasındaki (Ctrl + V) Initialize ve Run ne iş yapıyor. Onları sildiniz mi? Sildi iseniz Initalize olmayan bir uygulamanın OnShow olayı nasıl çalışıyor? * Son bir husus, AniIndicator Thread olmadan görünmeyecektir. Cvp: Uygulamamın açılışındaki siyah ekran Hakkında - webprog - 19-01-2018 Teşekkür ederim Fesih bey deneyimlerinizi paylaştığınız için. Söylediğiniz kodlar dpr dosyasında mevcut hocam. Diğer dosyada düzenleme yaptım ama kaydedince silinmiş sitede. Application.Initialize; Application.CreateForm(TForm6, Form6); Application.Run; Dediğiniz gibi tıklandığında oluşsun istersek aşağıdaki kod örnek olarak yeterli midir? Bu kodla birlikte form3.show da kullanmak lazım mı? Application.Initialize; Application.CreateForm(TForm3, Form3); Application.Run; Cvp: Uygulamamın açılışındaki siyah ekran Hakkında - Fesih ARSLAN - 19-01-2018 (19-01-2018, Saat: 13:09)webprog Adlı Kullanıcıdan Alıntı: Teşekkür ederim Fesih bey deneyimlerinizi paylaştığınız için. Rica ederim, Initialize ve Run direktifleri her uygulama için bir defa kullanılır. Initialize, uygulamayı çalıştıracak şekilde ihtiyaç olan tüm referansların hazır hale getirilmesini, Run ise artık her şeyin hazır olduğunu uygulamanın çalışabilir olduğunu bildirir. Bunlar zaten dpr dosyasında mevcut, diğer kod satırlarında kullanmanız, anlamsız olacaktır. Formu dinamik oluşturmak için; 1- Sonradan oluşturacağınız tüm formları Project > Options > Forms penceresinde Available forms alanına taşıyın veya dpr dosyasından form oluşumu ile ilgili satırları silin. 2- Ana formunuzda Uses kısmına oluşturacağınız form Unit'lerinin isimlerini ekleyin (Alt + F11). 3- Daha sonra herhangi bir kod satırında formu aşağıdaki gibi oluşturun. procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned(Form2) then { bir defa oluşturulacaktır. }
Form2 := TForm2.Create(Nil);
if Assigned(Form2) then
begin
Form2.Show;
{ Form2 oluşmuşsa diğer kodları gerçekleştir. }
end;
end;
4- Oluşturduğunuz formu yok etmeyi de unutmayınprocedure TForm1.FormDestroy(Sender: TObject); begin if Assigned(Form2) then Form2.Free; end; Uygulamamın açılışındaki siyah ekran Hakkında - mcuyan - 19-01-2018 TAm ben yazıcaktım ama Fesih hocam Noktayı koymuş ![]() Uygulama açılmasındaki gecikmeler, Diğer formları oluşturmasından (create) den dolayı oluşmaktadır. Bu konuda availeble Form kısmında ana formunuz haricindekileri sağa çekneiz olacaktır.. Sonrasında ise form çağırırken Create Form (Yine Fesih hocam yazmış zaten ) ile çağırmanız olacaktır.
Uygulamamın açılışındaki siyah ekran Hakkında - webprog - 19-03-2018 Arkadaşlar dediklerinizi yaptım programımda artık bekleme kalmadı. Cevap yazmayı unutmuşum yeni farkettim. Fesih hocam özellikle sabrınızdan dolayı teşekkürler. Tecrübelerinizden ve aktardıklarınızdan çok şey öğrendim. delphi 10.2 de derleme , on click eventlarına TForm.Create(Nil); gibi komutları kullanarak sıkıntım kalmadı. Tekrardan sağolun Uygulamamın açılışındaki siyah ekran Hakkında - faktoral - 19-03-2018 Benim kullandığım genel bir procedure. Belki bir yararı olur. try Application.CreateForm(TForm1, Form1); Form1.showmodal; finally FreeAndNil(Form1); end; Uygulamamın açılışındaki siyah ekran Hakkında - webprog - 19-03-2018 Teşekkür ederim faktoral . Bunu da deneyeceğim sonraki projemde Uygulamamın açılışındaki siyah ekran Hakkında - nehirnnn - 25-10-2018 Benzer bir sorunla çok önceleri karşılaşmıştım. Çözümü bulmuştum, ancak bugün karşılaştığımda bulduğum çözümü not almadığım için hatırlayamadım. Bendeki sorun şu şekilde. Uygulama açılıyor, siyah ekran geliyor ve orda takılıyor. Rastgele göz yordamıyla butonun yerine tıkladığımda buton çalışıyor. Yani kodlar çalışır durumda, herhangi bir kilitlenme yok. Windows tarafında sorun yok. SDK 28 yüklü. Debug yaptığımda herhangi bir hata yok. Böyle bir sorunla karşılaşan var mı? |