Hayırlı günler formumda 9 adet combobox var ve hepsinin içinde tablo sütunundaki kayıtları göstermek istiyorum.
Aşağıdaki kod ile comboboxların içindeki kayıtları gösteriyor ama form çok geç açılıyor.
Formun hemen açılması için ne yapmam gerekir açaba bu konuda bana yardımcı olurmusunuz.
procedure TForm1.FormShow(Sender: TObject);
begin
ADOTable1.Open;
ADOTable1.First;
ComboBox_HTF_KOD.Clear;
repeat
ComboBox_HTF_KOD.Items.Add(ADOTable1KOD.AsString);
ADOTable1.Next;
until ADOTable1.Eof;
ADOTable1.Close;
//
ADOTable2.Open;
ADOTable2.First;
ComboBox_E17.Clear;
repeat
ComboBox_E17.Items.Add(ADOTable2A17.AsString);
ADOTable2.Next;
until ADOTable2.Eof;
ADOTable2.Close;
//
ADOTable3.Open;
ADOTable3.First;
ComboBox_E3.Clear;
repeat
ComboBox_E3.Items.Add(ADOTable3STOK.AsString);
ADOTable3.Next;
until ADOTable3.Eof;
ADOTable3.Close;
//
ADOTable4.Open;
ADOTable4.First;
ComboBox_E4.Clear;
repeat
ComboBox_E4.Items.Add(ADOTable4A4.AsString);
ADOTable4.Next;
until ADOTable4.Eof;
ADOTable4.Close;
//
ADOTable5.Open;
ADOTable5.First;
ComboBox_E7.Clear;
repeat
ComboBox_E7.Items.Add(ADOTable5A7.AsString);
ADOTable5.Next;
until ADOTable5.Eof;
ADOTable5.Close;
//
ADOTable6.Open;
ADOTable6.First;
ComboBox_E9.Clear;
repeat
ComboBox_E9.Items.Add(ADOTable6A9.AsString);
ADOTable9.Next;
until ADOTable6.Eof;
ADOTable6.Close;
//
ADOTable7.Open;
ADOTable7.First;
ComboBox_E10.Clear;
repeat
ComboBox_E10.Items.Add(ADOTable7A10.AsString);
ADOTable7.Next;
until ADOTable7.Eof;
ADOTable7.Close;
//
ADOTable8.Open;
ADOTable8.First;
ComboBox_E15.Clear;
repeat
ComboBox_E15.Items.Add(ADOTable8A15.AsString);
ADOTable8.Next;
until ADOTable8.Eof;
ADOTable8.Close;
//
ADOTable9.Open;
ADOTable9.First;
ComboBox_E16.Clear;
repeat
ComboBox_E16.Items.Add(ADOTable9A16.AsString);
ADOTable9.Next;
until ADOTable9.Eof;
ADOTable9.Close;
//
end;
Formun geç açılması.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Formun geç açılması.
dbcombobox kullan, query lere sort ekle.
niye repeat until, while değil?
niye repeat until, while değil?
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Re: Formun geç açılması.
Merhaba,Ertuğrul2025 yazdı: 11 Şub 2025 09:23 Hayırlı günler formumda 9 adet combobox var ve hepsinin içinde tablo sütunundaki kayıtları göstermek istiyorum.
Aşağıdaki kod ile comboboxların içindeki kayıtları gösteriyor ama form çok geç açılıyor.
Formun hemen açılması için ne yapmam gerekir açaba bu konuda bana yardımcı olurmusunuz.
İşlemi yavaşlatan tabloların kapatılıp açılması olduğunu düşünüyorum.
Mümkün ise bir data module içine 9 tane sorgu ekleyip uygulamanın ilk açılışında bu sorguları çalıştırabilir ve açık tutabilirsiniz.
TForm.OnShow() kısmında ise sadece first, next şeklinde döngü içinde kayıtları yükleyebilirsiniz.
Eğer veriler çok değişken ve her form gösteriminde yeniden veritabanından okunması gerekiyor ise yapabileceğiniz çok fazla birşey olmayabilir. Bu durumda en fazla 9 farklı thread çalıştırarak verileri doldurmayı deneyebilirsiniz ancak çok bir zaman kazandırır mı emin değilim.
Zaten tavsiye edildiği üzere repeat..until kullanımı veritabanından kayıt okumak için uygun değildir. Eğer veritabanı boş ise, repeat bloğu en azından bir defa çalışacağı için uygulama hatası oluşması ihtimali var. Bunun yerine while döngüsü kullanmanız daha güvenli olacaktır.
Kod: Tümünü seç
ADOTable1.Open;
ADOTable1.First;
ComboBox_HTF_KOD.Clear;
while not ADOTable1.Eof do
begin
ComboBox_HTF_KOD.Items.Add(ADOTable1KOD.AsString);
ADOTable1.Next;
end;
-
- Üye
- Mesajlar: 30
- Kayıt: 08 Oca 2025 10:35
Re: Formun geç açılması.
Bu işte biraz acemiyim hocamfreeman35 yazdı: 12 Şub 2025 09:47 dbcombobox kullan, query lere sort ekle.
niye repeat until, while değil?
query lere sort ekle
Nasıl yapabilirim acaba.
-
- Üye
- Mesajlar: 30
- Kayıt: 08 Oca 2025 10:35
Re: Formun geç açılması.
Teşekkür ederim deniyorum.ertank yazdı: 12 Şub 2025 11:06Merhaba,Ertuğrul2025 yazdı: 11 Şub 2025 09:23 Hayırlı günler formumda 9 adet combobox var ve hepsinin içinde tablo sütunundaki kayıtları göstermek istiyorum.
Aşağıdaki kod ile comboboxların içindeki kayıtları gösteriyor ama form çok geç açılıyor.
Formun hemen açılması için ne yapmam gerekir açaba bu konuda bana yardımcı olurmusunuz.
İşlemi yavaşlatan tabloların kapatılıp açılması olduğunu düşünüyorum.
Mümkün ise bir data module içine 9 tane sorgu ekleyip uygulamanın ilk açılışında bu sorguları çalıştırabilir ve açık tutabilirsiniz.
TForm.OnShow() kısmında ise sadece first, next şeklinde döngü içinde kayıtları yükleyebilirsiniz.
Eğer veriler çok değişken ve her form gösteriminde yeniden veritabanından okunması gerekiyor ise yapabileceğiniz çok fazla birşey olmayabilir. Bu durumda en fazla 9 farklı thread çalıştırarak verileri doldurmayı deneyebilirsiniz ancak çok bir zaman kazandırır mı emin değilim.
Zaten tavsiye edildiği üzere repeat..until kullanımı veritabanından kayıt okumak için uygun değildir. Eğer veritabanı boş ise, repeat bloğu en azından bir defa çalışacağı için uygulama hatası oluşması ihtimali var. Bunun yerine while döngüsü kullanmanız daha güvenli olacaktır.
Kod: Tümünü seç
ADOTable1.Open; ADOTable1.First; ComboBox_HTF_KOD.Clear; while not ADOTable1.Eof do begin ComboBox_HTF_KOD.Items.Add(ADOTable1KOD.AsString); ADOTable1.Next; end;
Re: Formun geç açılması.
sql text ine "order by fieldname(s)"Ertuğrul2025 yazdı: 12 Şub 2025 01:27 Bu işte biraz acemiyim hocam
query lere sort ekle
Nasıl yapabilirim acaba.
index olan alanlarda daha verimli çalışır.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
-
- Üye
- Mesajlar: 30
- Kayıt: 08 Oca 2025 10:35
Re: Formun geç açılması.
Teşekkür ederim hocam emeğine sağlık.freeman35 yazdı: 14 Şub 2025 09:43sql text ine "order by fieldname(s)"Ertuğrul2025 yazdı: 12 Şub 2025 01:27 Bu işte biraz acemiyim hocam
query lere sort ekle
Nasıl yapabilirim acaba.
index olan alanlarda daha verimli çalışır.