[*gelöst*] Erstellung von Kombonenten

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
Maik81SE
Beiträge: 327
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.4 FPC 3.2.2)
CPU-Target: x86-64; avr
Wohnort: Lübeck
Kontaktdaten:

[*gelöst*] Erstellung von Kombonenten

Beitrag von Maik81SE »

Moin @ll,

Ich will/möchte mir einige Neue Komboneten schreiben, um die ein oder anderen USB-Geräte, welche ich baue auch sehe und voll nutzen kann, wenn ich meine Programme schreibe.

Nun will ich dies alles auch mit der

Code: Alles auswählen

procedure Register;
registrieren lassen und erhalte die Meldung

Code: Alles auswählen

Error: Incompatible type for arg no. 2: Got "Array Of Const/Constant Open Array of Class Of TUSBSer", expected "Open Array Of TComponentClass"
Da ich dies über Lazarus automatsch Pflegen lasse, lauten die verwendeten Proceduren wie folgt.

Code: Alles auswählen

{ This file was automatically created by Lazarus. Do not edit!
  This source is only used to compile and install the package.
 }
 
unit tty;
 
interface
 
uses
  USB_Ser, LazarusPackageIntf;
 
implementation
 
procedure Register;
begin
  RegisterUnit('USBSer', @USBSer.Register);
end;
 
initialization
  RegisterPackage('tty', @Register);
end.

Code: Alles auswählen

procedure Register;
begin
  RegisterComponents('SH-DL',[TUSBSer]);
end;
Ob ich da gerade einen Fehler drinnen versteckt habe, keine Ahnung.
Hoffe aber, das jemand von euch Wenn den Fehler findet
Zuletzt geändert von Maik81SE am So 8. Nov 2015, 10:05, insgesamt 1-mal geändert.

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.4 FPC 3.2.2);

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6782
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Erstellung von Kombonenten

Beitrag von af0815 »

Wer ist der Vorfahre von TUSBSer ? Schaut so aus, das dort der Vorfahr nicht korrekt abgeleitet wurde.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Maik81SE
Beiträge: 327
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.4 FPC 3.2.2)
CPU-Target: x86-64; avr
Wohnort: Lübeck
Kontaktdaten:

Re: Erstellung von Kombonenten

Beitrag von Maik81SE »

Die habe ich so wie auch immer vor Jahren unter Delphi geschrieben habe.

In diesem Fall

Code: Alles auswählen

TUSBSer = class

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.4 FPC 3.2.2);

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Erstellung von Kombonenten

Beitrag von Michl »

Maik81SE hat geschrieben:Die habe ich so wie auch immer vor Jahren unter Delphi geschrieben habe.

In diesem Fall

Code: Alles auswählen

TUSBSer = class
probier es mal so:

Code: Alles auswählen

type
  TUSBSer = class(TComponent)

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Benutzeravatar
Maik81SE
Beiträge: 327
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.4 FPC 3.2.2)
CPU-Target: x86-64; avr
Wohnort: Lübeck
Kontaktdaten:

Re: Erstellung von Kombonenten

Beitrag von Maik81SE »

Lagen im Grunde mehrere Sachen drinnen.

A) Hatte ich

Code: Alles auswählen

TUSBSer = class(TObjekt]
und nicht

Code: Alles auswählen

TSERUsb = class
und dann auch dementsprechend nicht den

Code: Alles auswählen

Constructor
Richtug definiert. :(
Alles nun wie folgt geändert.

Code: Alles auswählen

TUSBSer = class(TComponent)
 
constructor Create(AOwner: TComponent);

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.4 FPC 3.2.2);

Antworten