Kann LCLIntf nicht finden

Rund um die LCL und andere Komponenten
wp_xyz
Beiträge: 4888
Registriert: Fr 8. Apr 2011, 09:01

Re: Kann LCLIntf nicht finden

Beitrag von wp_xyz »

Nein, das ist ok, es sagt nur, wie die betreffende Unit kompiliert werden soll.

Kannst du nochmals die aktuellen Sourcen hochladen? Und: Welche Lazarus-Version/fpc-Version hast du?

USchoch
Beiträge: 26
Registriert: Do 16. Mär 2017, 14:01

Re: Kann LCLIntf nicht finden

Beitrag von USchoch »

Salü

Ich habe Lazarus 1.6.4 und fpc 3.0.2

Hier nochmals die Sourcen

Bin gespannt was los ist und Gruss
Uli
MeineKomponenten2.zip
(201.43 KiB) 66-mal heruntergeladen

wp_xyz
Beiträge: 4888
Registriert: Fr 8. Apr 2011, 09:01

Re: Kann LCLIntf nicht finden

Beitrag von wp_xyz »

FloatEdit.pas hat gefehlt, ich habe es aus der ersten Version rüberkopiert. Dann das Package neu "Kompilieren", dann "Nutzung" / "Installieren" (ich mache das immer in zwei Schritten, vielleicht geht's auch nur mit Installieren) --> Die Komponenten sind da. Getestet mit Laz Trunk und auch mit 1.6.4. Sind aber nicht am Ende der Komponenten-Palette, sondern mitten drin - vielleicht ist das das Problem. Wenn du sie gefunden hast, kannst du die Reihenfolge ändern mit Rechtsklick auf der Komponenten-Palette--> "Einstellungen" --> "Komponentenpalette anzeigen"

Wenn du die Icons ins .res-Dateien einbindest, kannst du auf den eigenen initialization-Abschnitt verzichten und das {$R direkt hinter "implementation" schreiben. Um die Registrierung mehrer Komponenten kann man auch in denselben Aufruf schreiben. Hier als Beispiel aus TLine.pas:

Code: Alles auswählen

procedure Register;
 
implementation
 
{$R TXLinie.res }
{$R TDreieck.res }
{$R TSchalter.res }
{$R TUmschalter.res }
 
procedure Register;
begin
  RegisterComponents('Beispiele', [TXLinie, TDreieck, TSchalter, TUmschalter]);
  { statt:
  RegisterComponents('Beispiele', [TXLinie]);
  RegisterComponents('Beispiele', [TDreieck]);
  RegisterComponents('Beispiele', [TSchalter]);
  RegisterComponents('Beispiele', [TUmschalter]);
  }

end;   

Dass in RegisterCompoents jeweils explizit 'Beispiele' steht, halte ich für ungeschickt: Wenn du die Komponenten einmal anderswo unterbringen willst, musst du diverse Units öffnen und den String ändern. Besser: eine Deklarationsunit schreiben, in der alle von den einzelnen Komponenten benötigten allgemeinen Deklarationen (Typen, Konstanten etc) stehen, darunter auch

Code: Alles auswählen

const
  PalettenName = 'Beispiele'; [/const]
und obiger Code würde damit zu
[code=laz]procedure Register;
 
implementation
 
uses
  mkCommon;   // "Meine Komponenten - gemeinesame Unit"
 
{$R TXLinie.res }
{$R TDreieck.res }
{$R TSchalter.res }
{$R TUmschalter.res }
 
procedure Register;
begin
  RegisterComponents(PalettenName, [TXLinie, TDreieck, TSchalter, TUmschalter]);
end;   

USchoch
Beiträge: 26
Registriert: Do 16. Mär 2017, 14:01

Re: Kann LCLIntf nicht finden

Beitrag von USchoch »

Salü

Danke nochmals für deine Ratschläge. Ich habe eigentlich alles so gemacht, alles ging ohne Fehlermeldungen, die Komponenten waren nicht da!!

Aus lauter Verzweiflung habe mal eine Komponente in eine andere Palette registriert. (Die Uhr in die Palette 5dop mit der Serieschnittstelle drin).
Und was sehe ich? Die Uhr ist schön brav in der 5dop-Palette und funktioniert sogar, wenn ich sie in ein Form hole. Warum, wissen die Götter, oder auch diese nicht. Ich habe dann alle Komponenten in 5dop registriert und sie dann von Hand (Rechtsklick Palette, Einstellungen) in die Palette Beispiele gezogen, alles paletti.

Danke für deine immer sehr schnellen und guten Antworten.

Gruss
Uli

[img]D:\Projekte\LazarusProjekte\MeineKomponenten\Komponenten.jpg[/img]

wp_xyz
Beiträge: 4888
Registriert: Fr 8. Apr 2011, 09:01

Re: Kann LCLIntf nicht finden

Beitrag von wp_xyz »

Vielleicht hast du das Panel schon früher mal erzeugt? Ich weiß, mit dem Paletten-Editor gab es mal Probleme. Versuche mal "Vorgaben wiederherstellen". Oder benenne kurz dein Lazarus-Benutzer-Profil um (steht normalerweise in c:\Users\<benutzername>\AppData\Local\Lazarus oder in dem Order, der in lazarus.cfg (im selben Ordner wie lazarus.exe) genannt ist). Beim nächsten Stert von Lazarus wird ein neues Default-Profil geschrieben. Wenn du nun deine Komponenten neu installierst, sollte sei auf der Seite "Beispiele" erscheinen.

USchoch
Beiträge: 26
Registriert: Do 16. Mär 2017, 14:01

Re: Kann LCLIntf nicht finden

Beitrag von USchoch »

Salü
Das mit den Vorgaben wiederherstellen hat auch nicht funktioniert. Ich lass das mal so. Wenn ich mal Lust habe, deinstalliere ich Lazarus und installiere es neu und probiere alles nochmals.

Besten Dank und Gruss
Uli

Antworten