16-12-2020, Saat: 15:50
(Son Düzenleme: 16-12-2020, Saat: 16:45, Düzenleyen: barissagir.)
(16-12-2020, Saat: 15:36)engerex Adlı Kullanıcıdan Alıntı: ListBox'ta virtual mode gibi bir olay var. 1 milyon veriyi işlemesi tahmini bir kaç saniye sürer.
Kendi tasarladığım frame i kullanmak istediğim için virtual mode kullanmadım.
(15-12-2020, Saat: 17:34)mrmarman Adlı Kullanıcıdan Alıntı: API'lerini yeniden araştırın. Pagination ( sayfalama ) terimi ile arama yapın. bir offset ( başlama ) değeri (örneğin 0 ) bir de limit ( sayı ) değeri ( örneğin 50 ) verilir. Bir sonrakinde offset 51 limit yine 50 gibisinden
Merhabalar,
Programda listbox yerine VScrollBox in içine FlowLayout kullandım. Kendi tasarladığım Frame dediğiniz gibi 100 er 100 er kaydı çekerek Flowlayout a ekledim.
her 100 kaydı VScrollBox ın son değerine gelince ViewportPositionChange olayı ile yükledim.
procedure TislerF.VertScrollBox1ViewportPositionChange(Sender: TObject;
const OldViewportPosition, NewViewportPosition: TPointF;
const ContentSizeChanged: Boolean);
begin
if CompareValue(NewViewportPosition.Y, FlowLayout2.Height-VertScrollBox1.Height)=EqualsValue then
begin
islerF.isleriAl('ORDER BY id LIMIT 100 OFFSET ' + islerUNT.KayitNo.ToString);
end;
end;
Ancak her eklenen 100 kayıt ile birlikte VScrollBox ın degeri yine en sonda duruyor. Vscrollbox yeni eklenen kayıtları göstermiyor. Windowsta formu el ile resize edince diğer kayıtlar geliyor.
Yükleme yaptıkran sonra VScrollBox nasıl güncelleyebilirim?
Bunun için bir çözüm önerebilir misiniz.?

