/ 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
Fra Selvdefinerende type til Tcolor ?
Fra : SpookiePower


Dato : 31-08-02 15:40

Jeg har lavet en type som ser sådan ud -
TFarve = (clRed, clYellow, clLime, clBlue, clPurple);

Disse farver af typen TFarve, skal jeg have lagt over i et Panel som bruger
typen TColor. Er det egentligt muligt at konvertere en selvdefineret type
til
en anden, feks TColor ?



 
 
Olav M.J. Christians~ (31-08-2002)
Kommentar
Fra : Olav M.J. Christians~


Dato : 31-08-02 19:00

"SpookiePower" <boxjunk2600@hotmail.com> skrev i en meddelelse
news:akqkhi$n7l$1@news.cybercity.dk...

> Jeg har lavet en type som ser sådan ud -
> TFarve = (clRed, clYellow, clLime, clBlue, clPurple);
>
> Disse farver af typen TFarve, skal jeg have lagt over i et Panel som
bruger
> typen TColor. Er det egentligt muligt at konvertere en selvdefineret
type
> til
> en anden, feks TColor ?

Hmmmm.... nej - den går ikke Granberg.

Du har vist blandet to ting sammen. Selv om du har anvendt navne som
også bruges om standard farver, så er det stadig en *opremsningstype* du
har defineret (det betyder parenteserne). Du kunne f.eks. have skrevet
dette i stedet:

TFarve = (farveRoed, farveGul, farveGroen, farveBlaa, farveLilla);

Det er nok en lidt dum måde at gøre det på, hvis du ønsker
typekompatibilitet med TColor.

Du kan sagtens få din farve ind i et Panel, f.eks. sådan her:
Panel1.Color := TColor(MinFarve);

Det der sker så, er at du får typecastet dine værdier over, men det
bliver helt forkert i dette tilfælde, fordi værdierne ikke svarer til
hinanden (du får ordinalværdierne 0,1,2,3,4,5).

Måske har du brug for en "Subrange type" i stedet for? Denne har dog
visse begrænsninger. Se selv i dette udklip fra Delphis hjælpefil:

A subrange type represents a subset of the values in another ordinal
type (called the base type). Any construction of the form Low..High,
where Low and High are constant expressions of the same ordinal type and
Low is less than High, identifies a subrange type that includes all
values between Low and High. For example, if you declare the enumerated
type

type TColors = (Red, Blue, Green, Yellow, Orange, Purple, White, Black);

you can then define a subrange type like

type TMyColors = Green..White;

Here TMyColors includes the values Green, Yellow, Orange, Purple, and
White.

--
M.v.h.
Olav

Fjern intet for at skrive til mig



SpookiePower (01-09-2002)
Kommentar
Fra : SpookiePower


Dato : 01-09-02 09:12

Tak for hjælpne. Det vil jeg kigger lidt nærmere på.



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste