많은 페이지 (AdvPage1, AdvPage2, AdvPage3 ...)가있는 TAdvToolBarPager를 사용하고 있습니다. 각 페이지에는 많은 편집, 탐색기 등이 있습니다. 사용자 권한을 기반으로하고 싶습니다 제약 조건 속성, 즉 ADMIN에 대한 모든 페이지 (1,2,3)를 표시하고 싶지만 USER에 대해서만 페이지 (1,2) 또는 (1)을 표시하고 싶습니다.델파이의 한 페이지에 대해 visible 속성을 동적으로 설정했습니다.
다음 코드를 사용하여 모든 편집, 탐색기를 사용 중지 할 수 있습니다. 어떤 사람이 제약 조건에 따라 TAdvToolBarPager visble의 페이지를 설정할 수있는 방법을 도울 수 있습니까?/이것을 달성하기위한 다른 대안 방법. 미리 감사드립니다!
Procedure SetForm(Form: TForm; enabled: Boolean);
var PropInfo : PPropInfo;
i : Integer;
begin
for i := 0 to Pred(Form.ComponentCount) do
begin
if (Form.Components[i] is TDBEdit) or (Form.Components[i] is DBNavigator) then
begin
PropInfo := GetPropInfo(Form.Components[i].ClassInfo, 'Enabled');
if PropInfo <> nil then
SetOrdProp(Form.Components[i], PropInfo, Ord(enabled));
end;
end;
end;
당신이 바로 TabVisible 속성을 설정할 수 없습니다 3 페이지의 거짓? 페이지를 보이지만 선택할 수 없도록하려면 TabEnabled를 False로 설정할 수 있습니다. –
네, 언급 한 것을 사용하여 할 수 있습니다. 어떻게하면 TAdvToolBarPager에서 AdvPage로 TabVisible/TabEnabled를 반복하고 설정할 수 있습니까? Form.AdvToolBarPager1.AdvPages [1] .TabVisible : = False; Form.AdvToolBarPager1.AdvPages [2] .TabVisible : = False; Form.AdvToolBarPager1.AdvPages [1] .TabVisible : = False; 하지만 동적으로 설정하고 싶습니다. –
"동적으로 설정"이란 의미를 설명 할 수 있습니까? 위의 SetForm 프로 시저를 어떻게 호출할까요? –