Hallo,
Ik vul momenteel een IWDBGrid via een TFDQuery in RunTime. Ik vraag alle kolommen mee op.
Dit zijn er in feite teveel en nu wil ik de kolommen die ik niet nodig heb verbergen. Dit is zo gedaan, omdat het variabel is welke kolommen er gebruikt worden. Dit verbergenprobeer ik in het OnRenderCell event te doen.
Probeer de volgende Code:
Code:
procedure TDataHandlerForm.IWDBGridRenderCell(ACell: TIWGridCell; const ARow,
AColumn: Integer);
var cf : integer;
begin
cf := editfile.tag;
if AColumn = 0 then begin
ACell.Text := '';
ACell.DisplayName := '';
ACell.visible := false;
ACell.Invalidate;
end
else if AColumn = 1 then begin
ACell.Text := '';
ACell.DisplayName := '';
ACell.visible := false;
end
else if (AColumn = 2) then begin
if ACell.Text = 'Code' then begin
ACell.Text := FileDef[cf].Name[Acolumn-2];
ACell.DisplayName := FileDef[cf].Name[Acolumn-2];
end;
ACell.visible := FileDef[cf].Visible[Acolumn-2];
end
else if (AColumn >= 3) and (AColumn <= 32) then begin
if (pos('String',ACell.text)> 0) then begin
ACell.Text := FileDef[cf].Name[Acolumn+fdb];
ACell.DisplayName := FileDef[cf].Name[Acolumn+fdb];
end;
ACell.visible := FileDef[cf].Visible[Acolumn+fdb];
end
else if (AColumn >= 33) and (AColumn <= 62) then begin
if (pos('Number',ACell.text)> 0) then begin
ACell.DisplayName := FileDef[cf].Name[Acolumn+fdb];
end;
ACell.visible := FileDef[cf].Visible[Acolumn+fdb];
end
else if (AColumn >= 63) and (AColumn <= 92) then begin
if (pos('Logical',ACell.text)> 0) then
ACell.DisplayName := FileDef[cf].Name[Acolumn+fdb];
ACell.visible := FileDef[cf].Visible[Acolumn+fdb];
end
Else if (AColumn = 93) and (ACell.Text = 'NumCode') then begin
ACell.DisplayName := 'NumCode';
ACell.visible := False;
end;
end;
Maar dan krijg ik de volgende Grid te zien.
Zoals je kan zien zijn de kolommen niet weg, maar gewoon leeg.
Weet iemand een andere/ betere manier om dit voor elkaar te krijgen. En heb al veel gezegd hiervoor, maar documentatie over intraweb en de componenten is wel erg slecht.
Als meer code ofzo nodig hebt laat maar weten.
Bookmarks