• 27-02-2013, 15:19:30
    #1
    Merhaba yine bir yerde tosladık,

    araştırmalarım sonucu hep görsel loading sistemlerine ulaştım. Yani formun gerçekten yüklenmesine göre loading, progressbar vb. bir uygulama bulamadım.

    İstediğim şu, çok gelişmiş bir form açılacak diye düşünün. Açıldığında sql serverden birçok kayıt süzüyor grafik olarak ekrana getiriyor.

    Bu işlem olduğu için form yaklaşık 7 - 8 saniye sonra açılıyor.

    İşte bu açılma sırasında ekrana yükleniyor tarzında bir progressbar çubuğu nasıl eklerim. Şuana kadar yaptıklarımın hepsinde form yine bekliyor acılmak için progressbarımda bekliyor form yükleniyor açılıyor progress bar dolmaya başlıyor.

    Form açılmadan önce progress barın yüklemeye başlaması bile işimi görür. Gerçek load süresi olmasa dahi 7-8 saniyelik bi yükleme bile gösteremiyorum.

    Kullandığım kod şu;
    Loading formunun load olayına
    
    Timer1.start
    diyorum
    
    Timer1.tick olayınada
    Progressbar.Increment(1)
    If progressbar1.value = progressbar1.maximum then
    FORM2.SHOW
    timer1.stop
    Fakat form 2 tamamen açılmadan progressbar başlamıyor. açıldıktan sonra başlamasının da bi anlamı yok. Açılana kadar başlaması lazım.

    EK: En son kontrollerimde refreshreportviewer olan 3 reportu refresh ederken beklediğini gördüm. Bu bekleme sırasında ekrana loading ekranı yazdırmak istiyorum.
    refreshreportlari kaldirdigimda 1 saniyede aciliyor form
  • 27-02-2013, 15:35:28
    #2
    dediğin olay multithreadde rahatça oluyor hocam. yani net dillerinde. sen vb6 da deniyorsun. Diğer form gelmeden başlamaz yani progressbar normal olarak. Ana formunda diğer formun visiblesini false yap ve çağır. arka planda açılsın o görünmediği için problem yok. sen de açılıyor yazdır 10 sn sonra visiblesini true yap gelir heralde. en en amatörce aklıma gelen bu vb6 için.
  • 27-02-2013, 15:52:49
    #3
    voyl'un dediği gibi multi-thread bir uygulama yapman gerekiyor. ancak kod vb 6.0 değil vb.net o yüzden .net frameworkundaki threading sınıflarını kullanarak rahatlıkla yapabilirsin

    http://www.1923turk.com/showthread.php?t=7001
    buradaki örneği inceleyip istediğin metodu farklı bir thread ile çalıştırabilirsin
  • 27-02-2013, 17:36:37
    #4
    if koşul then vb6 da vardı ordan aklımda kaldı. hala vb6 olabilir bilmiyoruz :P bi buton eventini koysaydı anlardık. Eğer vb.net ise backgroundworker tooluyla yapabilirsin.
  • 27-02-2013, 17:40:45
    #5
    increment metodundan anladım

    http://msdn.microsoft.com/tr-tr/libr...code-snippet-1
  • 27-02-2013, 21:17:36
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Background worker ile yapıcaksın ve asenkron çalıştırmalısın. Kodları vb'ye çevirip yapıştırdım.
    http://codepaste.net/j2or7j