Hi there...
Ich hab in meinem Programm ein AD Browser...
nun wollte ich zusätzlich in der Detailtabelle die Spalte "Anzeigename" oder displayName, nun wenn ich jetzt auf eine OU klicke
passiert zwar was ich will, nur das Tempo ist inakzeptabel geworden. Die Funktion hat jetzt (je nach Inhalt) z.B. 5 statt 0.5 sec.
Delphi-Quellcode:
procedure TEADSObject.EnumObjectsOfContainer(ADSPath: string; CallbackFunction: TCallbackObjectEx);
var
Enum: IEnumVariant;
Container: IADSContainer;
varObj: OleVariant;
Obj: IADS;
Temp: LongWord;
displayName: string;
begin
AccessObject(ADSPath, IID_IADSContainer, Container);
Enum := Container._NewEnum as IEnumVariant;
if Enum <> nil then
begin
while (Enum.Next(1,varObj, Temp) = S_OK) do
begin
Obj := IDispatch(varObj) as IADS;
try displayName := Obj.Get('displayName'); except displayName := ''; end; // OHNE DIESE EINE ZEILE IST DIE FUNKTION 10x SCHNELLER!
CallbackFunction(Obj.Name, obj.Class_, obj.ADsPath, displayName);
end;
end;
end;
Ich denke es hat allgemein was mit Obj.get() zu tun, das scheint wohl viel zu langsam zu sein...
stell dir vor ich möchte noch mehr attribute auslesen, dann kann ich mir ja dazu einen Kaffe kochen!!!
Weiss jemand wie ich schneller an die Attribute komme?
Danke schon ma.