Listview'e flag yapma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Listview'e flag yapma
Merhabalar sorum şu;acaba listview'e aynı outlooktaki gibi flag ekleyebilirmiyiz.Yani seçtiğim bir satırı işaretlemek için aynı checked gibi yapabilirmiyiz.Ve bunu bir çok sütuna farklı resimlerle yapmak istiyorum.Teşekkür ederim.
Gökay Okutucu
Sakarya Bilgisayar Programcılığı Öğrencisi
Sakarya Bilgisayar Programcılığı Öğrencisi
Kod: Tümünü seç
procedure TForm1.ListView1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Item: TListItem;
HitTest: THitTests;
begin
// Welchem Item gehört die CheckBox
// Which item belongs to the checkbox
Item := ListView1.GetItemAt(x, y);
// Was wurde vom Item genau angeklickt
// What kind of thing was hit on the item
HitTest := ListView1.GetHitTestInfoAt(x, y);
// Falls ein Item angeklickt wurde und davon die Checkbox
// If an Item was hit and exactly his checkbox
if (Item <> nil) and (HitTest = [htOnStateIcon]) then
begin
Hier das OnCheck behandeln
Handle OnCheck here
Beispiel
Example
if Item.Checked = False then
begin
if (Item.Index = 0) or (ListView1.Items.Item[Item.Index - 1].Checked = True) then
Item.Checked := True else Item.Checked := False;
end else
begin
if (Item.Index = ListView1.Items.Count - 1) or (ListView1.Items.Item[Item.Index + 1].Checked = False) then Item.Checked := False else
Item.Checked := True;
end;
end;
end;
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Merhaba...
- TListView'de resimleri kullanmasın biliyorsanız basit bir şekilde halledebilirsin.
- Örneğimizde TListView'de ilgileneceğimiz resim listesi StateImages adına atayacağımız TImageList olacak.
- Forma bir adet TImageList ekle ve buna onay veya bayrak şeklinde bir resim ekle. İlk resim olduğundan sıra numarası 0 olacaktır.
- Yukarda belirttiğim gibi TListView'in StateImages açılır listesini açıp ilk ImageList'ini seç.
- @vedatkaba'nın örneğinden mouse ile üzerine tıklanmış item'i almayı kullanıcaz...
- Burada ne yaptık. Item tıklandığında resmi varsa yani 0 numaralı resim varsa -1 yapıp resmi yok ettik. -1 ise yani resim yoksa 0 yapıp seçili izlenimi veren resmi görünür yaptık.
- Bu şekilde örnekler çoğaltılabilir. İlk kerede farklı bir resim, bir sonrakinde farklı ve daha sonrakinde resmi yok eder şekilde zenginleştirebiliriz...
- Şimdi bunları nasıl kullanacağımıza gelelim. Basit bir Item sayısı kadar döngü ve Case bloğu.
- Döngü içerisinde sıradaki Item'in StateIndex'i hangi rakam ise ona göre basit bir case bloğu gerekli işlemei gerçekleştiermeye yetecektir...
- TListView'de resimleri kullanmasın biliyorsanız basit bir şekilde halledebilirsin.
- Örneğimizde TListView'de ilgileneceğimiz resim listesi StateImages adına atayacağımız TImageList olacak.
- Forma bir adet TImageList ekle ve buna onay veya bayrak şeklinde bir resim ekle. İlk resim olduğundan sıra numarası 0 olacaktır.
- Yukarda belirttiğim gibi TListView'in StateImages açılır listesini açıp ilk ImageList'ini seç.
- @vedatkaba'nın örneğinden mouse ile üzerine tıklanmış item'i almayı kullanıcaz...
Kod: Tümünü seç
procedure TForm1.ListView1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Item TListItem;
begin
Item := ListView1.GetItemAt(x, y);
If Item.StateIndex = -1 then Item.StateIndex := 0
else Item.StateIndex := -1;
end;
- Bu şekilde örnekler çoğaltılabilir. İlk kerede farklı bir resim, bir sonrakinde farklı ve daha sonrakinde resmi yok eder şekilde zenginleştirebiliriz...
- Şimdi bunları nasıl kullanacağımıza gelelim. Basit bir Item sayısı kadar döngü ve Case bloğu.
- Döngü içerisinde sıradaki Item'in StateIndex'i hangi rakam ise ona göre basit bir case bloğu gerekli işlemei gerçekleştiermeye yetecektir...