Sorunu Çözdüm
Kendi Soruma Kendim Cevap Vereyim
Biraz Uzun Cevap Olacak Ama Takılan Arkadaşlarının Sorununu Çözecektir
Çözüm için işe yarayacak Fonksiyonumuz CreateThread
önce Bir bool türünde SatirSecimi adında degeri true
ve int tipinde ilkSatirNo , sonSatirNo değişkenler tanımlıyoruz
yani
Kod: Tümünü seç
bool SatirSecimi=true;
int ilkSatirNo , sonSatirNo;
formun onshow una
Kod: Tümünü seç
if(SatirSecimi)
{
SatirSecimi =false;
OtoFonksiyonCalistirma(SatirSecimKontrol);
}
yani SatirSecimi true olduğundan if içini çalıştıracaktır
SatirSecimi neden hemen false ettiğimi ilerde daha kolay anlaşılacaktır
önemli olan Formun(Programın) Çalışma Süresi içinde OtoFonksiyonCalistirma(SatirSecimKontrol); bir defaya mahsus çalıştırmamız
onu işe burda formun onshow yazdımız if sayesinde hallediyoruz
şimdi geldik CXGrid sattırlarını Sırasıyla seçmek için yazdığımız Koda
Kod: Tümünü seç
void SatirSec(int i)
{
if (i > 0)
Form9->cxGrid1DBTableView1->ViewData->Rows[i-1]->Selected=false;
Form9->cxGrid1DBTableView1->ViewData->Rows [i]->Selected = true;
Form9->cxGrid1DBTableView1->ViewData->Rows [i]->Focused=true;
}
void SatirSecimKontrol()
{
while(1)
{
if( SatirSecimi )
{
try
{
SatirSec(ilkSatirNo) ;
} catch(...)
{
ShowMessage("Hata");
}
ilkSatirNo++;
if(ilkSatirNo >= sonSatirNo)
SatirSecimi =false;
}
Sleep(500);
}
}
void OtoFonksiyonCalistirma(void *fonksiyon)
{
CreateThread(0,0,(LPTHREAD_START_ROUTINE)fonksiyon,0,0,0);
}
biraz uzun oldu
açıklamaya alt fonksiyondan üst fonksiyona doğru anlatmaya başlasak daha doğru olacak
OtoFonksiyonCalistirma ile Çalıştırmak istediğimiz fonksiyon için bir kanal oluşturuyoruz dikkat etmemiz gerek her fonksiyon için bir defaya mahsus kanal oluşturmak yoksa
SatirSecimi her true ettiğimizde Her kanal kendi başına seçmeye başlıyacaktır
ikinci fonksiyonumuz SatirSecimKontrol()
burda while sonsuz döngüye alıyoruz
yani devamlı çalışacak ancak while içerinsindeki
if( SatirSecimi ) yani seçmeyi durdurmak için
ettiğimizde satır seçimi duracaktır
ile de seçmek istediğimiz satırının nosu üçüncü Fonksiyona gönderiyoruz
üçüncü fonsiyonumuz gayet açık
sadece if var oda eger gönderdiğimiz satır 0 (sıfır) nolu satır ise bir seçimde çıkarılacak -1 satır nosu olmadığından seçim yapma diyoruz