如何獲取TStrings中所有已安裝的組件?如何獲得IDE內所有安裝的組件? (Delphi)
我覺得這個代碼工作僅在包:
uses TypInfo, ToolIntf, Exptintf;
procedure GetComponentNames(lst: TStrings);
var
i, k: Integer;
CRef: TClass;
strName: ShortString;
begin
lst.Clear;
for i := 0 to ToolServices.GetModuleCount-1 do
begin
for k := 0 to ToolServices.GetComponentCount(i)-1 do
begin
CRef := TClass(GetClass(ToolServices.GetComponentName(i, k)));
while CRef <> nil do
begin
strName := CRef.ClassName;
if lst.IndexOf(strName) = -1 then
lst.Add(strName);
if str <> 'TComponent' then
CRef := CRef.ClassParent
else
CRef := nil;
end;
end;
end;
end;
或者:
uses ToolsApi;
{....}
var
a, i: Integer;
begin
with (BorlandIDEServices as IOTAPackageServices) do
begin
for a := 0 to GetPackageCount - 1 do
begin
for i := 0 to GetComponentCount(a) - 1 do
begin
{get each component name with GetComponentName(a, i);}
// DoSomething
end;
end;
end;
end;
感謝您的幫助。
這兩個代碼示例看起來完全符合您的要求。有什麼問題?不要僅僅告訴我們你認爲代碼的作用。告訴我們當你運行它時會發生什麼,然後告訴我們你希望它會做什麼。 – 2009-10-12 10:14:23
我有兩個代碼訪問衝突。僅將這些代碼用於IDE包。 – Kachwahed 2009-10-13 09:28:59