Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Record in Komponente (https://www.delphipraxis.net/44152-record-komponente.html)

LoL 14. Apr 2005 13:17


Record in Komponente
 
Hi

Ich hab folgende Komponente + Record:
Delphi-Quellcode:
type
  TProcessDescription = packed Record
    pdDraw : boolean;
    pdHeight : byte;
    pdColor : TColor;
    pdDrawBackground : boolean;
    pdFont : TFont;
  end;

  TMeinKompo = class(TPanel)
  private
    { Private declarations }
    FProzDesc : TProcessDescription;
    procedure SetProzDesc(Value : TProcessDescription);
  public
    { Public declarations }
    property ProzDesc : TProcessDescription read FProzDesc write SetProzDesc;
  end;
//...
procedure TMeinKompo.SetProzDesc(Value : TProcessDescription);
begin
  if not(CompareMem(@Value, @FProzDesc, sizeof(Value))) then
    FProzDesc := Value;
end;
Wenn ich nun folgendes Versuche:
Delphi-Quellcode:
var test : TMeinKompo;
begin
  test := TMeinKompo.Create(Form1);
  test.ProzDesc.pdDraw := true;
end;
Kommt das der Linken Seite nichts zugewiesen kann. Woran liegt das kann ich nicht direkt in den Record schreiben oder habe ich was falsch deklariert?

jim_raynor 14. Apr 2005 13:20

Re: Record in Komponente
 
Du kannst nicht direkt in einen Record schreiben, der ein Property ist. Kannst es nur über einen temporären Record lösen.

LoL 14. Apr 2005 13:22

Re: Record in Komponente
 
Argh, naja ok trotzdem danke! :cry:

LoL 14. Apr 2005 13:31

Re: Record in Komponente
 
Ach noch was dann dazu:
Kann ich meinen Record auch mit Vordefinierten Werten initialisieren, dh wenn man sich ne Instanz davon erstellt das Height zb. 10 ist oder so?

Airblader 14. Apr 2005 13:41

Re: Record in Komponente
 
Zitat:

Zitat von LoL
Ach noch was dann dazu:
Kann ich meinen Record auch mit Vordefinierten Werten initialisieren, dh wenn man sich ne Instanz davon erstellt das Height zb. 10 ist oder so?

Prozedur "OnCreate" :?: ;)

LoL 14. Apr 2005 13:50

Re: Record in Komponente
 
dann müsste ich den Record aber doch in eine Klasse packen oder?
Ich kann doch nicht proceduren in ein Record eintragen?
Oder ich stehe mal wieder auf dem Schlauch :wall:

PS: sagts mir wenn ich stuss schreibe

leddl 14. Apr 2005 13:53

Re: Record in Komponente
 
Er meinte im OnCreate der Komponente... ;)

LoL 14. Apr 2005 14:03

Re: Record in Komponente
 
Hä? jetzt bin ich ganz verwirrt :gruebel:

Was hat die Kompontente denn damit zu tun wenn ich mir einfach nur eine neue Instanz des Record mache:
Delphi-Quellcode:
var myrecord : TProcessDescription;
begin
  myrecord.pdHeight //Ist zu diesem Zeitpunkt 0
end;
Sodas der Record mit zb 10 und nicht mit 0 initialisiert ist? Oder hab ich da was falsch verstanden? :gruebel:

Waldteufel 14. Apr 2005 14:06

Re: Record in Komponente
 
Hi.

Nimm eine Klasse, dann geht das... :wink:

Bei Records gibts kein Create...

glkgereon 14. Apr 2005 14:41

Re: Record in Komponente
 
soweit ich weiss ist folgendes auch erlaubt:

Delphi-Quellcode:
TDings = record
  Di: Integer = 5;
  Del: String = 'abc';
  Dumm: Integer = 15000;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 Uhr.
Seite 1 von 2  1 2      

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