ListView de Button oluşturma..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

ListView de Button oluşturma..

Mesaj gönderen neu84 »

S.a Arkadaşlar, hayırlı Cuma'lar..

Listviewde istedigim satırların istedigim sütununa button eklemek istiyorum, tıklayınca o satırla ilişki olan şey için kriter pencerem açılacak.. ve bir butonumda sil görevini görecek..Acaba bunu Nasıl yapılabilirim?

Son bi soru, gruplama nasıl yapılıyor?

2 sütün var, biri uygulama, digeri degerler
uygulama altında müşteri ve stok var
degerlerde iste müşteri grubuna ait adı, soyadı, tlf gibi kriterler var.. buttonala seçilecek..
stokta stokkodu stokadı gibi...

Bi öneriniz varmıdır?
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Re: ListView de Button oluşturma..

Mesaj gönderen adnansirca »

CustomDrawSubItem olayı ile button yerleştirmek mümkün.

Kod: Tümünü seç

procedure TForm1.lv1CustomDrawSubItem(Sender: TCustomListView; Item: TListItem;
  SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean);
  var
  btn1: TSpeedbutton;
  leftpos: Integer;
begin
 Application.ProcessMessages;
  if SubItem = 1 then
  begin
    lv1.Items.BeginUpdate;
    leftpos := Lv1.Column[1].Width ;
    btn1 := TSpeedButton.Create(Self);
    with btn1 do
    begin
      Parent := lv1;
      Caption := 'Kriter';
      Left := leftpos;
      Top := (Item.Index +1) * (Lv1.Height div Lv1.VisibleRowCount);
      Width := Lv1.Column[2].Width;
      OnClick := MessageClick;
   end;
   leftpos := Lv1.Column[1].Width +Lv1.Column[2].Width ;
   btn1 := TSpeedButton.Create(Self);
   with btn1 do
    begin
      Parent := lv1;
      Caption := 'Sil';
      Left := leftpos;
      Top := (Item.Index+1) * (Lv1.Height div Lv1.VisibleRowCount);
      Width := Lv1.Column[3].Width;
      OnClick := MessageClick;//Burada istediğniz olayı çağırabilirsiniz.
   end;
   lv1.Items.EndUpdate;
  end;

end;  
Gruplama ile ilgili elimde bir örnek vardı. Bulabilirsem size gönderirim.
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: ListView de Button oluşturma..

Mesaj gönderen neu84 »

adnansirca yazdı:CustomDrawSubItem olayı ile button yerleştirmek mümkün.

Kod: Tümünü seç

procedure TForm1.lv1CustomDrawSubItem(Sender: TCustomListView; Item: TListItem;
  SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean);
  var
  btn1: TSpeedbutton;
  leftpos: Integer;
begin
 Application.ProcessMessages;
  if SubItem = 1 then
  begin
    lv1.Items.BeginUpdate;
    leftpos := Lv1.Column[1].Width ;
    btn1 := TSpeedButton.Create(Self);
    with btn1 do
    begin
      Parent := lv1;
      Caption := 'Kriter';
      Left := leftpos;
      Top := (Item.Index +1) * (Lv1.Height div Lv1.VisibleRowCount);
      Width := Lv1.Column[2].Width;
      OnClick := MessageClick;
   end;
   leftpos := Lv1.Column[1].Width +Lv1.Column[2].Width ;
   btn1 := TSpeedButton.Create(Self);
   with btn1 do
    begin
      Parent := lv1;
      Caption := 'Sil';
      Left := leftpos;
      Top := (Item.Index+1) * (Lv1.Height div Lv1.VisibleRowCount);
      Width := Lv1.Column[3].Width;
      OnClick := MessageClick;//Burada istediğniz olayı çağırabilirsiniz.
   end;
   lv1.Items.EndUpdate;
  end;

end;  
Gruplama ile ilgili elimde bir örnek vardı. Bulabilirsem size gönderirim.
Tşk ederim.. Bunu deniycem, ancak biraz karışık geldi bana :) yine de deniycem.. sagolun..
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: ListView de Button oluşturma..

Mesaj gönderen neu84 »

adnansirca
verdiginiz kodu çalştırdım.. tSpeedButton lara Undeclared identifier dedi, Tbutton yaptım onları, sonrada
şu satırda hata verdi.
OnClick := MessageClick;//Burada istediğniz olayı çağırabilirsiniz.

hata kodu mesajı bu..

Kod: Tümünü seç

[DCC Error] Unit1.pas(146): E2003 Undeclared identifier: 'MessageClick'
MessageClick yerine OnClick:=Form2.show; yaptım yine hata bi hata verdi.. Burada istediginiz olayı çagırabilirsiniz derken nasıl bir kullanımdan bahsediyosunuz anlayamadım ben.. bi örnek verirmisniz lütfen..
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Re: ListView de Button oluşturma..

Mesaj gönderen adnansirca »

uses kısmına Buttons unitini dahil ettiğinizde button veya speedbutton u algılayacaktır. (Undeclared ... hatası)
MessageClick haricen tanımladığım bir procedure.
Farkedeceğinizi düşünerek açıklama yapmamıştım.
Örnek procedur aşağıdadır. Kendinize göre uyarlayabilirsiniz.
unitin ilgilii yerlerine aşağıdaki kodu yazın.

Kod: Tümünü seç

 
type
  TForm1 = class(TForm)

    ..............................
    
   procedure MessageClick(Sender : TObject);

...............
procedure TForm1.MessageClick(Sender: TObject);
begin
   ShowMessage('Merhaba Dünya');
end; 
Buttonlar için runtime da yordam hazırlama ile ilgili forumda arama yapabilirsiniz.
Yine de yapamazsanız, örnek bir proje hazırlayıp gönderirim.
İyi çalışmalar.
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: ListView de Button oluşturma..

Mesaj gönderen neu84 »

adnansirca yazdı:uses kısmına Buttons unitini dahil ettiğinizde button veya speedbutton u algılayacaktır. (Undeclared ... hatası)
MessageClick haricen tanımladığım bir procedure.
Farkedeceğinizi düşünerek açıklama yapmamıştım.
Örnek procedur aşağıdadır. Kendinize göre uyarlayabilirsiniz.
unitin ilgilii yerlerine aşağıdaki kodu yazın.

Kod: Tümünü seç

 
type
  TForm1 = class(TForm)

    ..............................
    
   procedure MessageClick(Sender : TObject);

...............
procedure TForm1.MessageClick(Sender: TObject);
begin
   ShowMessage('Merhaba Dünya');
end; 
Buttonlar için runtime da yordam hazırlama ile ilgili forumda arama yapabilirsiniz.
Yine de yapamazsanız, örnek bir proje hazırlayıp gönderirim.
İyi çalışmalar.

Tşk ederim.. Denedim ancak bi sonuca ulaşamadım, Rica etsem yapıcagınız örnek proje çok zamanını almayacaksa yapabilirmisiniz..
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: ListView de Button oluşturma..

Mesaj gönderen neu84 »

@adnansirca

tamamdır çalıştırabildim tşk ederim.. Düzenlemeye çalışıcam istedigim gibi umarım yapabilirim..
Cevapla