Ребята помогите разобраться.
Пытаюсь в гриде (cxGrid) сделать множественный выбор
не пойму как вывести отметку.
Код:
var
ListSelect : TList;
procedure TFrmMain.FormCreate(Sender: TObject);
begin
ListSelect := TList.Create;
end;
// заполняем список выбранными записями
procedure TFrmMain.MyVwKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_INSERT then
begin
if ListSelect.Count > 0 then
if ListSelect.IndexOf(Pointer(Table1SpeciesNo.AsInteger)) >= 0 then
ListSelect.Delete(ListSelect.IndexOf(Pointer(Table1SpeciesNo.AsInteger)))
else
begin
ListSelect.Add(Pointer(Table1SpeciesNo.AsInteger));
end
else
ListSelect.Add(Pointer(Table1SpeciesNo.AsInteger));
Table1.Next;
Caption := IntToStr(ListSelect.Count);
end;
end;
//по идеи должен рисовать в колонке MyClmCheck
procedure TFrmMain.MyClmCheckCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
CheckIt:Boolean;
begin
CheckIt := ListSelect.IndexOf(Pointer(Table1SpeciesNo.AsInteger)) >= 0;
if CheckIt Then
begin
ADone := True;
ACanvas.FillRect(AViewInfo.Bounds);
ACanvas.DrawImage(ImageList1, AViewInfo.Bounds.Left, AViewInfo.Bounds.Top, 2, True);
end;
end;
Пытаюсь в гриде (cxGrid) сделать множественный выбор
не пойму как вывести отметку.
Код:
var
ListSelect : TList;
procedure TFrmMain.FormCreate(Sender: TObject);
begin
ListSelect := TList.Create;
end;
// заполняем список выбранными записями
procedure TFrmMain.MyVwKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_INSERT then
begin
if ListSelect.Count > 0 then
if ListSelect.IndexOf(Pointer(Table1SpeciesNo.AsInteger)) >= 0 then
ListSelect.Delete(ListSelect.IndexOf(Pointer(Table1SpeciesNo.AsInteger)))
else
begin
ListSelect.Add(Pointer(Table1SpeciesNo.AsInteger));
end
else
ListSelect.Add(Pointer(Table1SpeciesNo.AsInteger));
Table1.Next;
Caption := IntToStr(ListSelect.Count);
end;
end;
//по идеи должен рисовать в колонке MyClmCheck
procedure TFrmMain.MyClmCheckCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
CheckIt:Boolean;
begin
CheckIt := ListSelect.IndexOf(Pointer(Table1SpeciesNo.AsInteger)) >= 0;
if CheckIt Then
begin
ADone := True;
ACanvas.FillRect(AViewInfo.Bounds);
ACanvas.DrawImage(ImageList1, AViewInfo.Bounds.Left, AViewInfo.Bounds.Top, 2, True);
end;
end;