Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Komponentenpalette auflisten (https://www.delphipraxis.net/64963-komponentenpalette-auflisten.html)

Helmutf 10. Mär 2006 14:57


Komponentenpalette auflisten
 
Hallo,

kennt jemand eine Möglichkeit die Komponenten aller installierten Packages aufzulisten, bzw. als Textdatei zu exportieren ?

sh17 10. Mär 2006 15:03

Re: Komponentenpalette auflisten
 
Mit Delphi 6 z.B. so

Delphi-Quellcode:
var
  Reg: TRegistry;
  errlist : TStringList;
  keys : TStringList;
  i : Integer;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;

    if Reg.KeyExists('\Software\Borland\Delphi\6.0') then
    begin

    errlist := TStringList.Create;

      //Installiert?
      if Reg.OpenKey('\Software\Borland\Delphi\6.0', False) then
      begin
        lbDelphi6Info.Caption := Format('Delphi 6 ist im Verzeichnis "%s" installiert.',[Reg.ReadString('RootDir')]);
        Reg.CloseKey;
      end else
        errlist.Add('Kann Schlüssel "HKEY_CURRENT_USER\Software\Borland\Delphi\6.0" nicht öffnen.');

      if Reg.OpenKey('\Software\Borland\Delphi\6.0\Environment Variables', False) then
      begin
        lbD6_Env.Items.DelimitedText := Reg.ReadString('Path');
        Reg.CloseKey;
      end else
        errlist.Add('Kann Schlüssel "HKEY_CURRENT_USER\Software\Borland\Delphi\6.0\Environment Variables" nicht öffnen.');

      if Reg.OpenKey('\Software\Borland\Delphi\6.0\Library', False) then
      begin
        lbD6_BrowsingPath.Items.DelimitedText := Reg.ReadString('Browsing Path');
        lbD6_PackageDCPOutput.Items.DelimitedText := Reg.ReadString('Package DCP Output');
        lbD6_PackageDPLOutput.Items.DelimitedText := Reg.ReadString('Package DPL Output');
        lbD6_SearchPath.Items.DelimitedText := Reg.ReadString('Search Path');
        Reg.CloseKey;
      end else
        errlist.Add('Kann Schlüssel "HKEY_CURRENT_USER\Software\Borland\Delphi\6.0\Library" nicht öffnen.');

    if Reg.OpenKey('\Software\Borland\Delphi\6.0\Known Packages', False) then
      begin
        keys := TStringList.Create;
        Reg.GetValueNames(keys );
        vleD6_Packages.Strings.Clear;
        for i := 0 to keys.Count-1 do
        begin
          vleD6_Packages.Strings.Add(keys[i]+'='+Reg.ReadString(keys[i]));
        end;
        Reg.CloseKey;
        keys.Free;
      end else
        errlist.Add('Kann Schlüssel "HKEY_CURRENT_USER\Software\Borland\Delphi\6.0\Known Packages" nicht öffnen.');

      if Reg.OpenKey('\Software\Borland\Delphi\6.0\Palette', False) then
      begin
        keys := TStringList.Create;
        Reg.GetValueNames(keys );
        vleD6_Palette.Strings.Clear;
        for i := 0 to keys.Count-1 do
        begin
          vleD6_Palette.Strings.Add(keys[i]+'='+Reg.ReadString(keys[i]));
        end;
        Reg.CloseKey;
        keys.Free;
      end else
        errlist.Add('Kann Schlüssel "HKEY_CURRENT_USER\Software\Borland\Delphi\6.0\Palette" nicht öffnen.');
      if errlist.Count > 0 then
        MessageDlg(errlist.Text, mtError, [mbOK], 0);

      errlist.Free;

    end else begin //Key existiert nicht
      lbDelphi6Info.Caption := 'Delphi 6 ist nicht installiert.'
    end;

choose 10. Mär 2006 17:22

Re: Komponentenpalette auflisten
 
Sieh Dir mal ComBar an, die Erweiterung kann als Alternative zur Komponentenpalette verwendet werden und Zeigt dazu alle Komponenten mit Grafik, Paketnamen, Reiter der original Palette und Komponentennamen an. Den Quelltext kannst Du runterladen und studieren.

Helmutf 11. Mär 2006 15:51

Re: Komponentenpalette auflisten
 
Danke !

Funktioniert

Jetzt fehlen mir nur noch die Icons zu den Komponenten.

Die sind glaube ich nicht in der Windows-Registry.

Robert Marquardt 11. Mär 2006 17:41

Re: Komponentenpalette auflisten
 
Das sind die .dcr-Dateien. Selbige sind nichts anderes als .res Dateien und diese werden in das Komponentenpackage eingebunden.
Fuer jede Komponente ist eine kleine Bitmap 24x24 mit Namen der Klasse (z. B. TButton) enthalten.

Helmutf 12. Mär 2006 08:38

Re: Komponentenpalette auflisten
 
Danke!

Blöde Frage:

Gibt es einen einfachen Weg oder Funktion das Icon einer Komponente anhand ihres Namens aus dieser Datei zu extrahieren ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz