Компонент во время проектирования может знать имена текущих модулей и имя проекта. Все это можно получить с помощью ToolServices (см. файл TOOLINTF.PAS)

 

Имя текущего проекта можно получить с помощью вызова GetProjectName, список модулей/форм - с помощью функции GetUnitCount, которая возвратит количество модулей и затем с помощью GetUnitName(i) мы можем получить имя каждого модуля (также и с формами).

 

Вот примерный образец кода (получение и запись имен всех модулей/форм в StringGrid и имени проекта в Label):

 

Code:

procedure TInformationFrm.FormActivate(Sender: TObject);

{ необходимо: StringGrid1 (2 колонки, масса строк), Label1, Label2 }

var

i, j: Integer;

Tmp: string;

begin

StringGrid1.Cells[0, 0] := 'модулей:';

StringGrid1.Cells[1, 0] := 'форм:';

if ToolServices <> nilthen

with ToolServices do

begin

Label1.Caption := ExtractFileName(GetProjectName); { простое имя }

Label2.Caption := GetProjectName; { полное правильное имя пути }

for i := 0to GetUnitCount do

begin

Tmp := ExtractFileName(GetUnitName(i));

StringGrid1.Cells[0, i + 1] := Tmp;

Tmp := ChangeFileExt(Tmp, '.DFM');

for j := 0to GetFormCount do

if ExtractFileName(GetFormName(j)) = Tmp then

StringGrid1.Cells[1, i + 1] := Tmp

end;

end;

end;

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!