Komponenten in der IDE zählen (ComponentReg) [gelöst]

Rund um die LCL und andere Komponenten
Antworten
hemmen
Beiträge: 5
Registriert: Fr 2. Mai 2014, 23:18
OS, Lazarus, FPC: Win (L 1.4.0 FPC 2.6.4)
CPU-Target: 64Bit
Wohnort: Emden

Komponenten in der IDE zählen (ComponentReg) [gelöst]

Beitrag von hemmen »

Moin,
ich habe folgendes herausgefunden:
  • 1.Alle Komponenten der IDE zählen:
    ComponentReg.IDEComponentPalette.Comps.Count
    Ergebnis: 341
  1. 2.Alle Komponentenpaletten der IDE zählen:
    ComponentReg.IDEComponentPalette.Pages.Count
    Ergebnis: 15
ich suche:
Wieviele Komponenten sind in einer Palette?

ComponentReg.IDEComponentPalette. :?: . :?:

Bild

Hintergrund:
ich habe auf Lazarus 1.4.0 geupdated. Nun möchte ich kzDesktop benutzen... (aufgeräumte Ide und Suchfunktion einer Komponente)
Count (hier Zeile 5 - aus kzlazdesktop.pas Zeilen: 1525-1550) möchte ich umschreiben/ersetzen:

Code: Alles auswählen

 for iP := 0 to ComponentReg.IDEComponentPalette.Count - 1 do
  begin
    with ComponentReg.IDEComponentPalette.Pages[iP] do
    begin
      for iC := 0 to Count - 1 do
      begin
        if
          Pos(LowerCase(edFindComponent.Text),
          LowerCase( Items[iC].ComponentClass.ClassName )) <> 0
        then
        begin
 
          if (Items[iC].Button <> Nil) then
          begin
 
            Self.TabComponentSearch.NewButton.Prepare(Items[iC]);
 
          end;
 
        end;
 
      end;
 
    end;
 
  end;
Kann mir jemand helfen?
Zuletzt geändert von hemmen am Do 7. Mai 2015, 22:12, insgesamt 1-mal geändert.

marcov
Beiträge: 1102
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Komponenten in der IDE zählen (ComponentReg)

Beitrag von marcov »

Vielleicht etwas wie ComponentReg.IDEComponentPalette.Pages[n].count mit n 0.. ComponentReg.IDEComponentPalette.Pages.Count-1 ?

hemmen
Beiträge: 5
Registriert: Fr 2. Mai 2014, 23:18
OS, Lazarus, FPC: Win (L 1.4.0 FPC 2.6.4)
CPU-Target: 64Bit
Wohnort: Emden

Re: Komponenten in der IDE zählen (ComponentReg)

Beitrag von hemmen »

@marcov : ComponentReg.IDEComponentPalette.Pages[n].count kompiliert nicht, fehler

kzlazdesktop.pas(1531,53) Error: identifier idents no member "Count"

und
ComponentReg.IDEComponentPalette.Pages.Count ist die Anzahl der Paletten

Ersteres hat auch so funktioniert, nun wohl nicht mehr :cry: :?:

hemmen
Beiträge: 5
Registriert: Fr 2. Mai 2014, 23:18
OS, Lazarus, FPC: Win (L 1.4.0 FPC 2.6.4)
CPU-Target: 64Bit
Wohnort: Emden

Re: Komponenten in der IDE zählen (ComponentReg)

Beitrag von hemmen »

Ich habe nun alle Komponenten (341, unabhängig in welcher Palette) genommen und die zweite Schleife entfernt. :mrgreen: Funktioniert ja auch.

(aus kzlazdesktop.pas Zeilen: 1525-1550)

Code: Alles auswählen

  for iP := 0 to ComponentReg.IDEComponentPalette.Comps.Count - 1 do
  begin
        if
          Pos(LowerCase(edFindComponent.Text),
          LowerCase(IDEComponentPalette.Comps.Items[iP].ComponentClass.ClassName )) <> 0
        then
        begin
 
          if (IDEComponentPalette.Comps.Items[iP].Button <> Nil) then
          begin
 
            Self.TabComponentSearch.NewButton.Prepare(IDEComponentPalette.Comps.Items[iP]);
          end;
 
        end;
 
  end;           

Antworten