ソスソスDelphi Q & Aソスfソスソスソスソス
|
ソスEC/C++
ソスEDelphi
ソスEVisual BasicソスソスソスSソスソス
ソス@(VB2-VB6ソスソス.NETソスソスソスp)
ソスEVisual Basic(VB2-VB6)
ソスEVisual Basic .NET
ソスEVisual C++
ソスヘゑソスソス゚まゑソスソスト。
DelphiソスソスWindowsソスvソスソスソスOソスソスソス‾ソスソスソスOソスソス10ソスソスソスレで右ソスソスソスソスソスソスソスソスソスソスワゑソスソスが、ソスソスしソスソスソスソスソス閧「ソスソスソスワゑソスソスB
TListViewソスソスvsReportソス`ソスソスソスソスgソスソスソスACheckBoxesソスソスTrueソスノゑソスソストゑソスソスワゑソスソスB
ソス`ソスFソスbソスNソス{ソスbソスNソスXソスソスuソス`ソスFソスbソスNソスネゑソスソスvソスAソスuソス`ソスFソスbソスNソスソスソスソスvソスAソスuソス`ソスFソスbソスNソスsソスツ(ソスOソスソスソス[ソスFソスjソスvソスソス
ソスソスソスソスソスソスソスニ考ソスソスソスワゑソスソスソスソスB
ソスTソスソスソスvソスソスソスソスTソスソスソストゑソスソスソスツゑソスソスソスネゑソスソスソスソスソスソスフで、ソスしソスソスソスソスソス@ソスソスソスソスソスネゑソスソスフゑソスソスニゑソスソスソスソスソス゚ゑソスソスソスソストまゑソスソスソスソスソスソスA
ImageListソスソスStateImagesソスノ設定しソスAStateIndexソス操作すソスソスホ可能ソスネゑソスソスニゑソスmソスソスAソスソスソスソストみまゑソスソスソスソスB
ソス¥ソスソスソスソスソス黷スソスソスソスソス鞫懶ソスフチソスFソスbソスNソス{ソスbソスNソスXソスソスNソスソスソスbソスNソスソスソスソスニ、ソス`ソスFソスbソスNソスネゑソスソスソスソスソスソスソスニ変会ソスソスソスソスト、
ソスソスソスソスソスソスソスソスソス謔、ソスノ鯉ソスソスソスソスソスソスソスナゑソスソスソスソスcソスソスソス閧ェソスBソスNソスソスソスbソスNソスソスソストゑソスAソス`ソスFソスbソスNソスフ擾ソスヤ変会ソスソスソスソスソスソスソスソスソスソスソスソスフでゑソスソスB
ソスソスソスソスネゑソス Item.Checked=FalseソスATrueソスAFalseソスATrueソスAソスcソスニ変会ソスソスソスソスソスヘゑソスソスナゑソスソスソスソスA
ソスネゑソスソスソス FalseソスATrueソスATrueソスATrueソスAFalseソスATrueソスATrueソスATrueソスAFalseソスATrueソスAソスcソスニなゑソスワゑソスソスB
ソス¥ソスソスソスソスソスソスソスフ厄ソス閧ゥソスAソス`ソスFソスbソスNソスノ撰ソスソスソスソスソスンゑソスソストゑソスソス髟費ソスソスソスフ厄ソス閧ゥソスニ思ソスソスソスワゑソスソスソスソスソスソスAソスソスソスソスソスソスワゑソスソスソスナゑソスソスソスソスB
ソスソスソスソスソスソスソスソスソスソスソスネ使ソスソスソスソスソスソスソスソストゑソスソスソスフでゑソスソス蛯、ソスソスソスBソスナゑソス皷橸ソスNソスソスソスbソスNソスノ費ソスソスソスソスヘゑソスソスソスソスナゑソスソスソスヒ…ソスB
ソスネ会ソスソスソスソス¥ソス[ソスXソスフ費ソスソスソスソスナゑソスソスBソスソスソスロには托ソスソスフ擾ソスソスソスソスソスソスソスソスソストまゑソスソスB
Const
ResultSII=3; // ソスXソスeソス[ソス^ソスXソスソスiソス[ソスソスソスソスSubItemソスソスIndex
M_kanou='ソスツ能'; // ソスXソスeソス[ソス^ソスXソスフ各ソス¥ソスソスソスソスe
M_huka= 'ソスsソスソス'; //
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
// SubItemソスフ撰ソスソスソスResultSIIソスワで達ソスソスソストゑソスソスネゑソスItemソスヘグソスソスソス[ソスソス
if Item.SubItems.Count<ResultSII+1 then
begin
Item.StateIndex:=2;
exit;
end;
// SubItems[ResultSII]ソスソスソスuソスツ能ソスvソスソスItemソスソスStateIndexソスソスCheckedソスノ搾ソスソスせソスAソスソスソスソスネ外ソスヘグソスソスソス[ソスソス
if Item.SubItems[ResultSII]=M_kanou then
if Item.Checked then Item.StateIndex:=1
else Item.StateIndex:=0
else
Item.StateIndex:=2;
end;
procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
begin
// SubItemソスフ撰ソスソスソスResultSIIソスワで達ソスソスソストゑソスソスネゑソスItemソスヘ厄ソスソスソスソスソスソスChecked:=False
if Item.SubItems.Count<ResultSII+1 then Item.Checked:=False
else
//SubItems[ResultSII]ソスソスソスuソスツ能ソスvソスネ外ソスソスItemソスヘ、Checked=Trueソスノゑソスソスソスソスネゑソス
if Item.SubItems[ResultSII]<>M_kanou then Item.Checked:=False;
end;
TListViewソスソスvsReportソス`ソスソスソスナチソスFソスbソスNソス{ソスbソスNソスXソスフ擾ソスヤゑソス
ソスE ソスuソス`ソスFソスbソスNソスネゑソスソスvソスAソスuソス`ソスFソスbソスNソスソスソスソスvソスAソスuソス`ソスFソスbソスNソスsソスツ(ソスOソスソスソス[ソスFソスjソスv ソスワゑソスソスヘ、
ソスE ソスuソス`ソスFソスbソスNソスネゑソスソスvソスAソスuソス`ソスFソスbソスNソスソスソスソスvソスAソスuソス`ソスFソスbソスNソスsソスツ(ソスOソスソスソス[ソスFソスjソスvソスAソスuソス`ソスFソスbソスNソスソスソスソスソスiソスOソスソスソス[ソスFソスjソスv
ソスフようソスノゑソスソスソスソスソスソスニゑソスソスソスソスソスソスvソスヘ鯉ソスソス¥ソスソスソスソスニ思ソスソスソスフでゑソスソスソスソスAソスソスソスソスソスソスソスソスソスソスソスソスナは鯉ソスソスツゑソスソスソスワゑソスソスソスナゑソスソスソスソスB
ソスヌのようソスノゑソスソスソスホ良ゑソスソスフゑソスソスAソスソスソスソスソストゑソスソスソスソスソスソスソスソスソスホ幸ソスソスソスナゑソスソスB
ソス示ゑソスソス黷スソス¥ソス[ソスXソスナゑソスListViewソスソスソスソスソスソスソスソスソスソスツゑソスソスト使ソスソスソスソスソスノなゑソスネゑソスソスソスソスヌ。
SubItems[ResultSII]ソスフ「ソスツ能ソスvソスニ「ソスsソスツ」ソスフ切ゑソスヨゑソスソスヘどゑソスソスソスソスソストゑソスフ?
>ソスソスソスソスソスソスソスソスソスソス
ソスソスソスソスソスAソスミどゑソスソスソスソスソスツゑソスソスニゑソスソスソスソスソスソスニは厄ソスソスソスソスナゑソスソスBCPUソスソス1.2GHzソスフ鯉ソスPCソスソスソスソスソスソスナゑソスソス蛯、ソスソスソスB
ソスソスソスソスニゑソスAソスワゑソスソスソスソスレ(ソスソスItemソスナゑソスソスソスソスソスナゑソスソスソスヒ?ソスjソスソスソスソスソス8ソスツ抵ソスソスxソスソスソスソスソスソスソスソストなゑソスソスソスソス轤ゥソスネ?
ソスネゑソスソスAソスソスソスフ搾ソスソスレゑソスIDEソスナ趣ソスソスソスヘゑソスソスワゑソスソスソスソスBソスソスソスレ撰ソスソスヘ最托ソスソス50ソスツにゑソスソスソスツゑソスソスナゑソスソスB
ソスXソスeソスbソスvソスソスソスsソスソスソスソスソストみゑソスニ会ソスソスか描ソス謔オソストゑソス謔、ソスナ、ソスNソスソスソスbソスNソスソスソス黷スソスソスソスレゑソスソスソスソスソス2ソス`3ソスソス`ソスソスソス
ソスソスソストまゑソスソスソスソスB
ソスレゑソステらすソスニ確ソスソスソスノ、ソスNソスソスソスbソスNソスソスソス黷スソスソスソスレゑソスソスソスソスヘゑソスソスフ瞬ソスヤゑソスソスソスツゑソスソストゑソスソスソス謔、ソスノ奇ソスソスソスソスワゑソスソスB
ソスソスソスソスソスソスソスヘどゑソスソスソスソスソスソスソスソスノゑソスソスソスラゑソスソスネのでゑソスソス蛯、ソスソスソスH
ソスuソスツ能ソスvソスニ「ソスsソスツ」ソスフ切ゑソスヨゑソスソスナゑソスソスソスソスAソスソスソスソスソスソスソスソスソスソスソスソスソスヘまゑソスソスソスソスソストゑソスソスワゑソスソスソスB
ソスuソスツ能ソスvソスヘ、ソスソスソス驛ソスCソスソスソスフ擾ソスソスソスソスソスソスIソスソスソスソスソスソスソスuソスソスソスソスソスvソスノ切ゑソスヨゑソスソスソスツゑソスソスナゑソスソスB
ソスuソスsソスツ」ソスソスuソスソスソスソスソスvソスヘ変会ソスソスソスソスワゑソスソスソスB
ListViewソスフチソスFソスbソスNソス{ソスbソスNソスXソスフ擾ソスヤは、StateIndexソスソスgソスソスソスト管暦ソスソスソスソスソストゑソスソスワゑソスソスB
ソスiMSDNソスノゑソスソスソス1ソスソスUncheckedソスソス2ソスソスCheckedソスソスソスニゑソスソスj
ソスソスソスソスノ、VCLソスソスCheckedソスソスStateIndexソスlソスフ値ソスソスハ々ソスノキソスソスソスbソスVソスソスソスソスソストゑソスソスソスフで、ソスbソスソスソスソス竄アソスソスソスソスソスネゑソスソストゑソスソスワゑソスソスB
ソスソスソスヌ、ソスソスソス黷シソス黷ェソスソスソスツゑソスソスソスソスソスソスト撰ソスソスソスソスソスソスソスヤゑソスソスXソスVソスソスソスソスネゑソスソス謔、ソスナゑソスソスヒ。
ソスソスソスソスソスソスCheckBoxesソスヘ外ソスソスソスト、StateIndexソスソスソスソスソスgソスソスソスト趣ソスソスOソスナ管暦ソスソスソスソスソスフゑソスソスヌゑソスソスフではなゑソスソスナゑソスソス蛯、ソスソスソスB
ソスツゑソスソスナに搾ソスソスソスソスソスノなりそソスソスソスネとゑソスソスソス:
ソスEOnCustomDrawItemソスヘ、ソスソスヤゑソスソスマゑソスソスソスソスソスuソスソスソスハ」ソスニゑソスソスト再描ソスソスフゑソスソス゚呼び出ソスソスソスソスソスソスフなので、ソスソスソスソスソスナ擾ソスヤゑソスマゑソスソスソスラゑソスソスナはゑソスソスソスワゑソスソスソスB
ソスEChangedソスヘソスソスXソスgソスソスソスレの擾ソスヤゑソスソスマゑソスソスニゑソスソスフ都ソスxソストび出ソスソスソスソスワゑソスソスiソス痰ヲソスホ、ソスソスソスXソスgソスフ選ソスソスソスマ更ソスソスソス驍セソスソスソスナゑソスソスソス続ゑソスソスト呼ばゑソスワゑソスソスjソスB
ソスネので、SubItemソスニゑソスCheckedソスソスソスマ更ソスソスソス黷スソスソスソスソスソスソスソストび出ソスソスソスソスソスニ会ソスソス閧キソスソスフは危険ソスB
ソスワゑソスソスAソスソスソスフ難ソスソスソスソスCheckedソスネどの擾ソスヤゑソスマ更ソスソスソスソスニ、ソスソスソスソスソストび出ソスソスソスノ陥ゑソスツ能ソスソスソスソスソスソスソスソスワゑソスソスB
ソスソスソス゚て使ソスソスソストみまゑソスソスソスソスソスソスAソスmソスソスソスノ具ソスソスソスソスsソスRソスナゑソスソスヒ。
ソスソスソスソスネ奇ソスソスソスソスナどゑソスソスナゑソスソス蛯、ソスH
procedure TForm1.FormCreate(Sender: TObject);
var
i,p: Integer;
str:string;
item:TListItem;
begin
ListView1.Checkboxes:=True;
for i := 0 to 10 - 1 do
begin
item := ListView1.Items.Add;
p := i mod 4;
case p of
0:str:='ソスソスソス`ソスFソスbソスN';
1:str:='ソス`ソスFソスbソスN';
2:str:='ソスソスホ厄ソスソス`ソスFソスbソスN';
3:str:='ソスソスホチソスFソスbソスN';
end;
item.Caption := str + IntToStr(i);
Item.StateIndex := p;
end;
end;
procedure TForm1.ListView1AdvancedCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
var DefaultDraw: Boolean);
begin
if item.StateIndex >= 2 then
ListView1.Canvas.Font.Color := clRed;
end;
procedure TForm1.ListView1ItemChecked(Sender: TObject; Item: TListItem);
begin
if item=nil then
Exit;
if item.StateIndex >= 2 then
begin
item.Checked := not Item.Checked;
item.Checked := (item.StateIndex mod 2 = 1);
end;
end;
>torソスソスソスソスAソスAソスhソスoソスCソスXソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスI
StateIndexソスナ管暦ソスソスソスソストゑソスニは思ソスソスソスソスソスソスワゑソスソスソスナゑソスソスソスソスBソスソスソスソスListViewソスRソスソスソスgソスソスソス[ソスソスソスナは、
ソスニゑソスソスソスソスbソスナゑソスソスソスヒ。
ソスナゑソスソスソスソスナ不ソスsソスソスソスソスソスソスソスソスソスソスソスソスフゑソスソスト、ソスソスソスソスソスソスソスソスソスVCLソスノバソスOソスソスソスソスソスソスじゑソスcソスB
ソスソスソスOソスナ管暦ソスソスニなゑソスニ、OnClickソスAOnMouseDownソスニゑソスソスgソスソスソスフでゑソスソスソスヒ。ソスソスソスソスgソスソスソスホ良ゑソスソスフでゑソスソス蛯、ソスH
ソスソスソスソスソスソスフ趣ソス@ソスネどゑソスソスソスソスpソスナゑソスソスソスフでゑソスソス蛯、ソスソスソスB
http://madia.world.coocan.jp/delphi/delphi_bbs/200805/200805_08050035.html
ソスソスソスソスソスソスノなりそソスソスソスネとゑソスソスソスDソスDソスDソスナゑソスソスソスソスAソスlソスXソスネ場合ソスノ呼び出ソスソスソスソスソスナゑソスソスうソスソスソスニは想ソス閧オソストまゑソスソスソスソスB
ソスソスソスACheckedソスフ変会ソスソスノゑソスソスソスト呼び出ソスソスソスソスソスCソスxソスソスソスgソスフ難ソスソスソスソスCheckedソスフ擾ソスヤゑソスマゑソスソスソスフは危険ソスネのでゑソスソスヒ。
ソス痰ヲソスホでゑソスソスソスソスAソスuソスソスソスソスフチソスFソスbソスNソス{ソスbソスNソスXソスフ擾ソスヤは変会ソスソスソスソスソスソスネゑソスソスvソスニゑソスソスソスソスソスソスソスナ、ソスソスLソスフコソス[ソスhソスソス
OnChangeソスソスソスソスソスソスOnChangingソスノ移ゑソスソスAAllowChangeソスpソスソスソスソスソス[ソス^ソスソスFalseソスノゑソスソスソスフはセソス[ソスtソスネのでゑソスソス蛯、ソスソスソスB
ソスネゑソスソスAソス]ソスvソスネ難ソスeソスソスソスソスソスソスソスソスソスソスソスソスLソスフコソス[ソスhソスナ趣ソスソスソスソスソスJソスソスヤゑソスソスワゑソスソスソスソスB
ListViewソスAMemoソスATimerソスAソス`ソスFソスbソスNソス{ソスbソスNソスXソス鞫懶ソスソスソスソス黷スImageListソスソスzソスuソスソスソストまゑソスソスB
ソスソスソスフ撰ソスソスハは…ソスヤ違いソスソスソスソスCheckedソスフ擾ソスヤ変会ソスソスソスソスソスソスソスソスソスソスソスソスソスソスニゑソスソスソスソスソスソスソスソスソスソスソスソスソスソスナゑソスソスソスソスiソスワ)
var
ItemChkd: Boolean;
StateIdx:Integer;
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Enabled:=False; //ソス^ソスCソス}ソス[ソスソス‾ソス゚てゑソスソスソス
Memo1.ScrollBars:=ssBoth;
ListView1.ViewStyle:=vsReport; //ListViewソスフ擾ソスソスソスソスソス
ListView1.Columns.Add;
ListView1.Checkboxes:=True;
ListView1.ReadOnly:=True;
ListView1.StateImages:=ImageList1;
ListView1.Items.Add.Caption:='ソスeソスXソスg'; //ソスeソスXソスgソスpソスソス1ソスツゑソスソスソスItemソスソスuソスソス
ListView1.Items[0].StateIndex:=0; //0=ソス`ソスFソスbソスNONソス鞫懶ソスA1=ソス`ソスFソスbソスNOFFソス鞫
ItemChkd:=not ListView1.Items[0].Checked; //Checkedソスフ変会ソスソスソスソスoソスp
StateIdx:=19; //StateIndexソスフ変会ソスソスソスソスoソスp
Timer1.Interval:=1; //ソス^ソスCソス}ソス[ソスnソスソス
Timer1.Enabled:=True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
LIC:Boolean;
LIS:Integer;
begin
LIC:=ListView1.Items[0].Checked;
LIS:=ListView1.Items[0].StateIndex;
if (ItemChkd<>LIC) or (StateIdx<>LIS) then
begin
Memo1.Lines.Add(IfThen(LIC,'True ','False ')+IntToStr(LIS));
ItemChkd:=LIC;
StateIdx:=LIS;
end;
end;
procedure TForm1.ListView1Changing(Sender: TObject; Item: TListItem;
Change: TItemChange; var AllowChange: Boolean);
var
StrC:String;
begin
case Change of
ctText: StrC:='ctText';
ctImage: StrC:='ctImage';
ctState: StrC:='ctState';
end;
Memo1.Lines.Add('Changing!! '+StrC);
end;
end.
>ImageListソスソスStateImagesソスノ設定しソスAStateIndexソス操作すソスソスホ可能ソスネゑソスソスニゑソスmソスソスAソスソスソスソストみまゑソスソスソスソスB
>ソス¥ソスソスソスソスソス黷スソスソスソスソス鞫懶ソスフチソスFソスbソスNソス{ソスbソスNソスXソスソスNソスソスソスbソスNソスソスソスソスニ、ソス`ソスFソスbソスNソスネゑソスソスソスソスソスソスソスニ変会ソス...
StateImagesソスノ指ソス閧オソスソスImageListソスフ抵ソスソスフ趣ソスソスソス鞫懶ソスソスソスネ会ソスソスフようソスノなゑソスソストゑソスソスソスニゑソスソスト、
0ソスヤ目:ソス`ソスFソスbソスNソスネゑソス
1ソスヤ目:ソス`ソスFソスbソスNソスソスソスソス
2ソスヤ目:ソスOソスソスソス[(ソス`ソスFソスbソスNソスネゑソス)
3ソスヤ目:ソスOソスソスソス[(ソス`ソスFソスbソスNソスソスソスソス)
ソスソスソスOソスフ画像ソスナチソスFソスbソスNソス{ソスbソスNソスXソスソス¥ソスソスソスソスソスソス鼾ソスACheckboxesソスvソスソスソスpソスeソスBソスソス Falseソスノゑソスソスト、ソスネ会ソスソスフコソス[ソスhソスナチソスFソスbソスNソスソスリり換ソスソスソスソスホゑソスソスソスソスB
ソスネゑソスソスACheckedソスvソスソスソスpソスeソスBソスヘチソスFソスbソスNソスフ有ソスソスソスフ費ソスソスソスノは使ソスソスソスネゑソスソスフで、StateIndexソスフ値ソスナ費ソスソス閧キソスソスB
type
TListView = class(ComCtrls.TListView)
private
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
end;
type
TForm1 = class(TForm)
ListView1: TListView;
......
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
const
ResultSII = 3;
M_Kanou = 'ソスツ能'; // ソス`ソスFソスbソスN ON/OFFソスマ更ソスソス
M_Fuka = 'ソスsソスソス'; // ソスOソスソスソス[ (ON/OFFソスヘゑソスソスフまゑソス)
// ソス`ソスFソスbソスNソスソスON/OFF
procedure TListView.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Item: TListItem;
begin
inherited;
Item := GetItemAt(X, Y);
if Item = nil then exit;
if Item.SubItems[ResultSII] = M_Kanou then begin
if htOnStateIcon in GetHitTestInfoAt(X, Y) then begin
if Item.StateIndex = -1 then Item.StateIndex := 0;
Item.StateIndex := 1 - Item.StateIndex;
end;
end;
end;
ソスソス ソスeItemソスソスStateIndexソスヘ、ソスソスソスレ設定時ソスノゑソスソス轤ゥソスソスソス゚セソスbソスgソスソスソストゑソスソスソスソスソスソスニ。
ソスソスソスuソスツ能ソスvソスソスソスソスuソスsソスツ」ソスノゑソスソスソスノは、Item.StateIndex := Item.StateIndex or 2;
ソスソスソスuソスsソスツ」ソスソスソスソスuソスツ能ソスvソスノゑソスソスソスノは、Item.StateIndex := Item.StateIndex and 1;
ソスソスLソスフソスソスXソスgソスソスソスAソスソスソスノとゑソスソスト肝心ソスネ擾ソスソスフコソスソスソスソスソスgソスソスソスソスソスソスヤ違えソスワゑソスソスソスソスBソスソスソスソスソスソスソスヘ、
ListView1.Items[0].StateIndex:=0; //0=ソス`ソスFソスbソスNOFFソス鞫懶ソスA1=ソス`ソスFソスbソスNONソス鞫
ソスナゑソスソスB
ソスソスソスソスソスソスソスI ソスソスソスソスソスソスニ擾ソスソスソスソスソスソスンゑソスソスソスソスヤゑソスソストまゑソスソスソスソスB
ソスソスソスソスソスソスソスソスソスソスナゑソスソスヒ!ソスI
ソスTソスソスソスvソスソスソスRソス[ソスhソスソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスIソスIソスI
ソスソスソスソスソスソスソスAソスソスソスソスソス_ソスナの趣ソスソスフ暦ソスソスソス超ゑソスソスソスソスeソスフようソスネ気ソスソスソスソスソスワゑソスソスフで、ソスソスソスホらくソスソスソスソスソスソスソスソスソストゑソスソスソスソスソスソスソスソスソス
ソスソスソスソスRソスソスソスソスソスgソスソスソスソスソスソスソスワゑソスソスB
>monaaソスソスソスソスAソスTソスソスソスvソスソスソスRソス[ソスhソスワで擾ソスソスソスソストゑソスソスソスソスソスソスソスソスト、ソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスI
ソスソスソスソスソスsソスRソスネゑソスソスニを理会ソスソスソストゑソスソスソスソスソスソスソスソストゑソスソス黷オソスソスソスナゑソスソスBソスソスlソスナ悩ソスソスナゑソスソスソスソスソスフでゑソスソスソスソスソスB
ObjectPascalソスvソスソスソスOソスソスソスソスソスソス¥ソスソスソスソスソスソスvソスfソスソスソスワゑソスナ暦ソスソスソスナゑソスソストゑソスソスネゑソスソスフで、ソスソスsソスソスsソスソスソスQソスlソスノなゑソスワゑソスソスB
ソスソスソスソスソスcソスソスソスソスソスStateIndexソスフ難ソスeソスノゑソスソスCheckedソスフ擾ソスヤ変会ソスソスノ撰ソスソスソスソスソスソスソスソスソスAソスソスソスソスノ搾ソスソスレの色ソスソスマゑソスソスソスA
ソスニゑソスソスソスソスTソスソスソスvソスソスソスナゑソスソスソスヒ?ソスH
ソスソスソスンまゑソスソスソスAソスmソスソスソスノプソスソスソスOソスソスソスソスソスソスソスフどゑソスソスソスCheckedソスフ擾ソスヤ変会ソスソス制鯉ソスソスソスソスソスフゑソスソスニゑソスソスソスソスロ托ソスソスソスソスソスフでゑソスソスソスソスA
ソスRソスソスヤのチソスFソスbソスNソス{ソスbソスNソスXソスソスヌゑソスソスソスソスソストゑソスソスワゑソスソス¥ソスソスソスソスソスソスソス驍ゥソスソスソスヌゑソスソスソスソスソストチソスFソスbソスNソス{ソスbソスNソスXソスソスソスNソスソスソスbソスN
ソスソスソス黷スソスソスソスニゑソスソスソスoソスソスソスソスフゑソスソスAソスニゑソスソスソスソスフゑソスソスソスソスハの課托ソスノなゑソスソストゑソスソストゑソスソスソスワゑソスソスcソスB
ソスソスソスフ、ソスソスソスフ、ソスAソスAソスソスoソスソスソスツ具ソスソスナ托ソスマ申ソスソスソス無ゑソスソスフでゑソスソスソスソスADelphi 6 Personalソスソスgソスpソスソスソストゑソスソスソスワゑソスソスト、
OnItemCheckedソスニゑソスソスソスソスCソスxソスソスソスgソスソスソスソスソスソスソスソスソスソスネゑソスソスフでゑソスソスcソスB
ソスソスソスラゑソスソスソスソスソスナは、Delphi 2009ソスソスソスソスフ新ソス@ソス¥ソスナはなゑソスソスソスソスニ(ソスOソスOソスソスソストゑソスソスが擾ソスソスネゑソスソスナゑソスソスjソスB
ソスソスDelphi 2009 ソスソスソスソスソス C++Builder 2009 ソスフ新ソス@ソス¥ - RAD Studioソスiソスソスソスハ)
http://pdf.openvista.jp/view/medium/p76-77/http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate1/JA/pdf/devcommon.pdf
ソスソス2ソスyソス[ソスWソスレゑソスOnItemCheckedソスノつゑソスソスト載ゑソスソストまゑソス
ソスソスソスソスソスソスソスソスソスソスソスソスソストゑソスソスソスソスソスソスソスソスソスソスフに奇ソスソスpソスナゑソスソスネゑソスソストゑソスソスンまゑソスソスソスB
ソスナゑソスOnItemCheckedソスCソスxソスソスソスgソスAソスCソスノなゑソスワゑソスソスBソス`ソスFソスbソスNソス{ソスbソスNソスXソスフクソスソスソスbソスNソスナ呼び出ソスソスソスソスAソスソスソスフ抵ソスソスナゑソス
Checkedソスフ変更ソスソスソスソスソスOkソスナゑソスソスソスAソスニゑソスソスソスソスソスフでゑソスソス蛯、ソスソスソスH
ソスソスソスニ、Checkedソスフ擾ソスヤ変会ソスソスソスStateIndexソスソス0,1ソスネら制ソスソスソスソスソスソスソスA2ソスネゑソス時OFFソスA3ソスネゑソス時ONソスニゑソスソスソスネゑソスホ、
item.Checked := not Item.Checked; ソスソスソスソスソスフ行ソスナ鯉ソスソスワゑソスソストゑソスソスワゑソスソス謔、ソスネ?ソスH
item.Checked := (item.StateIndex mod 2 = 1); ソスソス(item.StateIndex = 3); ソスナはダソスソスソスナゑソスソスソスソスH
ソスソスソスソスソスソスヘ、
item.Checked := not Item.Checked;
if item.StateIndex >= 2 then
item.Checked := (item.StateIndex mod 2 = 1);
ソスネゑソスAソスツゑソスソスツまゑソスソスソスソスソスソス謔、ソスネ気ソスソスソスソスソスソスフでゑソスソスソスソスcソスB
monaaソスソスソスソスフ意図ソスソスソストゑソスソス體ョソスソスニ、ソスソスソスフ具ソスソス゚てゑソスソス體ョソスがソスソスソスソストゑソスソスソスソス轤キソスンまゑソスソスソスB
ソスソスソスソスノゑソスソスソスソスソスニ疑ソスソスネゑソスナゑソスソスソスソスAOnCustomDrawソスナなゑソスOnAdvancedCustomDrawソスノはどゑソスソスソスソスソスソスソスソスソスソス_ソスソスソスソスソスソス
ソスフでゑソスソス蛯、ソスソスソスB
OnCustomDrawソスフヘソスソスソスvソスノゑソスソスニ、ソスuソスcソスfソスtソスHソスソスソスgソスフ描ソス謠茨ソスソスソス他のスソスeソス[ソスWソスiソスwソスiソスソスソスソスソスソスソスソスソス黷スソスニゑソスソスC
ソスワゑソスソスヘソスソスXソスgソスrソスソスソス[ソスフ描ソス謔ェソスソスソスソスソスソスソスソスソスニゑソスソスネど)ソスナゑソスソスソスsソスソスソスソスノは,OnAdvancedCustomDraw ソスCソスxソスソスソスgソスソス
ソスソスソスソスソスノ使ソスソスソスワゑソスソスBソスvソスニなゑソスソストゑソスソスワゑソスソスソスソスAソスソスソスソスユんかゑソスユゑソスナゑソスソスcソスB
ソス闌ウソスソスD7ソスネ会ソスソスソスソスソスソスソスソスフゑソスD7ソスナ難ソスソスソスmソスFソスソスソスワゑソスソスソスソスB
ソスソスソスソスナ難ソスソスしソスワゑソスソスソスソスヒ?
ListViewソスソスOSソスフバソス[ソスWソスソスソスソスソスフ撰ソスソスソスソスけまゑソスソスA
ソスソスソスソスソスソスソスナチソスFソスbソスNソスCソスソスソス[ソスWソスソス成ソスソスソスソスネゑソスAソスソスソスソスソスソスソスソスネ単ソスソスソスソスソスソスソスワゑソスソスソスB
ソスソスソスソスソスヤゑソスソスソスソスソスソスフでコソスソスソスソスソスgソスヘ読ゑソスナまゑソスソスソスAソスワゑソスソスソスナ暦ソスソスワゑソスソスB
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, CommCtrl;
type
TForm1 = class(TForm)
ListView1: TListView;
procedure FormCreate(Sender: TObject);
procedure ListView1AdvancedCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
var DefaultDraw: Boolean);
private
{ Private ソス骭セ }
procedure ListViewWindowProcEx(var Message: TMessage) ;
procedure ListView1ItemChecked(Item: TListItem);
public
{ Public ソス骭セ }
end;
var
Form1: TForm1;
OriginalListViewWindowProc:TWndMethod;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i,p: Integer;
str:string;
item:TListItem;
begin
OriginalListViewWindowProc := ListView1.WindowProc;
ListView1.WindowProc := ListViewWindowProcEx;
ListView1.Checkboxes:=True;
for i := 0 to 10 - 1 do
begin
item := ListView1.Items.Add;
p := i mod 4;
case p of
0:str:='ソスソスソス`ソスFソスbソスN';
1:str:='ソス`ソスFソスbソスN';
2:str:='ソスソスホ厄ソスソス`ソスFソスbソスN';
3:str:='ソスソスホチソスFソスbソスN';
end;
item.Caption := str + IntToStr(i);
Item.StateIndex := p;
item.Checked := not Item.Checked; //ソスソスソスソスソスソスソス‾ソス¥
item.Checked := not Item.Checked; //ソスソスソスソスソスソスソス‾ソス¥
end;
end;
procedure TForm1.ListView1ItemChecked(Item: TListItem);
begin
if item=nil then
Exit;
if item.StateIndex >= 2 then
item.Checked := (item.StateIndex mod 2 = 1);
end;
//This code was copyed from...
//http://delphi.about.com/od/delphitips2007/qt/listviewchecked.htm
procedure TForm1.ListViewWindowProcEx(var Message: TMessage) ;
var
listItem : TListItem;
begin
if Message.Msg = CN_NOTIFY then
begin
if PNMHdr(Message.LParam)^.Code = LVN_ITEMCHANGED then
begin
with PNMListView(Message.LParam)^ do
begin
if (uChanged and LVIF_STATE) <> 0 then
begin
if ((uNewState and LVIS_STATEIMAGEMASK) shr 12) <> ((uOldState and LVIS_STATEIMAGEMASK) shr 12) then
begin
listItem := listView1.Items[iItem];
if listItem.StateIndex >= 2 then
ListView1ItemChecked(listItem);
end;
end;
end;
end;
end;
//original ListView message handling
OriginalListViewWindowProc(Message) ;
end;
procedure TForm1.ListView1AdvancedCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
var DefaultDraw: Boolean);
begin
if item.StateIndex >= 2 then
ListView1.Canvas.Font.Color := clRed;
end;
end.
>monaaソスソスソスソスAソスfソスソスソスソスソスリゑソスヤゑソスソスノ具ソスソスソスソスワゑソスソスソスソスBソスソスソスZソスソスソスソスソスニゑソスソス恐ソスkソスナゑソスソスB
ソスワゑソスソスソスソス告でゑソスソスソスソスAソスソスソスしソスワゑソスソスI
ソスソスStateImagesソスソスソスン抵ソス http://sakuratan.ddo.jp/imgboard/img-box/img20100327224430.png
ソスソスヤ擾ソスヘクソスソスソスbソスNソスソスソストチソスFソスbソスNソスソスソスソスソストみまゑソスソスソスソスBソスuソスソスホ」ソスネ外ソスフチソスFソスbソスNONソス^OFFソスソスソスRソスナゑソスソスB
ソスソス item.Checked := not Item.Checked; //ソスソスソスソスソスソスソス‾ソス¥
ソスソスソスフ包ソスソスソスソスソス1ソスツコソスソスソスソスソスgソスAソスEソスgソスソスソストみゑソスニ、ソスuソスソスホ」ソスネ外ソスフチソスFソスbソスNソスソスヤゑソスソスソスソス]ソスソスソスワゑソスソスB
2ソスツとゑソスRソスソスソスソスソスgソスAソスEソスgソスソスソストみゑソスニ、ソスソスホチソスFソスbソスNソスフチソスFソスbソスNソス{ソスbソスNソスXソスソスソスソスソスナゑソスソスワゑソスソスiソスHソスj
1ソスソスNソスソスソスbソスNソスソスソスソスホ出ソスソスソスソスソスワゑソスソスB
ソスソスStateImagesソスン抵ソスソス http://sakuratan.ddo.jp/imgboard/img-box/img20100327224545.png
ソスcソスOソスネゑソスソスソス`ソスFソスbソスNソス{ソスbソスNソスXソス鞫懶ソスソスソスソスソスフ擾ソスヤのまま変会ソスソスソスソスワゑソスソスソスcソスB
ソスソスソスソスソスソスソスソスソスナチソスFソスbソスNソスCソスソスソス[ソスWソスソス成ソスソスソスソスネゑソスAソスソスソスソスソスソスソスソスネ単ソスソスソスソスソスソスソスワゑソスソスソスB
ソスソスソスソスソスAソスソスソス゚ゑソスソス邇ゥソスソス鞫懶ソスソスgソスソスソストゑソスソスソスワゑソスソスcソスCソスソスソス[ソスWソスニは画像ソスフゑソスソスニでゑソスソスソスヒ?
ソスソスソスソストゑソスソスソスソスソスソスソスソスソスソスソスソスフサソスソスソスvソスソスソスヘ趣ソスソスフ暦ソスソスソスソスヘるかソスノ抵ソスソスソスソストゑソスソスワゑソスソスB
ListViewWindowProcExソスニゑソスソスソスソスフゑソスOnItemCheckedソスソスヌ会ソスソスソスソス驍スソス゚とゑソスソスソスソスフは想ソスソスソスナゑソスソスソスフでゑソスソスソスソスA
ソスE listView1.Items[iItem]; ソスソスソスソスソスソスiItemソスソスソストどゑソスソスソスソスソスソスソスソスト暦ソスソスソスソスフでゑソスソス蛯、ソスHソスH
ソスE Item.Checkedソスヘ擾ソスソスソスソスン抵ソスナ必ソスソスFalseソスノなゑソスヘゑソスソスネのに、ソスネゑソスFalseソスソスTrueソスソスソスソスンに包ソスソスヤのゑソスソスHソスH
ソスソスソスソスソスソスネゑソスソスソスソスニゑソスソス轤ッソスナゑソスソスB
ソスRソス[ソスhソスフ一部ソスソスマ更ソスソスソスト擾ソスソス]ソスソスソス體ョソスソス得ようソスニ趣ソスソスsソスソスソスしソスワゑソスソスソスソスソスソスAソスソスOソスGソスソスソス[ソスソスソスoソストゑソスソスワゑソスソスA
ソスソスソスワゑソスソスsソスソスソスワゑソスソスソスナゑソスソスソスソスcソスB
ソスソスソスソスソスソスソスソスソスフサソスソスソスvソスソスソスソスソスソスソスソスソスソスネゑソスソストゑソスソスンまゑソスソスソスB
>ソスソスソスソスソスソスソスソスソスソスAソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスソスソスI
ソスソスソスソスソスワゑソスソスI ソスソスソスメゑソスソストゑソスソスソスソスソスソスソスニバソスbソス`ソスソスソスソスソスソスソスワゑソスソスIソスI
ソスソスソスソスヘゑソスソスソスネ奇ソスソスソスソスナゑソスソスB
http://sakuratan.ddo.jp/imgboard/img-box/img20100328083657.png
ソスソスソスソスソスソスOソスソスソスソスソスソスソスワゑソスソスが、ソスソスヘゑソスCheckboxesソスvソスソスソスpソスeソスBソスソスTrue/Falseソスノは影ソスソスソスソスソスソスワゑソスソスソスB
ソスソスソスソスソスAソスソスソスソスソスヘ通擾ソスフ包ソスソスムのようソスソスTForm1.FormCreateソス頭に、TListView.MouseDownソスソスソスソスフ会ソスソスノ趣ソスソスソスソスソス
ソスソスソストゑソスソスワゑソスソスAソスRソスソスソスpソスCソスソスソスソスソストゑソスソスソスソスNソスソスソスソスソスGソスソスソス[ソスソスoソスソスソスソスソスAソスニゑソスソスソスソスソスヤでゑソスソスソスソスフでゑソスソスネゑソスYソスンまゑソスソスソスソスB
functionソスニゑソスソスヘ撰ソスノ置ソスソスソスKソスvソスソスソスソスソスソスAソスニゑソスソスソスソスLソスqソスソスvソスソスソスoソスソスソスAソスソスソスム替ゑソスソスソスソスニゑソスソス動ソスソスソスoソスソスソスワゑソスソスソスソスI
ソスソスソスフ変てゑソスソスソスソスネ「ResultSIIソスvソスソスlソスソスソスソスソストゑソスソスソスソスソスソスソスソスト、ソス{ソスソスソスノ奇ソスソスモ奇ソスソスソスソスナゑソスソスB
ソスソスソスソスソス^ソス竄ェソスソスソスソスワゑソスソスBソスソスソスソスホゑソスソスソスナゑソスソスンまゑソスソスソスB
ソスE TListView.MouseDownソスフ位置ソスソスTForm1.FormCreateソスソスソスOソスネゑソスホ良ゑソスソスAソスニゑソスソスソスソスソスソスニでゑソスソス蛯、ソスソスソスB
ソスE overrideソスニゑソスソスソスソスソス@ソスiソスナゑソスソスソスヒ?ソスjソスナなゑソスソスAソスハ擾ソスソスOnMouseDownソスノ難ソスソスソス驍アソスニは出ソスソスソスソスフでゑソスソス蛯、ソスソスソスB
ソスネゑソスソスAListViewソスフゑソスソスソスソスソスソスソスソスソスソスgソスソスソスソスソスヘ趣ソスソスフようソスネ擾ソスソスSソスメほど欲ソスソスソストゑソスニ撰ソスソスソスソスソスソスワゑソスソスB
ソスナゑソスソスフで、ソスFソスソスソスからいソスソスソスソスソスソスソスソスソスmソスbソスソスLソスソスソスネ趣ソスソスYソスニゑソスソスト残ソスソスソスソスソス゚、ソスソスソスソスソスソスソスソスRソス[ソスhソスソスト用ソスソスソスソスソストゑソスソスソス
ソスTソスソスソスvソスソスソスソスAソスbソスvソスソスソスソスソスソスソスニ思ソスソスソスワゑソスソスBmonaaソスソスソスから教ソスソスソストゑソスソスソスソスソスソスソスソスソスソスmソスbソスソスソスソスナに撰ソスソス闕橸ソスソスナまゑソスソスB
ソスネんかゑソスソスフトソスsソスbソスNソスソスソスvソスソスソスOソスソスソスソスソスソスソスXソスgソスソスソス轤ッソスノなゑソスソスソスソス痰「ソスワゑソスソスソスソスAソスソスソスソスソスナゑソスソスソスヒ?
TForm1 ソスフクソスソスソスXソス骭セソスソスソスソスO(ソスソス)ソスソス TListview ソスフクソスソスソスXソス骭セソスソスuソスソスソスソスソスニ。
ソスソスソスソスソスソスソスソス TListView.MouseDown ソスソス TForm1.FormCreate ソスフ位置ソスヨ係ソスヘどゑソスソスナゑソスソスソスワゑソスネゑソスソスB
OnMouseDownソスnソスソスソスhソスソス ソスソス MouseDownソスソスoverrideソスヘ、ソスヌゑソスソスソスソスソスソスソスソスZソスソスソスソスソスソスソスソスフで、ソスヌゑソスソスソスソスgソスソスソスソスソスヘ場合ソスノゑソス閧ッソスソスAソスDソスンの厄ソスソスニゑソスソスソスソスソス驍ゥソスネ?
>ソスソスソスフ変てゑソスソスソスソスネ「ResultSIIソスvソスソスlソスソスソスソスソストゑソスソスソスソスソスソスソスソスト、ソス{ソスソスソスノ奇ソスソスモ奇ソスソスソスソスナゑソスソスB
ソスツ人ソスIソスノゑソス [ResultSII] ソスソスソスソスソスワゑソスヌゑソスソスネゑソスソスフゑソス...ソスソスソスソスネのはどゑソスソスソスソスネゑソス
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, ComCtrls, CommCtrl, StdCtrls;
type
TListItem = class(ComCtrls.TListItem)
private
protected
function GetChecked: Boolean;
procedure SetChecked(Value: Boolean);
function GetEnabled: Boolean;
procedure SetEnabled(Value: Boolean);
function GetStateIndex: Integer;
procedure SetStateIndex(Value: Integer);
public
published
property Checked: Boolean read GetChecked write SetChecked;
property Enabled: Boolean read GetEnabled write SetEnabled;
property StateIndex: Integer read GetStateIndex write SetStateIndex;
end;
TListView = class(ComCtrls.TListView);
TForm2 = class(TForm)
ListView1: TListView;
ImageList1: TImageList;
Button1: TButton;
Button2: TButton;
procedure ListView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ListView1DrawItem(Sender: TCustomListView; Item: TListItem;
Rect: TRect; State: TOwnerDrawState);
procedure FormCreate(Sender: TObject);
private
{ Private ソス骭セ }
public
{ Public ソス骭セ }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
function TListItem.GetStateIndex;
begin
Result := inherited StateIndex;
end;
procedure TListItem.SetStateIndex(Value: Integer);
begin
inherited StateIndex := Value;
if Value and 1 = 0 then
begin
inherited Checked := False;
end
else
begin
inherited Checked := True;
end;
end;
function TListItem.GetEnabled: Boolean;
begin
if StateIndex and 2 = 0 then Result := False else Result := True;
end;
procedure TListItem.SetEnabled(Value: Boolean);
begin
if Value = True then
begin
if StateIndex = -1 then
begin
StateIndex := 2;
end
else
begin
StateIndex := StateIndex or 2;
end;
end
else
begin
if StateIndex = -1 then
begin
StateIndex := 0;
end
else
begin
StateIndex := StateIndex and (255-2);
end;
end;
end;
function TListItem.GetChecked: Boolean;
begin
Result := inherited Checked;
end;
procedure TListItem.SetChecked(Value: Boolean);
begin
inherited Checked := Value;
if Checked = True then
begin
if StateIndex = -1 then
begin
StateIndex := 1
end
else
begin
StateIndex := StateIndex or 1;
end;
end
else
begin
if StateIndex = -1 then
begin
StateIndex := 0;
end
else
begin
StateIndex := StateIndex and (255-1);
end;
end;
end;
procedure TForm2.FormCreate(Sender: TObject);
var
ListItem: TListItem;
begin
ListItem := TListItem(ListView1.Items.Add);
ListItem.Caption := 'NO 1';
ListItem.Checked := False;
ListItem.Enabled := False;
ListItem := TListItem(ListView1.Items.Add);
ListItem.Caption := 'NO 2';
ListItem.Checked := True;
ListItem.Enabled := False;
ListItem := TListItem(ListView1.Items.Add);
ListItem.Caption := 'NO 4';
ListItem.Enabled := True;
ListItem.Checked := True;
ListItem := TListItem(ListView1.Items.Add);
ListItem.Caption := 'NO 3';
ListItem.Checked := False;
ListItem.Enabled := True;
ListView1.OwnerDraw := True;
ListView1.ViewStyle := vsReport;
end;
procedure TForm2.ListView1DrawItem(Sender: TCustomListView; Item: TListItem;
Rect: TRect; State: TOwnerDrawState);
var
Bitmap: TBitmap;
begin
if Item.Enabled = False then
begin
ListView1.Canvas.Font.Color := clGray;
end;
Bitmap := TBitmap.Create;
Bitmap.PixelFormat := pf32bit;
Bitmap.SetSize(16,16);
ImageList1.GetBitmap(Item.StateIndex,Bitmap);
Sender.Canvas.TextRect(Rect,Rect.Left+20,Rect.Top,Item.Caption);
Sender.Canvas.Draw(Rect.Left,Rect.Top,Bitmap);
Bitmap.Free;
end;
procedure TForm2.ListView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
ListItem: TListItem;
begin
ListItem := TListItem(ListView1.GetItemAt(X,Y));
if Assigned(ListItem) = True then
begin
if htOnStateIcon in ListView1.GetHitTestInfoAt(X, Y) then
begin
if ListItem.Enabled = True then
begin
ListItem.Checked := not ListItem.Checked;
end;
end;
end;
Exit;
end;
end.