Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi [eigene Komponente] TRunLabel Problem (https://www.delphipraxis.net/71429-%5Beigene-komponente%5D-trunlabel-problem.html)

mOzZzI 15. Jun 2006 01:46


[eigene Komponente] TRunLabel Problem
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi DP-Friends,
ich bin gerade dabei meine erste Komponente zu erstellen.
TRunLabel !
Mit dem TRunLabel kann man eine simple Laufschrift erstellen.
Das ganze ist abgeleitet von TLabel.

Komponentenerstellung habe ich noch nicht so viel Ahnung...

Funktionsweise:
Als erstes mache ich ein TMengentyp in dem Aktiv, und Intervall drinsteht.
Bei Aktiv, soll dann das Enabled des zur Laufzeit erstellten Timers sein.
Bei Intervall, dann das Intervall des zur Laufzeit erstellten Timers.
die zuweisung ist mein Problem.

Leider spuckt der Compiler seltsame Fehler noch mit aus...
Ich häng euch mal die *.pas an, da ich nicht genau weiß wo das Problem des Compilers ist.

Ich hoffe ihr versteht mich :)

Grüße Philipp :zwinker:

Luckie 15. Jun 2006 02:10

Re: [eigene Komponente] TRunLabel Problem
 
Es wäre wesentlich einfacher, wenn du uns die Fehlermeldung nennen würdest und dazu die relevate Codestelle. :?

mOzZzI 15. Jun 2006 11:05

Re: [eigene Komponente] TRunLabel Problem
 
Zitat:

Zitat von Luckie
Es wäre wesentlich einfacher, wenn du uns die Fehlermeldung nennen würdest und dazu die relevate Codestelle. :?

Ok, hier:

erste Fehlermeldung:
"Bezeichner redefiniert"
Delphi-Quellcode:
...
uses
  SysUtils, Classes, Controls, StdCtrls, ExtCtrls;

type
  TOption = set of (Aktiv, Intervall);
  TRunLabel = class(TLabel) //<--- hier die Fehlermeldung
  private
    { Private-Deklarationen }
    fTimer: TTimer;
    fIntervall: Integer;
    fAktiv: Boolean;

    FOption: TOption;
...
zweite Fehlermeldung:
"'.' erwartet ']' gefunden"
Delphi-Quellcode:
...
procedure Register;
begin
  RegisterComponents('Standard', [TRunLabel]); //<--- hier die fehlermeldung
end;
...
dritte fehlermeldung:
"'TRunLabel' untescheidet sich von der von vorheriger Deklaration"
Delphi-Quellcode:
...
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    property Intervall: Integer Read fIntervall Write SetIntervall;
    property Aktiv: Boolean Read fAktiv Write SetAktiv;
...

...
constructor TRunLabel.Create(AOwner: TComponent); //<--- hier die fehlermeldung
begin
  inherited; //<--- fehler (diese form des methodenaufrufs ist nur auf abgeleiteten typen erlaubt)
  fAktiv := False; //undefinierter bezeichner
  fIntervall := 500;//undefinierter bezeichner
  fTimer := TTimer.Create(self);//undefinierter bezeichner
  fTimer.OnTimer := OnTimer;//undefinierter bezeichner
  fTimer.Interval := 500;//undefinierter bezeichner
  fTimer.Enabled := fAktiv;//undefinierter bezeichner
end;
...

Und ich kann immer genauso weitermachen bei jeder procedure...

Ich hoffe ihr könnt mir helfen
...

H4ndy 15. Jun 2006 11:32

Re: [eigene Komponente] TRunLabel Problem
 
Zitat:

Zitat von mOzZzI
erste Fehlermeldung:
"Bezeichner redefiniert"

Der Problem ist ganz einfach: Deine Komponete heisst genauso wie deine Unit.
Entweder Unit umbenennen (Comp_TMyRunLabel o.ä.) oder Komponente umbenennen (TMyRunLabel)
und schon geht alles ^^ (Habs getestet).

mOzZzI 15. Jun 2006 12:23

Re: [eigene Komponente] TRunLabel Problem
 
Zitat:

Zitat von H4ndy
Zitat:

Zitat von mOzZzI
erste Fehlermeldung:
"Bezeichner redefiniert"

Der Problem ist ganz einfach: Deine Komponete heisst genauso wie deine Unit.
Entweder Unit umbenennen (Comp_TMyRunLabel o.ä.) oder Komponente umbenennen (TMyRunLabel)
und schon geht alles ^^ (Habs getestet).

Sehr vielen dank H4ndy !

Leider hab ich noch Probleme beim zuweisen, des Enabled Feldes bei RunOptions (Aktiv (True, false))
und beim Intervall Feld, soll kein boolean sondern ein edit feld sein, und dann auch wieder die zuweisung zum timer, wie geht das?

mOzZzI 15. Jun 2006 23:42

Re: [eigene Komponente] TRunLabel Problem
 
So, jetzt habe ich alles geschafft, bis auf die kleine Zuweisung, bei diesem Quelltext passt irgendwas noch nicht... :gruebel:

Delphi-Quellcode:
...
procedure Register;
begin
  RegisterComponents('Standard', [TMyRunLabel]);
end;

constructor TMyRunLabel.Create(AOwner: TComponent);
begin
  inherited;
  fTimer := TTimer.Create(self);
  fTimer.OnTimer := OnTimer;
  FOptions:= TOptions.Create;
  ftimer.Interval:=100;
  ftimer.Enabled:=True;
  foptions.FAktiv:= ftimer.Enabled;
  foptions.FGeschwindigkeit:= ftimer.Interval;
end;
Grüße Philipp

_frank_ 16. Jun 2006 00:07

Re: [eigene Komponente] TRunLabel Problem
 
Zitat:

Zitat von mOzZzI
So, jetzt habe ich alles geschafft, bis auf die kleine Zuweisung, bei diesem Quelltext passt irgendwas noch nicht... :gruebel:

was kommt denn für ein fehler?

Gruß Frank

mOzZzI 16. Jun 2006 00:13

Re: [eigene Komponente] TRunLabel Problem
 
Zitat:

Zitat von _frank_
Zitat:

Zitat von mOzZzI
So, jetzt habe ich alles geschafft, bis auf die kleine Zuweisung, bei diesem Quelltext passt irgendwas noch nicht... :gruebel:

was kommt denn für ein fehler?

Gruß Frank

Kein Fehler, sondern wenn man die Komponente installiert kommt ein aufklappbares Menü und dortdrin ist Aktiv -> True/False
Geschwindigkeit -> Integer
Und diese zuweisung, also das intervall des timer is Geschwindigkeit vom Menü...
Und das Enabled, das Aktiv.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:58 Uhr.

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