|
| Kan jeg konvetere en String til TWindowSta~ Fra : Michael |
Dato : 13-12-00 14:02 |
|
Kan jeg konvetere en String til TWindowState?
var
winState: String;
begin
winState := 'wsMaximized';
form1.windowState := winState;
....
Sådan her vil den selvfølgelig ikke virke da winState er en String, hvordan
kan jeg konvetere den eller skal jeg igang med en gang if sætninger?
Det skal lige siges at jeg henter wsMaximized eller en de andre fra en
tekstfil.
På forhånd tak for hjælpen!
/md
--
/md
| |
Jesper Krog Andersen (13-12-2000)
| Kommentar Fra : Jesper Krog Andersen |
Dato : 13-12-00 15:21 |
|
michael@danwebportal.com (Michael) wrote in
<ztKZ5.7053$0p2.439616@news000.worldonline.dk>:
>Kan jeg konvetere en String til TWindowState?
>
>var
> winState: String;
>begin
> winState := 'wsMaximized';
>
> form1.windowState := winState;
>...
>
>Sådan her vil den selvfølgelig ikke virke da winState er en String,
>hvordan kan jeg konvetere den eller skal jeg igang med en gang if
>sætninger? Det skal lige siges at jeg henter wsMaximized eller en de
>andre fra en tekstfil.
Nej det kan du ikke, men du kan konvertere mellem TWindowState og en
integer. Ex. (MyInt er en integer)
form1.windowstate = TWindowState(MyInt);
og
MyInt = integer(form1.windowstate);
Så hvis du ikke har noget imod at dine window-states står som '0', '1'
o.s.v. i din fil, kan du bruge det.
/Jesper
| |
Jan Pedersen - JPSof~ (13-12-2000)
| Kommentar Fra : Jan Pedersen - JPSof~ |
Dato : 13-12-00 21:03 |
|
Hej.
"Michael" <michael@danwebportal.com> skrev i en meddelelse
news:ztKZ5.7053$0p2.439616@news000.worldonline.dk...
> Kan jeg konvetere en String til TWindowState?
>
> var
> winState: String;
> begin
> winState := 'wsMaximized';
>
> form1.windowState := winState;
> ...
>
> Sådan her vil den selvfølgelig ikke virke da winState er en String,
hvordan
> kan jeg konvetere den eller skal jeg igang med en gang if sætninger?
> Det skal lige siges at jeg henter wsMaximized eller en de andre fra en
> tekstfil.
>
> På forhånd tak for hjælpen!
>
> /md>
Nej, det kan du ikke. winState (ovenfor) er deklareret som en variabel
af type String, hvorimod WindowState er en enumerated type (TWindowState).
Du kan deklarere din egen på eks. denne måde:
Type
TMyWindowState = (Normal, Minimeret, Maximeret);
Og så typcaste den via WindowsState:= TWindowState(Normal);
-Jan
| |
David A. D. Konrad (13-12-2000)
| Kommentar Fra : David A. D. Konrad |
Dato : 13-12-00 21:16 |
|
Michael wrote in message ...
>Kan jeg konvetere en String til TWindowState?
>
>var
> winState: String;
>begin
> winState := 'wsMaximized';
>
> form1.windowState := winState;
>...
Det kan du faktisk godt! Inkluder TypInfo i din uses. I det følgende har jeg
en form med to knapper, en label og en editbox. WinState er af type string.
//her får jeg en string med den aktuelle windowstate
procedure TForm1.Button1Click(Sender: TObject);
begin
WinState:=GetEnumName(Typeinfo(TWindowState),integer(WindowState));
label1.caption:=WinState;
end;
//her sætter jeg formens windowstate i forhold til noget jeg har tastet ind
i edit1
procedure TForm1.Button2Click(Sender: TObject);
begin
WinState:=Edit1.text;
try
WindowState:=TWindowState(GetEnumValue(Typeinfo(TWindowState),WinState));
except
raise Exception.create('Bull : Det er jo ikke en TWindowState!!');
end;
end;
håber det hjalp!
PS : Ovenstående gælder naturligvs alle enumerede typer....
hilsen,
| |
Jan Pedersen - JPSof~ (13-12-2000)
| Kommentar Fra : Jan Pedersen - JPSof~ |
Dato : 13-12-00 22:35 |
|
Spørgsmålet er så, hvad er optimal (hurtigst) kode?
Jeg foretrækker WindowState:= wsXXXX;
"David A. D. Konrad" <konrad@dadk.dk> skrev i en meddelelse
news:CNQZ5.12270$72.205624@twister.sunsite.auc.dk...
> Michael wrote in message ...
> >Kan jeg konvetere en String til TWindowState?
> >
> >var
> > winState: String;
> >begin
> > winState := 'wsMaximized';
> >
> > form1.windowState := winState;
> >...
>
>
> Det kan du faktisk godt! Inkluder TypInfo i din uses. I det følgende har
jeg
> en form med to knapper, en label og en editbox. WinState er af type
string.
>
> //her får jeg en string med den aktuelle windowstate
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> WinState:=GetEnumName(Typeinfo(TWindowState),integer(WindowState));
> label1.caption:=WinState;
> end;
>
> //her sætter jeg formens windowstate i forhold til noget jeg har tastet
ind
> i edit1
> procedure TForm1.Button2Click(Sender: TObject);
> begin
> WinState:=Edit1.text;
> try
>
> WindowState:=TWindowState(GetEnumValue(Typeinfo(TWindowState),WinState));
> except
> raise Exception.create('Bull : Det er jo ikke en TWindowState!!');
> end;
> end;
>
> håber det hjalp!
>
> PS : Ovenstående gælder naturligvs alle enumerede typer....
>
> hilsen,
>
>
>
| |
Niels (niLLer) (13-12-2000)
| Kommentar Fra : Niels (niLLer) |
Dato : 13-12-00 22:39 |
|
Just as I expected, "Jan Pedersen - JPSoft DK" <yeah@right.net> came
up with this:
>Spørgsmålet er så, hvad er optimal (hurtigst) kode?
>Jeg foretrækker WindowState:= wsXXXX;
Det er det også, men det oprindelige spørgsmål gik på at konvertere en
string til en ordinal værdi af typen TWindowState, og det er det
Konrad har svaret på. Hvis det er noget man bare skal gøre internet,
så kan man selvfølgelig godt gøre det på "den simple måde".
Niels (aka. niLLer)
--
e-mail: nmartin at iname dot com ICQ UIN: 50187323
http://xoasis.com/~niller/ - niLLer's pages (My programs, in English)
http://whitehat.dk/g4s/ - The G4S Page (Personlig side, på dansk)
-- I've been Windozed!
| |
|
|