ListView de tarama "dalgalanma"

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Serhat
Üye
Mesajlar: 203
Kayıt: 27 Tem 2014 11:10

ListView de tarama "dalgalanma"

Mesaj gönderen Serhat »

Selamlar;

ListView de saat hesaplıyorum, ListView'e anlık giriş çıkışlar yapıldığında bir buton ile değilde ListView1MouseMove kullanmayı tercih ettim"farklı bir öneride olabilir" fakat ListView de sürekli olarak tarama yani hesaplama olduğundan bazen donma ve tarama nedeniyle listview de dalgalanma oluşuyor;

Acaba anlık hesaplamayı yapılırken listview'deki bu taramayı nasıl engellerim?

Kod: Tümünü seç

procedure TForm1.ListView1MouseMove(Sender: TObject;  Shift: TShiftState; X, Y: Integer);
var
  s1, s2: TTime;
begin
  try
    with ListView1 do
    begin
      Items.BeginUpdate;

      if Items.Count > 0 then
      begin
        for I := 1 to Items.Count - 1 do
        begin
          s1:= StrToTime(Items[I - 1].SubItems[0]);
          s2:= StrToTime(Items[I - 1].SubItems[4]);
          Items[I].SubItems[0] := TimeToStr(s1+ s2);
        end;
      end;
    end;
  finally
    ListView1.Items.EndUpdate;
  end;
end;
m_yaprakci

Re: ListView de tarama "dalgalanma"

Mesaj gönderen m_yaprakci »

mousemove eventı her pikselde belirttiğin kodu çalıştıracağından dalgalanma olması normal.
Basitce anlatmak gerekirse listviewin genişliğini 300px olarak alırsak fare listviewin üzerinden soldan sağa tam yol katettiğinde 300 defa kod çalışacaktır.
Bunun yerine varsa onfocus eventını kullanabilirsin.
Cevapla