Call komutları makro çağırmak için. Aslında ben onları özellikle tek bir prosedürde toparladım. O ana prosedür bir kitap, diğer call ile yönlendirdiğim prosedürler bir nevi kitap sayfaları gibi, makro kodları da sayfadaki satırlar gibidir. Bu şekilde düşünmeye çalışın.
İlk makro çalıştığında git şu makrodakileri işle demiş olduk. O iş bittiğinde ikinci sıradaki makroyu bulup işle sonra diğeri vs.. Siz daha önce her prosedürün sonuna eklemişsiniz, ben ise tek prosedürde topladım. Hepsini tek prosedür altında da toplayabilirdik ama çok uzun bir prosedür olurdu. Kafanız karışmasın. Bahsettiğim 3 yol da aynıdır.
1 - Tek prosedürde tüm makroları arka arkaya çalıştırırız.
2 - Prosedürleri böleriz ve her prosedür sonunda, sonraki çalışacak prosedürü çağırırız.
3 - Prosedürleri böleriz ve ana bir prosedür belirleyerek, çalışacak diğer prosedürleri burada basamaklarız.
Gelelim aradaki progressbar value değerlerine. Dedim ya , işlemlerin zamanını hesaplayamadığımızdan, belirli aralıklarda progressbar değerini manuel yolluyorum. Tek prosedür olduğunu varsayarsak, belirli işlemlerin arasına yine progressbar değeri gönderecektik. Bu değer nedir ? Bu değer sizin ilerleme rengini görebileceğiniz değerdir. Bir çubuğu 10 parçaya bölmüş olsaydık, her 10 parçasını soldan sağa tek tek boyamak isteseydik, boyamaya devam ettikçe çubuğun yavaş yavaş renk değiştirdiğini görebilirdik. Bu işlemi de ona benzetin. Aralarda işlemleriniz devam ettikçe, progressbar ilerleme çubuğu da yavaş yavaş ilerliyor.
Aslında yapılması gereken işlem şu olmalı :
Tüm prosedürlerinizin çalışabileceği zaman / süre öncesinden hesaplanmalı. Aynı bir download yaparken bağlantı hızınızın kaç kb' lık paketlerde dosya indirebileceğini sistemin hesapladığı gibi. Orada nasıl oluyor ? Download edilecek dosyanın boyutu 100mb ve bağlantı hızınıza göre saniyede 150kb veri paketi alıyorsunuz. Önce cinsleri birleştirelim. 100mb = 100 X 1024Kb = 102.400kb. O da saniyede 150kb indirdiğimiz düşünüldüğünde 150kb' ye bölünürse, 102.400 / 150kb = 682,66 saniye. Onu da dakika cinsine bölelim. 682,66 / 60 ~11dakika. Şimdi elimizde 11 dakikada indirebileceğimiz (download edebileceğimiz) bir dosya var. Bunun için progressbar yapmalıyız. 11 / 100 = 0,11 dakika/birim. Progressbar max değerini yine %100 olarak düşünürsek, her progressbar değerinde 0,11 dakika eşitlenmiş olacak. Dolayısıyla 1 ile 100 arasındaki bir döngüyü başlatıp, 0,11 dakika sürelerinde birer birer arttırım yaparsak, 11.nci dakikada 100mb ' lık veri paketine ulaşmış oluruz. Bu da işlemin başlangıç anında progresbar değerinin 0 ya da 1, bitiş zamanında da progressbar değerinin 100 olmasına vesile olacak.
Bilmiyorum yeteri kadar örnekleyebildim mi