/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Const i en Class - kan man det ??
Fra : Esben Piltoft


Dato : 03-04-03 13:44

Hvis jeg forsøger at lave en konstant i en klasse, brokker delphi sig.

Men man kan måske slet ikke bruge konstanter ifb. med klasser ?? (Har
ikke kunne finde noget i nogen bøger, så det er åbenbart ikke noget
man har haft brug for før ?!)

//klip

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs;

const TEST1 : String = 'myString'; //virker

type
TForm1 = class(TForm)
private
const TEST2 : String = 'myString'; //virker ikke
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

end.

//klip

--
Esben

 
 
Ulrik Vadstrup (03-04-2003)
Kommentar
Fra : Ulrik Vadstrup


Dato : 03-04-03 15:25

"Esben Piltoft" <synonym@sol.dk> wrote in message
news:5aef858a.0304030444.284d0392@posting.google.com...
> Hvis jeg forsøger at lave en konstant i en klasse, brokker delphi sig.
>
> Men man kan måske slet ikke bruge konstanter ifb. med klasser ?? (Har
> ikke kunne finde noget i nogen bøger, så det er åbenbart ikke noget
> man har haft brug for før ?!)
>
> //klip
>
> unit Unit1;
>
> interface
>
> uses
> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
> Forms,
> Dialogs;
>
> const TEST1 : String = 'myString'; //virker
>
> type
> TForm1 = class(TForm)
> private
> const TEST2 : String = 'myString'; //virker ikke
> { Private declarations }
> public
> { Public declarations }
> end;
>
> var
> Form1: TForm1;
>
> implementation
>
> {$R *.dfm}
>
> end.
>
> //klip
>
> --
> Esben

Skal den ikke bare længere ned, og du behøver ikke type betegnelse...


> type
> TForm1 = class(TForm)
> private
> const TEST2 : String = 'myString'; //virker ikke
> { Private declarations }
> public
> { Public declarations }
> end;

CONST
TEST2 = 'myString';

>
> var
> Form1: TForm1;
>



Olav M.J. Christians~ (03-04-2003)
Kommentar
Fra : Olav M.J. Christians~


Dato : 03-04-03 16:47

"Ulrik Vadstrup" <vadstrup@post12.tele.dk> skrev i en meddelelse
news:3e8c442d$0$52195$edfadb0f@dread16.news.tele.dk...
[klip]
> Skal den ikke bare længere ned, og du
> behøver ikke type betegnelse...
[klip]

Forskellen er om det er en 'typed constant' eller en 'true constant'. Se
her:

Typed constants, unlike true constants, can hold values of array,
record, procedural, and pointer types. Typed constants cannot occur in
constant expressions.
In the default {$J-} compiler state, typed constants can not have new
values assigned to them; they are, in effect, read-only variables.
However, if the {$J+} compiler directive is in effect, typed constants
can have new values assigned to them; they behave essentially like
initialized variables.

--
M.v.h.
Olav



David Konrad (04-04-2003)
Kommentar
Fra : David Konrad


Dato : 04-04-03 11:01

"Esben Piltoft" <synonym@sol.dk> skrev i en meddelelse
news:5aef858a.0304030444.284d0392@posting.google.com...
> Hvis jeg forsøger at lave en konstant i en klasse, brokker delphi sig.
>
> Men man kan måske slet ikke bruge konstanter ifb. med klasser ?? (Har
> ikke kunne finde noget i nogen bøger, så det er åbenbart ikke noget
> man har haft brug for før ?!)

Lav en read-only property, med en fieldvariabel der kun sættes én gang.

f.eks

property MinConst : string read FMinConst;





Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408195
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste