Herkesin geçmiş bayramını gönülden kutlarım arkdaşlar.
Ben TListView içinde Combobox nasıl eklerim bu konuda yardımcı olusanız sevinirim örnekli olursa süper olur.
örnek
http://www.c-sharpcorner.com/UploadFile ... ewImg1.gif
TListView içinde Combobox nasıl kullanırım
Re: TListView içinde Combobox nasıl kullanırım
Kod: Tümünü seç
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, stdctrls, ComCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ListView1: TListView;
ComboBox1: TComboBox;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FOldListviewWindowProc: TWndMethod;
FListviewHeaderHeight: Integer;
Procedure ListviewWindowproc(var Message: TMessage);
procedure AttachCombobox;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses commctrl;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
r: TRect;
ListviewHeader: HWND;
begin
for i:= 1 to 10 do
with listview1.Items.add do begin
caption := format('Item %d',[i]);
subitems.add( format('SubItem %d.1',[i]) );
subitems.add( format('SubItem %d.2',[i]) );
end;
ListviewHeader := GetWindow( listview1.Handle, GW_CHILD );
GetWIndowrect( ListviewHeader, r );
FListviewHeaderHeight := r.Bottom - r.top;
FOldListviewWindowProc:= listview1.WindowProc;
listview1.WindowProc := ListviewWindowproc;
AttachCombobox;
end;
procedure TForm1.AttachCombobox;
var
r: TRect;
wnd: HWND;
begin
fillchar( r, sizeof(r), 0 );
ListView_GetSubItemRect( listview1.Handle, 4, 1, LVIR_BOUNDS, @r );
combobox1.Parent := listview1;
combobox1.BoundsRect := r;
combobox1.Visible := r.Top >= FListviewHeaderHeight;
end;
procedure TForm1.ListviewWindowproc(var Message: TMessage);
begin
FOldListviewWindowProc( Message );
Case Message.Msg Of
WM_VSCROLL, WM_HSCROLL:
If Message.WParamLo <> SB_ENDSCROLL Then
AttachCombobox;
End;
end;
end.
gideceği limanı bilmeyen gemiye hiçbir rüzgar yardım edemez...
Kod: Tümünü seç
Delete from hayat where cins="çıkarcılar"
Re: TListView içinde Combobox nasıl kullanırım
Merhaba.. iyi bayramlar.
(1) Eğer ListView'inin içeriği sağa sola scrollbar oluşmayan türden bir bütünlük içindeyse yine bu forumda bu linkte örnekli olarak verdim.
(2) Yukarıdaki @Senat0r'ün verdiği kodu kendi kod süzgecimden geçirip aşağıdaki şekilde yeniden düzenledim. Çünkü satır (ITEM) değiştiğinde combobox'un yeriyle ilgili bir değişiklik yer neresi göremedim. Denediğimde de sonuç alamadım.
(1) Eğer ListView'inin içeriği sağa sola scrollbar oluşmayan türden bir bütünlük içindeyse yine bu forumda bu linkte örnekli olarak verdim.
(2) Yukarıdaki @Senat0r'ün verdiği kodu kendi kod süzgecimden geçirip aşağıdaki şekilde yeniden düzenledim. Çünkü satır (ITEM) değiştiğinde combobox'un yeriyle ilgili bir değişiklik yer neresi göremedim. Denediğimde de sonuç alamadım.
Kod: Tümünü seç
USES commctrl;
Var
FOldListviewWindowProc: TWndMethod;
FListviewHeaderHeight: Integer;
procedure AttachCombobox(ComboBox:TComboBox; ListView:TListView; iItem, iSubItem: Integer);
var
r : TRect;
begin
fillchar( r, sizeof(r), 0 );
ListView_GetSubItemRect( listview.Handle, iItem, iSubItem, LVIR_BOUNDS, @r );
combobox.Parent := listview;
combobox.BoundsRect := r;
combobox.Visible := r.Top >= FListviewHeaderHeight;
end;
procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
begin
AttachCombobox( ComboBox1, ListView1, Item.Index, 1 );
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i : integer;
r : TRect;
ListviewHeader: HWND;
begin
for i := 1 to 10 do ComboBox1.Items.Add( Format( 'Seçenek-%d', [i]) );
ListView1.ViewStyle := vsReport;
for i := 1 to 4 do
With ListView1.Columns.Add do
begin
Caption := Format( 'Sütun-%d', [i]);
Width := 100;
end;
for i:= 1 to 10 do
with listview1.Items.add do begin
caption := format('Item %d',[i]);
subitems.add( format('SubItem %d.1',[i]) );
subitems.add( format('SubItem %d.2',[i]) );
end;
ListviewHeader := GetWindow( listview1.Handle, GW_CHILD );
GetWIndowrect( ListviewHeader, r );
FListviewHeaderHeight := r.Bottom - r.top;
FOldListviewWindowProc := listview1.WindowProc;
AttachCombobox( ComboBox1, ListView1, 1, 1 );
end;
Re: TListView içinde Combobox nasıl kullanırım
çok teşekkür ederim mrmarman