Shift ile kayıtları seçme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
dogan
Üye
Mesajlar: 173
Kayıt: 17 Eki 2014 10:11

Shift ile kayıtları seçme

Mesaj gönderen dogan »

İyi günler,

Listview de tüm kayıtları kolona tıklayarak Checked True veya False işlemi yaptırıyorum, ek olarak da klavyeden
shift ve yukarı ok ile seçmiş olduğum bir kaç satırı Checked True veya False nasıl yaptırabilirim...


Kod: Tümünü seç

procedure TForm1.ListView1ColumnClick(Sender: TObject; Column: TListColumn);
begin
  try
    if Column.Index = 0 then
    begin
      with ListView1 do
      begin
        for i := 0 to Items.Count - 1 do
        begin
          if Items.Item[i].Checked = False then
          begin
            Items.Item[i].Checked := True;
          end
          else
          begin
            Items.Item[i].Checked := False;
          end;
        end;
      end;
    end;
  except
  end;
end;
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Shift ile kayıtları seçme

Mesaj gönderen xozcanx »

Merhaba;
ListView ile çalışmam olmadı fakat mantık aynı olmalı bir deneyin

Kod: Tümünü seç

procedure TForm1.ListView1ColumnClick(Sender: TObject; Column: TListColumn);
begin
  try
    if Column.Index = 0 then
    begin
      with ListView1 do
      begin
        for i := 0 to Items.Count - 1 do
        begin
	  if  ListView1.Items[i].Selected=True then	  // item seçili mi kontrol ediyoruz.      
            Items.Item[i].Checked := False     
          else
            Items.Item[i].Checked := True;
        end;
      end;
    end;
  except
  end;
end;
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Shift ile kayıtları seçme

Mesaj gönderen brs »

xozcanx yazdı:Merhaba;
ListView ile çalışmam olmadı fakat mantık aynı olmalı bir deneyin

Kod: Tümünü seç

procedure TForm1.ListView1ColumnClick(Sender: TObject; Column: TListColumn);
begin
  try
    if Column.Index = 0 then
    begin
      with ListView1 do
      begin
        for i := 0 to Items.Count - 1 do
        begin
	  if  ListView1.Items[i].Selected=True then	  // item seçili mi kontrol ediyoruz.      
            Items.Item[i].Checked := False     
          else
            Items.Item[i].Checked := True;
        end;
      end;
    end;
  except
  end;
end;
Hocam, listView de KeyPress ile farklı bir yöntem uyguladım, fakat checked true olan satırlar false olmuyor true ye dönmüyor???

Kod: Tümünü seç

procedure TForm1.ListView1KeyPress(Sender: TObject; var Key: Char);
begin
  try
    if Key = ^A then // Seç
    begin
      with ListView1 do
      begin
        for i := 0 to Items.Count - 1 do
        begin
          if Items[i].Selected = True then
          begin
            Items.Item[i].Checked := True;
          end
          else
          begin
            Items.Item[i].Checked := False;
          end;
        end;
      end;
    end;
  except
  end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Shift ile kayıtları seçme

Mesaj gönderen xozcanx »

Merhaba;
Yukarıda da belirtmiştim daha önce çalışmadım fakat aşağıdaki şekilde multiselect özelliğini açtıktan sonra hangi satırları seçmiş iseniz seçili satırların belirtilen itemlerini True False olarak olarak değiştiriyor.

Kod: Tümünü seç

    if Key = VK_F5 then
    begin
      with ListView1 do
      begin
        for i := 0 to Items.Count - 1 do
        Begin
          if Items[i].Selected = True then
          Begin
            if Items.Item[i].SubItems[0]= 'True' then
              Items.Item[i].SubItems[0]:= 'False'
            else
            Items.Item[i].SubItems[0]:= 'True';
          End;
        end;
      end;
    end;
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Cevapla