Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Bu listeyi hangi komponentle yapabilirim?
#11
(24-05-2019, Saat: 10:26)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Bu tarz spesifik durumlar için kendinize özgü komponent mantığı oluşturmanızda büyük fayda var. Çünkü piyasadaki hiçbir komponent bir adisyon menüsü seçmeye yönelik tasarlanmadı.

Benim önerim şu şekilde;

Her stok grubunu bir groupbox içerisinde çalışma anında oluşturun.
Her stok kartını bir buton olarak bağlı olduğu groupbox'ın içinde çalışma anında oluşturun.
Her stok kartının OnClick olayında seçtim/bıraktım mantığında çalışacak bir fonksiyon ile bağlayın ve içerisinde tutacağınız bilgi ile (Tag olabilir veya başka bir alan) hangi butona basıldığını tespit edin.
Arayüz iyileştirmesi için Layout komponentlerini ve Alignment özelliklerini kullanın.

Aşağıdaki gibi CxCheckListBox ekleme yapıp DrawItem 'da grup başlıklarını  belirgin yaptım. ilave olarak gruplar secildiğinde grup altındaki işlemleride sectirdim v.s.  aşağıda paylaşıyorum. Herkese ilgisinden dolay teşekkür ederim. Big Grin

procedure TForm5.Button1Click(Sender: TObject);
var grb:string;
begin

  Q_Temp2.First;
  clbListe.Items.BeginUpdate;
  while not Q_Temp2.Eof do
  begin
    if grb<>Q_Temp2ITEMGRUPADI.AsString then
    Begin
     with clbListe.Items.Add do
     begin
      grb:= Q_Temp2ITEMGRUPADI.AsString;
      //clbListe.AddItem('Grup : '+grb);
      Text := '[ Grup : '+grb+' ]';
      Tag := -1*Q_Temp2ITEMGRUPno.AsInteger;
     end;
    End;

    with clbListe.Items.Add do
     begin
       Text := '     '+Q_Temp2ITEMADI.AsString;
       Tag := Q_Temp2ITEMno.AsInteger;
     end;

    Q_Temp2.Next;
  End;
  clbListe.Items.EndUpdate;

end;

procedure TForm5.clbListeDrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  ACanvas: TcxCanvas;
  AText: string;
  ATextRect: TRect;
  AGlyphWidth: Integer;
  AListBox: TcxCheckListBox;
  ACheckBmp: TBitmap;
  ACanvasFont: TFont;
  AItemState: TcxCheckBoxState;
  AItemEnabled: Boolean;
  fontboyut:integer;
begin
  AListBox := (Control as TcxCheckListBox);
  ACanvas := AListBox.InnerCheckListBox.Canvas;
  ACanvasFont := ACanvas.Font;
  fontboyut:=ACanvasFont.Size;
  if AListBox.Items[index].Tag<0 then
  begin
    ACanvasFont.Color:=clBlue;
    ACanvasFont.Style:=ACanvasFont.Style+[fsbold];
    ACanvasFont.Size:=9;
  end
  else
  begin
   ACanvasFont.Color:=clblack;
   ACanvasFont.Style:=ACanvasFont.Style-[fsbold];
   ACanvasFont.Size:= fontboyut;
  end;
  AItemState := AListBox.Items[Index].State;
  AItemEnabled := AListBox.Items[Index].Enabled;
  ACanvas.Brush.Color := clwhite;//arka plan rengi
  ACanvas.FillRect(Rect);
  AText := AListBox.Items[Index].Text;
  ATextRect := Rect;
  ACanvas.DrawTexT(AText, ATextRect, 0);
  ACanvasFont.Size:= fontboyut;
end;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  while ile sifre kontrolunu nasıl yapabilirim. burak 8 774 04-03-2019, Saat: 14:31
Son Yorum: ChangeoveR
  Veritabanında hangi parasal değer olmalı Lord_Ares 4 700 13-02-2019, Saat: 00:18
Son Yorum: Bay_Y
  AES 256 ile Şifreleme nasıl yapabilirim? Cyb3r 7 1.725 26-11-2018, Saat: 13:17
Son Yorum: r3n4m3
  Hangi sürüm delphi kullanmalıyım ? seci20 9 1.154 14-07-2018, Saat: 18:42
Son Yorum: SercanTEK
  Hangi veritabanı kullanılmalı? Halil Han Badem 23 3.656 23-10-2017, Saat: 13:08
Son Yorum: Abdullah ILGAZ



Konuyu Okuyanlar: 1 Ziyaretçi