|
| 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;
| |
|
|