Splash formun hemen kaybolmaması
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 298
- Kayıt: 19 Tem 2004 01:45
- Konum: Giresun/Samsun
Splash formun hemen kaybolmaması
Selam arkadaşlar.Splash form yaptım çalışıyor bi sorun yok fakat program açılırken splash form hemen gidiyor.Yani ana form çabuk açılıyor. Fakat ben çabuk açılsa bile biraz beklemesini istiyorum.Nasıl halledebilirim?
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
Kod: Tümünü seç
.....
splash.show
Diğer işlemler;
for i:=0 to IstediginBirSayi Do
Application.ProcessMessages;
splash.hide;
.....
-
- Üye
- Mesajlar: 298
- Kayıt: 19 Tem 2004 01:45
- Konum: Giresun/Samsun
-
- Üye
- Mesajlar: 298
- Kayıt: 19 Tem 2004 01:45
- Konum: Giresun/Samsun
abi sysutils


Delay program execution for a specified number of microseconds.
Unit
SysUtils
Category
flow control routines
Delphi syntax:
procedure Sleep(milliseconds: Cardinal);{$IFDEF MSWINDOWS} stdcall; {$ENDIF}
C++ syntax:
void Sleep(unsigned milliseconds);
Description
Sleep pauses program executions as specified by the milliseconds parameter. Under Windows, Sleep is just a link to the Sleep function in the system API. Under Linux, Sleep calls the usleep library routine.
.-.-.-.-.-.-.-. ^_^
-
- Üye
- Mesajlar: 298
- Kayıt: 19 Tem 2004 01:45
- Konum: Giresun/Samsun
ehih ikisindede sleep varmış 
linuxdda ortak olsun diye sysutilse taşımışlar. ordanda zati windows apisine gidiyor

linuxdda ortak olsun diye sysutilse taşımışlar. ordanda zati windows apisine gidiyor

Kod: Tümünü seç
windows.Sleep(1000);
sysutils.Sleep(1000);
sysutils
{$IFDEF MSWINDOWS}
procedure Sleep; external kernel32 name 'Sleep'; stdcall;
{$ENDIF}
{$IFDEF LINUX}
procedure Sleep(milliseconds: Cardinal);
begin
usleep(milliseconds * 1000); // usleep is in microseconds
end;
{$ENDIF}
.-.-.-.-.-.-.-. ^_^
Faklı bir bakış...
Form2'nin de OnClose olayına
Saygılar...
Kod: Tümünü seç
Timer1.interval:=7000; //7 Saniye ama koddan interval değerini verince bi sorun cıkıyo özellikler kısmından verirsen sorun yok...
for i:=timer1.interval Downto 1000 do
begin
Form1.hide;
form1.free;
Form2.show;
end;
Kod: Tümünü seç
Application.Terminate;
Bizler birer atoma benziyoruz ve gün geldiğinde bir ülkeyi dahi yok edebilecek güce sahibiz. Ama gücümüz aklımızın esiri! Bu yüzden Sıyırdınız gene 
http://www.MindoMs.com

http://www.MindoMs.com
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
Denemen yeterli olucaktı 

Bizler birer atoma benziyoruz ve gün geldiğinde bir ülkeyi dahi yok edebilecek güce sahibiz. Ama gücümüz aklımızın esiri! Bu yüzden Sıyırdınız gene 
http://www.MindoMs.com

http://www.MindoMs.com
@neoerhans
- Merak ettiğim bişi var...
demişsin... sonra da
diye döngü kurmuşsun... Aslında yaptığın işlem; Timer1.interval'i bir değişken olarak kullanmaktan ibaret...
- Aşağıdakinden farkı yok diye düşünüyorum...
- Timer1'i işin içine sokunca farklı ne yapıyor ?! onu anlayamadım.
- Ayrıca döngü içerisinde free edilmiş bir pencereyi tekrar free etmeye çalışıyorsun vs...
ona girmiycem...
- 7000'den 1000'e geri saymakla, 1000'den 7000'e hatta 1'den 6000'e kadar saydırmak farklı değil ki. Ekrana geri sayım yansıtsan tamam !?
- OnTimer içerisinde falan bir kurgu olsa hadi diycem. Repeat Until içerisine konmuş bir Application.Processmessages formu beklemeye almışken, 7 saniye sonra Timer1'in onTimer'inda bir flag tetiklenecek o da Until'den çıkış verip, free ve hide fonksiyonlarını serbest bırakacak vb.
- Yani Sleep fonksiyonu kullanmadan, bu işlemi en fazla ne kadar kod yazıp halledebilirim gibi bir soru olsaydı bile yine çözüm değil...
- Sabah saat 03:30 ve işten gelmiş, mail kontrolü yaparken bu başlığı görüyorum ve buraya bu satırları yazıyorum...
Bu daha da garip değil mi
- Neyse ben yatağıma Sleep'e gidiyorum... Çalışmalarınızda başarılar...
- Merak ettiğim bişi var...

Kod: Tümünü seç
Timer1.interval:=7000;
demişsin... sonra da
Kod: Tümünü seç
for i:=timer1.interval Downto 1000 do
diye döngü kurmuşsun... Aslında yaptığın işlem; Timer1.interval'i bir değişken olarak kullanmaktan ibaret...
- Aşağıdakinden farkı yok diye düşünüyorum...
Kod: Tümünü seç
for i:=7000 Downto 1000 do
- Timer1'i işin içine sokunca farklı ne yapıyor ?! onu anlayamadım.
- Ayrıca döngü içerisinde free edilmiş bir pencereyi tekrar free etmeye çalışıyorsun vs...

- 7000'den 1000'e geri saymakla, 1000'den 7000'e hatta 1'den 6000'e kadar saydırmak farklı değil ki. Ekrana geri sayım yansıtsan tamam !?
- OnTimer içerisinde falan bir kurgu olsa hadi diycem. Repeat Until içerisine konmuş bir Application.Processmessages formu beklemeye almışken, 7 saniye sonra Timer1'in onTimer'inda bir flag tetiklenecek o da Until'den çıkış verip, free ve hide fonksiyonlarını serbest bırakacak vb.

- Yani Sleep fonksiyonu kullanmadan, bu işlemi en fazla ne kadar kod yazıp halledebilirim gibi bir soru olsaydı bile yine çözüm değil...


- Sabah saat 03:30 ve işten gelmiş, mail kontrolü yaparken bu başlığı görüyorum ve buraya bu satırları yazıyorum...




- Neyse ben yatağıma Sleep'e gidiyorum... Çalışmalarınızda başarılar...
