Polygon von Delphi nach C++ umschreiben
-
Hi,
also habe es geschafft die pas-Datei zu compilieren und habe es in einem neuen package installiert.
scheint alles erfolgreich gelaufen zu sein, aber es erscheint kein symbol in der komponentenleiste.Weiß jemand was?
-
Guten Morgen, kann mir vielleicht jemand die delphi komponente in eine c++ - komponente umwandeln??
bei mir klappt es leider nicht , wenn ich in das standard - package installiere.
Die pas-Datei ist oben als code versehen.
Wäre echt klasse, wenn jemand das konvertieren könnte!!
-
das ist diese pas-Datei.
Wäre echt super!!**************************************************************************} unit JDLed; {$mode objfpc} interface uses SysUtils, Classes, Controls, Graphics, Dialogs, LMessages, LResources, Forms, StdCtrls; type TJDLed = class(TGraphicControl) private procedure SetLedDigit(value : integer); procedure SetLedThick(value: integer); { Private declarations } protected FDigit : integer; FThick : integer; procedure Paint; override; { Protected declarations } public constructor Create(AOwner: TComponent); override; destructor Destroy; override; { Public declarations } published property Digit : integer read FDigit write SetLedDigit; property Thick : integer read FThick write SetLedThick; { Published declarations } end; implementation constructor TJDLed.Create(AOwner: TComponent); begin inherited Create(AOwner); { always call the inherited constructor } FDigit := 1; FThick := 5; Height := 90; Width := 50; with Constraints do begin MinHeight := 30; MinWidth := 15; end; end; destructor TJDLed.Destroy; begin inherited Destroy; end; procedure TJDLed.Paint; var X1,X2,X3,X4,X5,X6,X7,Z,Z1 : integer; begin X1 := self.Height; X2 := self.Width; X3 := self.FThick; Z := abs(X3 div 2); Z1 := abs(self.Height div 2); X4 := Z1 - Z; X5 := Z1 + Z; X6 := Z1 - X3 - Z; X7 := Z1 + X3 + Z; inherited; with Canvas do begin Refresh; Brush.Color := clBlack; Pen.Color := clBlack; Refresh; Rectangle(0,0,self.Width,self.Height); Brush.Color := clRed; Pen.Color := clRed; Refresh; case FDigit of 0: begin Polygon([Point(Z,0),Point(X2-Z,0),Point(X2-X3-Z,X3),Point(X3 + Z,X3)]); // a Polygon([Point(X2-X3,X3+Z),Point(X2,Z),Point(X2,X4),Point(X2- X3,X6)]); // b Polygon([Point(X2-X3,X7),Point(X2,X5),Point(X2,X1-Z),Point(X2-X3,X1-X3- Z)]); // c Polygon([Point(X3+Z,X1-X3),Point(X2-X3-Z,X1-X3),Point(X2-Z,X1),Point(X3- Z,X1)]); // d Polygon([Point(0,X5),Point(X3,X7),Point(X3,X1-X3-Z),Point(0,X1-Z)]); // e Polygon([Point(0,Z),Point(X3,X3+Z),Point(X3,X6),Point(0,X4)]); // f end; 1: begin Polygon([Point(X2-X3,X3+Z),Point(X2,Z),Point(X2,X4),Point(X2- X3,X6)]); // b Polygon([Point(X2-X3,X7),Point(X2,X5),Point(X2,X1-Z),Point(X2-X3,X1-X3- Z)]); // c end; 2: begin Polygon([Point(Z,0),Point(X2-Z,0),Point(X2-X3-Z,X3),Point(X3 + Z,X3)]); // a Polygon([Point(X2-X3,X3+Z),Point(X2,Z),Point(X2,X4),Point(X2- X3,X6)]); // b Polygon([Point(X3+Z,X1-X3),Point(X2-X3-Z,X1-X3),Point(X2-Z,X1),Point(X3- Z,X1)]); // d Polygon([Point(0,X5),Point(X3,X7),Point(X3,X1-X3-Z),Point(0,X1-Z)]); // e Polygon([Point(X3 - abs(Z div 2),Z1),Point(X3+Z,Z1-Z - abs(Z div 4)),Point (X2-X3-Z,Z1-Z - abs(Z div 4)),Point(X2-X3 + abs(Z div 2),Z1)]); // g1 Polygon([Point(X3 - abs(Z div 2),Z1),Point(X3+Z,Z1+Z + abs(Z div 4)),Point (X2-X3-Z,Z1+Z + abs(Z div 4)),Point(X2-X3 + abs(Z div 2),Z1)]); // g2 end; 3: begin Polygon([Point(Z,0),Point(X2-Z,0),Point(X2-X3-Z,X3),Point(X3 + Z,X3)]); // a Polygon([Point(X2-X3,X3+Z),Point(X2,Z),Point(X2,X4),Point(X2- X3,X6)]); // b Polygon([Point(X2-X3,X7),Point(X2,X5),Point(X2,X1-Z),Point(X2-X3,X1-X3- Z)]); // c Polygon([Point(X3+Z,X1-X3),Point(X2-X3-Z,X1-X3),Point(X2-Z,X1),Point(X3- Z,X1)]); // d Polygon([Point(X3 - abs(Z div 2),Z1),Point(X3+Z,Z1-Z - abs(Z div 4)),Point (X2-X3-Z,Z1-Z - abs(Z div 4)),Point(X2-X3 + abs(Z div 2),Z1)]); // g1 Polygon([Point(X3 - abs(Z div 2),Z1),Point(X3+Z,Z1+Z + abs(Z div 4)),Point (X2-X3-Z,Z1+Z + abs(Z div 4)),Point(X2-X3 + abs(Z div 2),Z1)]); // g2 end; 4: begin Polygon([Point(X2-X3,X3+Z),Point(X2,Z),Point(X2,X4),Point(X2- X3,X6)]); // b Polygon([Point(X2-X3,X7),Point(X2,X5),Point(X2,X1-Z),Point(X2-X3,X1-X3- Z)]); // c Polygon([Point(0,Z),Point(X3,X3+Z),Point(X3,X6),Point(0,X4)]); // f Polygon([Point(X3 - abs(Z div 2),Z1),Point(X3+Z,Z1-Z - abs(Z div 2)),Point (X2-X3-Z,Z1-Z - abs(Z div 2)),Point(X2-X3 + abs(Z div 2),Z1)]); // g1 Polygon([Point(X3 - abs(Z div 2),Z1),Point(X3+Z,Z1+Z + abs(Z div 2)),Point (X2-X3-Z,Z1+Z + abs(Z div 2)),Point(X2-X3 + abs(Z div 2),Z1)]); // g2 end; 5: begin Polygon([Point(Z,0),Point(X2-Z,0),Point(X2-X3-Z,X3),Point(X3 + Z,X3)]); // a Polygon([Point(X2-X3,X7),Point(X2,X5),Point(X2,X1-Z),Point(X2-X3,X1-X3- Z)]); // c Polygon([Point(X3+Z,X1-X3),Point(X2-X3-Z,X1-X3),Point(X2-Z,X1),Point(X3- Z,X1)]); // d Polygon([Point(0,Z),Point(X3,X3+Z),Point(X3,X6),Point(0,X4)]); // f Polygon([Point(X3 - abs(Z div 2),Z1),Point(X3+Z,Z1-Z - abs(Z div 4)),Point (X2-X3-Z,Z1-Z - abs(Z div 4)),Point(X2-X3 + abs(Z div 2),Z1)]); // g1 Polygon([Point(X3 - abs(Z div 2),Z1),Point(X3+Z,Z1+Z + abs(Z div 4)),Point (X2-X3-Z,Z1+Z + abs(Z div 4)),Point(X2-X3 + abs(Z div 2),Z1)]); // g2 end; 6: begin Polygon([Point(Z,0),Point(X2-Z,0),Point(X2-X3-Z,X3),Point(X3 + Z,X3)]); // a Polygon([Point(X2-X3,X7),Point(X2,X5),Point(X2,X1-Z),Point(X2-X3,X1-X3- Z)]); // c Polygon([Point(X3+Z,X1-X3),Point(X2-X3-Z,X1-X3),Point(X2-Z,X1),Point(X3- Z,X1)]); // d Polygon([Point(0,X5),Point(X3,X7),Point(X3,X1-X3-Z),Point(0,X1-Z)]); // e Polygon([Point(0,Z),Point(X3,X3+Z),Point(X3,X6),Point(0,X4)]); // f Polygon([Point(X3 - abs(Z div 2),Z1),Point(X3+Z,Z1-Z - abs(Z div 4)),Point (X2-X3-Z,Z1-Z - abs(Z div 4)),Point(X2-X3 + abs(Z div 2),Z1)]); // g1 Polygon([Point(X3 - abs(Z div 2),Z1),Point(X3+Z,Z1+Z + abs(Z div 4)),Point (X2-X3-Z,Z1+Z + abs(Z div 4)),Point(X2-X3 + abs(Z div 2),Z1)]); // g2 end; 7: begin Polygon([Point(Z,0),Point(X2-Z,0),Point(X2-X3-Z,X3),Point(X3 + Z,X3)]); // a Polygon([Point(X2-X3,X3+Z),Point(X2,Z),Point(X2,X4),Point(X2- X3,X6)]); // b Polygon([Point(X2-X3,X7),Point(X2,X5),Point(X2,X1-Z),Point(X2-X3,X1-X3- Z)]); // c end; 8: begin Polygon([Point(Z,0),Point(X2-Z,0),Point(X2-X3-Z,X3),Point(X3 + Z,X3)]); // a Polygon([Point(X2-X3,X3+Z),Point(X2,Z),Point(X2,X4),Point(X2- X3,X6)]); // b Polygon([Point(X2-X3,X7),Point(X2,X5),Point(X2,X1-Z),Point(X2-X3,X1-X3- Z)]); // c Polygon([Point(X3+Z,X1-X3),Point(X2-X3-Z,X1-X3),Point(X2-Z,X1),Point(X3- Z,X1)]); // d Polygon([Point(0,X5),Point(X3,X7),Point(X3,X1-X3-Z),Point(0,X1-Z)]); // e Polygon([Point(0,Z),Point(X3,X3+Z),Point(X3,X6),Point(0,X4)]); // f Polygon([Point(X3 - abs(Z div 2),Z1),Point(X3+Z,Z1-Z - abs(Z div 4)),Point(X2-X3-Z,Z1-Z - abs(Z div 4)),Point(X2-X3 + abs(Z div 2),Z1)]); // g1 Polygon([Point(X3 - abs(Z div 2),Z1),Point(X3+Z,Z1+Z + abs(Z div 4)),Point (X2-X3-Z,Z1+Z + abs(Z div 4)),Point(X2-X3 + abs(Z div 2),Z1)]); // g2 end; 9: begin Polygon([Point(Z,0),Point(X2-Z,0),Point(X2-X3-Z,X3),Point(X3 + Z,X3)]); // a Polygon([Point(X2-X3,X3+Z),Point(X2,Z),Point(X2,X4),Point(X2- X3,X6)]); // b Polygon([Point(X2-X3,X7),Point(X2,X5),Point(X2,X1-Z),Point(X2-X3,X1-X3- Z)]); // c Polygon([Point(X3+Z,X1-X3),Point(X2-X3-Z,X1-X3),Point(X2-Z,X1),Point(X3- Z,X1)]); // d Polygon([Point(0,Z),Point(X3,X3+Z),Point(X3,X6),Point(0,X4)]); // f Polygon([Point(X3 - abs(Z div 2),Z1),Point(X3+Z,Z1-Z - abs(Z div 4)),Point (X2-X3-Z,Z1-Z - abs(Z div 4)),Point(X2-X3 + abs(Z div 2),Z1)]); // g1 Polygon([Point(X3 - abs(Z div 2),Z1),Point(X3+Z,Z1+Z + abs(Z div 4)),Point (X2-X3-Z,Z1+Z + abs(Z div 4)),Point(X2-X3 + abs(Z div 2),Z1)]); // g2 end; end; Refresh; end; end; procedure TJDLed.SetLedDigit(value: integer); begin if (value >= 0) and (value <= 9) then begin FDigit := value; Paint; end; end; procedure TJDLed.SetLedThick(value: integer); begin if (value > 2) then begin FThick := Value; Paint; end; end; initialization {$I jdledicon.lrs} end.Gruß Franky
-
schon mal auf die idee gekommen google zu verwenden und die komplette komponente runterzuladen?! dann klappts auch mit dem installieren.
-
Hi,
natürlich!
Ich habe ja auch alle Dateien davon, aber ich hab es einfach nicht hinbekommen, die C++ - Komponente zu erzeugen.ich habe Fehlermeldungen bekommen, sofern ich das Standard-Package ausgewählt hab.
das is ja leider das Problem.
Mein Problem ist, dass das Konvertieren nicht funktioniert.
Die Header-Datei kann ich ja erzeugen durch Kompilieren der *.pas - Datei.
-
bei mir klappt das installieren wunderbar. was kommen denn für fehler?
-
Die Fehler sind alle externe Linkerfehler, hab hier den Compiler leider nicht zur verfügung, kann sie heute abend hier anschreiben.
könntest du mir evtl. bitte die generierte cpp-Datei für die Komponente zur Verfügung stellen?
-
da wird nur ein hpp (header) generiert, kein cpp.
-
Hi,
gibt es sonst noch eine andre Möglichkeit an die Komponente zu kommen??
-
Hi,
hab es nochmal probiert, die pas-Datei umbenannt und compilliert und installiert im standard package.
Es wurde eine meldung ausgegeben, dass es im dclusr.bpk installiert wurde.
wie bekomme ich es nun in die Komponentenleiste?
Danke,
Gruß,
Franky
-
guck mal hier:
-
Hi,
Sunday!
Vielen Dank!
Echt super von dir!!!