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/)
-   -   TTimer In Komponente (https://www.delphipraxis.net/193169-ttimer-komponente.html)

ATS3788 29. Jun 2017 13:04

TTimer In Komponente
 
Hallo
Ich schreibe an einer Fun Komponente.
Einen 3D Würfel der sich dreht.

Soweit klappt das ganz gut
nur was ich nicht verstehe
in der Komponente ist
Delphi-Quellcode:
property Timer : TTimer read fTimer;
definiert.

Wenn ich z.B. den Timer Enable sehe ich das in Echtzeit
in dem Image wo das Canvas abgebildet wird.

Wenn ich das Program starte ist Timer Enabled = false
Ich muss Cube1.Timer.Enabled := true setzen dann geht es.
Was ich nicht versehe, warum wird meine Eingabe des Timers in der Komponente
beim starten nicht übernommen

ATS3788 29. Jun 2017 13:38

AW: TTimer In Komponente
 
Ich habe herausgefunden das
der Timer in der dfm Datei nicht abgebildet wird deswegen ist auch wenn ich gespeichert
habe bei wiederholten aufrufen enabled = false;

Delphi-Quellcode:
object Cube1: TCube
    Left = 736
    Top = 280
    Width = 300
    Height = 313
    BevelOuter = bvNone
    Caption = 'Cube1'
    ShowCaption = False
    TabOrder = 2
    RotateX = 1.000000000000000000
    RotateY = 1.000000000000000000
    RotateZ = 1.000000000000000000
    EdgeColor = clNavy
    Nook = clLime
    EdgeFillColor = clRed
    Gap = 150
    XAxis = 50.000000000000000000
    YAxis = 100.000000000000000000
    ZAxis = 25.000000000000000000
    ShowText = False
  end

himitsu 29. Jun 2017 15:15

AW: TTimer In Komponente
 
Weil Klassen-Property erstmal nur als "Verlinkung" angesehen werden, es sei denn man sagt dem Delphi auch, dass es eine Subkomponente ist.
SetSubComponent

PS: Auch wenn das Property selber ReadOnly ist und der TTimer nur intern erzeugt/freigegeben wird, kann es sein, dass dein Property dennoch einen Setter braucht, damit es gespeichert wird.
Delphi-Quellcode:
property Timer : TTimer read fTimer write AssignTimer;

Darin natürlich nicht FTimer zuweisen, sondern die Property des externen an den internen Timer übergeben, halt wie bei
Delphi-Quellcode:
StringList.Assign(AndereStringList);
,

ATS3788 1. Jul 2017 08:58

AW: TTimer In Komponente
 
Danke das macht Sinn:thumb:


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

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