Programlama | Programlama Dilleri | C Programlama Dili |C++

Anasayfa Programlama C++ Builder Application OnIdle Uygulaması


Application OnIdle Uygulaması

AÇIKLAMA

C++ Builder 6 ile uyumludur. Bu programda Idle (boşta) kavramı üzerinde bir çalışma yapılmıştır. Application->OnIdle durumunda program boştadır yani herhangi bir işlem yapmamaktadır veya kullanıcı tarafından üzerinde herhangi bir işlem yapılmamamaktadır. Örneğin aşağıdaki programda asal sayıların bulunması sırasında işlemin uzun sürmesi açısından 1000000 gibi bir rakam girdiğinizde bu sınır değerine kadar olan asal sayıların tamamı bulunmadan formun başlığını değiştiren BoskenKos fonksiyonu çalışmayacaktır çünkü program boşta (OnIdle durumunda) değildir işlem yapmaktadır. Programda herhangi bir işlem yapmadığı veya yapılmadığı sürece örneğin asal sayıların bulunması bittikten sonra fareyi ekranda gezdirirseniz formun başlığının değiştiğini göreceksinizdir çünkü program boştadır işlem yapmamaktadır ve OnIdle kısmına yani boştayken çalışması istenen kod koşacaktır.

Programın Tamamını Aşağıdaki Linkten İndirebilirsiniz

Linki Görebilmeniz İçin Üye Olmanız Gerekmektedir...

Üye Kayıt 

Program Kodu:

Unit1.cpp

  1. //---------------------------------------------------------------------------
  2.  
  3. #include <vcl.h>
  4. #pragma hdrstop
  5. #include "Unit1.h"
  6. #include "Math.h"
  7. //---------------------------------------------------------------------------
  8. #pragma package(smart_init)
  9. #pragma resource "*.dfm"
  10. TForm1 *Form1;
  11. static int p=0;
  12. //---------------------------------------------------------------------------
  13. __fastcall TForm1::TForm1(TComponent* Owner)
  14.         : TForm(Owner)
  15. {
  16. }
  17. //---------------------------------------------------------------------------
  18.  
  19.  
  20. void __fastcall TForm1::FormCreate(TObject *Sender)
  21. {
  22. Application->OnIdle=BoskenKos;
  23. }
  24. //---------------------------------------------------------------------------
  25. void __fastcall TForm1::BoskenKos( TObject *Sender, bool &Done)
  26. {
  27.  p++;
  28. Form1->Caption=p;
  29. }
  30. void __fastcall TForm1::Button1Click(TObject *Sender)
  31. {
  32. ListBox1->Clear();
  33. int sinir=StrToInt(InputBox("GİRİŞ","Bulunacak Asal Sayılar İçin Sınır Değeri Girin",""));
  34. ListBox1->Items->Add("2");
  35. for(int i=3;i<=sinir;i++)
  36.  {
  37.  int kontrol=0;
  38.   for(int j=2;j<=sqrt(i);j++)
  39.   {
  40.    if(i%j==0)
  41.    kontrol=1;
  42.   }
  43.  if(kontrol==0)
  44.  ListBox1->Items->Add(i);
  45.  Application->ProcessMessages();
  46. }
  47. }
  48. //---------------------------------------------------------------------------
  49.  
  50.  
  51.  

Yorumlar (0)
Sadece kayıtlı kullanıcılar yorum yazabilir!
Son Güncelleme ( Pazar, 02 Eylül 2012 23:50 )