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.

    http://codecentral.borland.com/Item.aspx?id=19462



  • 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





  • Hi,

    Sunday!

    Vielen Dank!
    Echt super von dir!!!


Anmelden zum Antworten