Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Seçilmeyen satır
#1
Merhabalar,

Listview de "Selected.Index" ile satırların yerini değiştiriyorum. 
Başka satır seçmeme rağmen, değiştirdiğim satırın altındaki satırda seçilmiş gibi "Gri" oluyor. Çözüm için ne yapabilirim?




8zLQNr.png
Cevapla
#2
Index değişimi yaptığınız kod bloğunda ListView1.BeginUpdate fonksiyonunu çağırın. İşlem tamamlandığı zaman, yani son satırda da ListView1.EndUpdate fonksiyonunu çağırın.
Cevapla
#3
(13-08-2018, Saat: 11:00)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı: Index değişimi yaptığınız kod bloğunda ListView1.BeginUpdate fonksiyonunu çağırın. İşlem tamamlandığı zaman, yani son satırda da ListView1.EndUpdate fonksiyonunu çağırın.

try finally arasında BeginUpdate ve Lists.EndUpdate kullanıyorum sizin yorumunuzdan sonra BeginUpdate ve Lists.EndUpdate kodların yerini değiştirdim ama yine olmadı  Huh


            
         Lists.BeginUpdate;
            if Selected <> Nil then
            begin
              Items.Delete(Selected.Index); // KAYIT SİLDİM
              Items.Insert(Idxn); // EKLEDİM
              Items[Idxn].Data['Onay'] := POn;
              Items[Idxn].Data['UrunName'] := Pnane;
              Lists.EndUpdate;
              for J := 0 to Items.Count - 1 do
              begin
                Items[J].Data['SiraNo'] := IntToStr(J + 1);
              end;
            end;
          finally

          end;
Cevapla
#4
(13-08-2018, Saat: 11:58)ahmetb Adlı Kullanıcıdan Alıntı:
(13-08-2018, Saat: 11:00)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı: Index değişimi yaptığınız kod bloğunda ListView1.BeginUpdate fonksiyonunu çağırın. İşlem tamamlandığı zaman, yani son satırda da ListView1.EndUpdate fonksiyonunu çağırın.

try finally arasında BeginUpdate ve Lists.EndUpdate kullanıyorum sizin yorumunuzdan sonra BeginUpdate ve Lists.EndUpdate kodların yerini değiştirdim ama yine olmadı  Huh


            
         Lists.BeginUpdate;
            if Selected <> Nil then
            begin
              Items.Delete(Selected.Index); // KAYIT SİLDİM
              Items.Insert(Idxn); // EKLEDİM
              Items[Idxn].Data['Onay'] := POn;
              Items[Idxn].Data['UrunName'] := Pnane;
              Lists.EndUpdate;
              for J := 0 to Items.Count - 1 do
              begin
                Items[J].Data['SiraNo'] := IntToStr(J + 1);
              end;
            end;
          finally

          end;

With do kullanımı bazen sorun çıkartabiliyor. Event içinde parametre dahi olsa tam adını yazın. Lists.Items.Delete... If Lists.Selected... gibi.
Cevapla
#5
(13-08-2018, Saat: 12:11)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı:
(13-08-2018, Saat: 11:58)ahmetb Adlı Kullanıcıdan Alıntı: try finally arasında BeginUpdate ve Lists.EndUpdate kullanıyorum sizin yorumunuzdan sonra BeginUpdate ve Lists.EndUpdate kodların yerini değiştirdim ama yine olmadı  Huh


            
         Lists.BeginUpdate;
            if Selected <> Nil then
            begin
              Items.Delete(Selected.Index); // KAYIT SİLDİM
              Items.Insert(Idxn); // EKLEDİM
              Items[Idxn].Data['Onay'] := POn;
              Items[Idxn].Data['UrunName'] := Pnane;
              Lists.EndUpdate;
              for J := 0 to Items.Count - 1 do
              begin
                Items[J].Data['SiraNo'] := IntToStr(J + 1);
              end;
            end;
          finally

          end;

With do kullanımı bazen sorun çıkartabiliyor. Event içinde parametre dahi olsa tam adını yazın. Lists.Items.Delete... If Lists.Selected... gibi.

With do kaldırdım yine olmadı.
Cevapla
#6
"Lists.EndUpdate" doğru yerde mi?
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla
#7
Kodların bir bölümü.


procedure TForm1.ListSDragDrop(Sender: TObject; const Data: TDragObject;
  const Point: TPointF);
var
  PSn: String;
begin
  try
    Obj := ObjectAtPoint(Screen.MousePos);
    if (Obj <> Nil) and (ListS.Selected <> Nil) and (ListS = Sender) then
    begin
      Idxn := GetIndexAtPos(ListS, Point);
      if (Idxn <> -1) and (ListS.Items.Count > 0) then
      begin
        ListS.BeginUpdate;
        try
          PSn := ListS.Items[ListS.Selected.Index].Data['Onay'].AsInteger;
          if ListS.Selected <> Nil then
          begin
            ListS.Items.Delete(ListS.Selected.Index); // Sil
            ListS.Items.Insert(Idxn); // Ekle
            ListS.Items[Idxn].Data['Onay'] := PSn;
            ListS.Selected.Index := Idxn;
            for J := 0 to ListS.Items.Count - 1 do
            begin
              //ListS.Items[J].Data['SiraNo'] := IntToStr(J + 1);
            end;
          end;
        finally
          ListS.EndUpdate;
        end;
      end;
    end;
  except
  end;
end;
Cevapla
#8
(13-08-2018, Saat: 13:40)uparlayan Adlı Kullanıcıdan Alıntı: "Lists.EndUpdate" doğru yerde mi?

Hocam kodları paylaştım sizce hatalı bir kodlama var mı?
Cevapla
#9
(14-08-2018, Saat: 15:38)ahmetb Adlı Kullanıcıdan Alıntı:
(13-08-2018, Saat: 13:40)uparlayan Adlı Kullanıcıdan Alıntı: "Lists.EndUpdate" doğru yerde mi?

Hocam kodları paylaştım sizce hatalı bir kodlama var mı?


Yukarıdaki kodda bir çok nesne ve değişken tanımlı, veri tipleri sadece paylaştığınız kısım itibariyle anlaşılabilir durumda değil o nedenle bir yorum yapmak çok zor.

Mesela GetIndexAtPos nereden geliyor, ne yapıyor, nedir belli değil, Idxn, Obj bunların veri tipleri belirsiz...

try...except kısmı neden boş? niye hata mesajını baskılıyorsunuz? Psn string ama kod içinde bir yerde "AsInteger" diye değer atamaya çalışmışsın...

Bu kadar eksik ip ucuyla doğru sonuca ulaşmak zor...
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Listview Satır Renklendirmesi Yapma sadoal351 1 931 12-10-2022, Saat: 14:02
Son Yorum: RAD Coder
  TLabel veya TMemo daki wordwrap olan 2 satır arasındaki pixel boşluğu hayalyilmaz43 11 6.855 23-06-2020, Saat: 14:33
Son Yorum: hayalyilmaz43
  Resime iki satır yazı yazma Nese 3 3.053 11-06-2020, Saat: 06:38
Son Yorum: mrmarman
  Seçili satır brs 7 6.304 19-02-2018, Saat: 01:39
Son Yorum: mcuyan
  Listview seçili satır hido 1 2.899 08-02-2018, Saat: 16:27
Son Yorum: codder71



Konuyu Okuyanlar: 1 Ziyaretçi