'loha Folks,
IWTreeView ist Krieg!
Ich möchte einzelne Root Items gezielt ausblenden, um verschiedenen Usern mit verschiedenen Rechten verschiedene Items anzuzeigen. Bisher habe ich dies so gelöst:
Delphi-Quellcode:
procedure TIWUserSession.SetRights(Sender: TIWTreeView);
var
RightManagementToolRight,
OperationToolRight,
ConfigurationToolRight: Boolean;
begin
SearchLoginUser(Sender, FUsername, '', '');
ConfigurationToolRight := ADODataSet_LoginUserConfigurationTool.Value;
OperationToolRight := ADODataSet_LoginUserOperationTool.Value;
RightManagementToolRight := ADODataSet_LoginUserRightManagementTool.Value;
with Sender as TIWTreeView do
begin
if RightManagementToolRight = False then
Items.Items[1].Destroy; // 2. Right Management Tool
if OperationToolRight = False then
Items.Items[3].Destroy; // 3. Operation Tool
if ConfigurationToolRight = False then
Items.Items[6].Destroy; // 4. Configuration Tool
end;
end;
Leider ist es aber so, dass sobald beispielsweise das Item 1 zerstört wird, irgend ein anderes Item die 1 zugewiesen bekommt, was es unmöglich macht, gezielt Items zu entfernen.
Nun schwebt vor nach dem Namen des jeweiligen Items zu suchen und dieses dann zu zerstören. Ist für meine Begriffe aber alles minder schön gelöst.
Ideen die zur Lösung dieser Angelegenheit sind also gerne Willkommen.
Grüsse
hirnstroem