All voits goes to Mattias
Thank you so much Mattias, I'm so happy today. I added my codes

var LazProject: TLazProject;
      LazFile: TLazProjectFile;
      aDesigner : TComponentEditorDesigner;
.......
    LV.Items.Clear;
      LazProject:=LazarusIDE.ActiveProject;
       if LazProject<>nil then begin
Self.Caption := Format('Project detail form [%s]', [LazProject.GetTitleOrName]);
         for i:=0 to LazProject.FileCount-1 do begin
           LazFile:=LazProject.Files[i];
           if LazFile.IsPartOfProject then begin
             if FilenameIsPascalUnit(LazFile.Filename)then begin
               L:=LV.Items.Add;
               L.Caption :=  ExtractFileName(LazFile.Filename);
//I was work for this two lines :)
aDesigner:=TComponentEditorDesigner(LazarusIDE.GetDesignerWithProjectFile(LazFile, True));
       L.Data := aDesigner.PropertyEditorHook.LookupRoot;
S := ConcatPaths([ ExtractFileDir(LazFile.Filename),ExtractFileNameOnly(LazFile.Filename)]); if FileExists(S+'.lfm')then L.SubItems.Add(ExtractFileName(S+'.lfm')) else if FileExists(S+'.dfm')then L.SubItems.Add(ExtractFileName(S+'.dfm'))
                    else L.SubItems.Add('');
               L.SubItems.Add(ExtractFileDir(LazFile.Filename));
               L.Checked := Pos(LazFile.Filename, OpenedFiles)>0;
             end;
           end;
         end;
       end else begin
         L.Caption := 'Project name';
         L.SubItems.Add('');
         L.SubItems.Add('');
       end;

To select a component use

http://wiki.freepascal.org/Extending_the_IDE#Select_a_component_in_the_designer.2Fobject_inspector

This will automatically set the correct LookupRoot.


To get the form of a file see here:
http://wiki.lazarus.freepascal.org/Extending_the_IDE#Get_unit.2C_designer.2C_form_of_a_file

Mattias

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to