Query yüklenirken flash animasyon
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Query yüklenirken flash animasyon
Merhaba arkadaşlar. Geliştirdiğim uygulamda raporlama zamanı verinin fazlalığından dolayı bazen 10 saniyeye kadar bir bekleme oluyor. Bi çok yazılımlarda yükleme süresinde her hangi bir animasyon oynatılıyor. En çok sevdiğimse dönen tekerlek. Her halde böyle durumlarda kullanılan animasyonlara preloader deniyor. Acaba hiç kullanan oldu mu. Nasıl yaparım da animasyonu sadece Query çalıştığı sürece oynatırım. Ben ShockWave kurdum da pek kullanmasını bilmiyorum. Lütfen bilgisi olan varsa bana detaylı anlatabilir mi?
İstikrar sürsün, Türkiye'm büyüsün inşallah.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Query yüklenirken flash animasyon
Bu animasyonu .avi biçimine çevirip Animate bileşeni ile zahmetsiz olarak kullanabilirsiniz.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Query yüklenirken flash animasyon
Bu sorunuzun ideal cevabı thread'lerdedir. Windows altında her bir uygulama en az bir thread'e sahiptir ki buna main thread adı verilir. Yazdığımız tüm kodlar bu thread içinde round robin algoritmasına göre çalıştırılırlar. Uzun zaman alacak olan kodların yazılması ana thread'i çok meşgul edeceğinden ve dolayısı ile mesaj kuyruğuna bakma işlemine engel olacağından uygulamamız donmuş-yanıt vermiyor gibi görünecektir. Bu durum özellikle uzun süren query'lerin çalıştırılması sırasında karşımıza çıkar. Bu tarz durumların en makul çözümü uzun süren kod parçalarını uygulamanın ana thread'inin haricinde başka bir thread'in içinde çalıştırmak olacaktır. Bu durumda, uygulamamamızın ana thread'i mesaj kuyruğunu okuyabilecek ve işletim sistemi mesajlarına tepki verebilecektir. Dolayısı ile kilitlenme hissi oluşmayacaktır.
Kısacası; query'inizi bir thread içinde çalışacak halde tasarlarsanız hem donma hissi uyandırmamış olacaksınız; hem de query çalışırken ana thread'de istediğinizi yapabileceksiniz, buna bir flash animasyonu oynatmakta dahil.
Kısacası; query'inizi bir thread içinde çalışacak halde tasarlarsanız hem donma hissi uyandırmamış olacaksınız; hem de query çalışırken ana thread'de istediğinizi yapabileceksiniz, buna bir flash animasyonu oynatmakta dahil.
Re: Query yüklenirken flash animasyon
Yanıtınıza göre teşekkür ederim. Ama maalesef ben hiç threadlerle çalışmadığım için dediğiniz "ana threadın haricinde" kavramını da anlayamadım. İsterseniz ben Query'yi çalıştırma kodumu yazayım da siz ona uygun bir çözüm kodunu yazın.Kod şöyle
bir de burada Flash animasyonu nasıl oynata bilirim. Yani nerede ne yazarsam daha uygun olur. İstediğim animasyonun sadece yüklenme süresince oynaması
Kod: Tümünü seç
Application.CreateForm(TfRPView, Report[aciq]);
with Report[aciq] do
begin // with form raport
Caption := inttostr(aciq) + '-' + Caption + (Sender as TMenuItem).Hint;
Label_IDr.Caption := inttostr(aciq);
LabelRPName.Caption := (Sender as TMenuItem).Name;
LabelMenuTag.Caption := IntToStr((Sender as TMenuItem).Tag);
DBGridRP.DataSource.DataSet := QRp;
LabelSearchPeriod.Visible := False;
ShowSearchCrits(aciq);
try
with QRp do
begin // with AQ_GRID_RAB zapros
Screen.Cursor := crBlueBusy;
SQL.Clear;
Active := False;
SQL.Append('SELECT DR.DRCODE, DR.DRNAME, DRS.DRSPECFULLNAME, DRL.DRLEVEL, HS.HOSPFULLNAME,PT.PAIDTYPE,');
SQL.Append(
' RG.REGIONNAME, ROUND(SUM(ISNULL(TOTALPRESC.DRUGPRICESUM, 0)),2) AS TOTALPRESC,ROUND(DR.DEBT,2) AS DEBT'
);
SQL.Append(' FROM LAZS_HOSPITALS AS HS INNER JOIN');
SQL.Append(' LAZS_REGIONS AS RG ON HS.REGIONID = RG.REGIONID INNER JOIN');
SQL.Append(' LAZS_DOCTORS AS DR ON HS.HOSPID = DR.HOSPID INNER JOIN');
SQL.Append(' LAZS_PAIDTYPE AS PT ON PT.PAIDTYPEID=DR.PAIDTYPEID INNER JOIN');
SQL.Append(' LAZS_DRSPECS AS DRS ON DR.DRSPECID = DRS.DRSPECID INNER JOIN');
SQL.Append(' LAZS_DRLEVELS AS DRL ON DR.DRLEVELID = DRL.DRLEVELID LEFT OUTER JOIN');
SQL.Append(' (SELECT INVD.DRUGPRICESUM, INV.DRID');
SQL.Append(' FROM AZS_INVOICE AS INV INNER JOIN');
SQL.Append(
' AZS_INVOICEDET AS INVD ON INV.INVID = INVD.INVID) AS TOTALPRESC ON DR.DRID = TOTALPRESC.DRID ');
if fSearchParam.EditFilter.Text <> '' then
SQL.Append('WHERE DR.DRSTAT=1 ' + fSearchParam.EditFilter.Text);
SQL.Append(
' GROUP BY DR.DRCODE, DR.DRNAME, DRS.DRSPECFULLNAME, DRL.DRLEVEL, HS.HOSPFULLNAME, RG.REGIONNAME ,DR.DEBT,PT.PAIDTYPE');
Active := True;
end;
// with AQ_GRID_RAB
except
MsgdlE('Main query is not right', 3, 3, 0);
end; // try AQ_GRID_RAB zapros
ButtonTitleCapt.Click;
with ESHEx2ExcelRab do
begin
DataPipe := DBGridRP.DataSource;
Title.Clear;
Title.Append('Doctors' list');
Title.Append('');
Title.Append('');
end;
WindowState := wsMaximized;
Visible := True;
end;
İstikrar sürsün, Türkiye'm büyüsün inşallah.
Re: Query yüklenirken flash animasyon
O halde bende sizinle bir link paylaşayım. Thread'ler hakkında bir kaç nacizane malümat bulabilirsiniz.
http://www.tugrulhelvaci.com/?tag=thread
Ayrıca TShockwaveFlash nesnesinin Movie isimli property'si herhangi bir flash animasyonunu oynatmak için yeterlidir.
http://www.tugrulhelvaci.com/?tag=thread
Ayrıca TShockwaveFlash nesnesinin Movie isimli property'si herhangi bir flash animasyonunu oynatmak için yeterlidir.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Query yüklenirken flash animasyon
Thread teoride işe yaraması gerektiği halde uygulamada çok ağır sorgularda sorun yaşatabiliyor. Gerçi günümüzde artık çok çekirdekli bilgisayarlar var, pek sorun olmaz diye düşünüyorum ama genele program yazarken güçlü sistemler baz alınmamalı. Bundan 4-5 sene önce vasat bir sistemde yaptığım türlü çalışmalarda bu sorun için .avi çözüm olmuştu. Şimdiki sistemimde aynı çalışmayı yapsam durum değişebilir. Ayrıca .avi çözümü çok teknik bilgi gerektirmeyen genele hitap eden kolay bir çözüm yöntemi olarak da önerilebilir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Query yüklenirken flash animasyon
Bu durumda thread lere bulaşmamak daha iyi 10 sn bekleyiversin kullanıcı
Ama arkaplanda sürekli kitlenmelere sebeb olacak işlemler mevcut ise thread kullanmak zorunluluk. Her iki şekildede çözüm oluşturulabilir fakat zahmetsiz yöntem daha iyidir. Ben Zeos kullanıyorum zeos'un kendi içinde bir özelliği var sorgu tamamlanana kadar mouse ikonu SQLhourGlass şeklini alıyor...böylece kullanıcı işlem yapıldğının farkında oluyor...fazla şekilli bir yapı değil ama yeterli diye düşünüyorum. Artık nasıl bir sunum yapacağınız size kalmış...

- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Query yüklenirken flash animasyon
Bunlar biraz detaydaki farklar. Ayrıca thread konusu, programcı kişinin muhakkak üzerinden geçmesi gereken bir konu asla es geçilmemeli. Hem bu konuda araştırma yapınca en faydalı kaynakların başında da tugrul hocamızın makaleleri yer ediyor. Program yazıyorum diyen thread konusunu aşmış olması lazım (Kredi kartı olmayana kız vermiyorlar gibi oldu biraz
). Bu örnek ise bu alanda çalışma yapmak için güzel bir örnek.

Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Query yüklenirken flash animasyon
Bence verdiğiniz bu bilgiler ışığında artık bir uygun yolu bulup hallederim. Size de ayrıca şükranlarımı sunuyorum.
İstikrar sürsün, Türkiye'm büyüsün inşallah.