Because then you are forever checking status with code like

If Status = 'Active' then  ..
Else if Status = 'Pending'...

So you end up using consts.  And you still have the problem that your Status 
may end up as '' or 'Ative' or 'as323'

And you can't use case statements.

If status is purely informational, then using a string is fine.  Once you start 
checking it and acting on it, then string based code becomes increasingly ugly.

What I do is something like:

TMyStatus = (Active, Pending, Ended, Paused, Deleted, Suspended);
StatusMeanings = array[TMyStatus] of string = ('Active', 'Pending', 'Ended', 
'Paused', 'Deleted', 'Suspended');
...
ShowMessage(StatusMeanings[Status]);

Regards

Sean Cross
IT Systems Development Manager

Catalyst Risk Management
PO Box 230
50 Dalton St
Napier 4140
DDI: 06-8340362
mobile: 021 270 3466
Visit us at http://www.catalystrisk.co.nz/

Offices in Auckland, Napier, Wellington & Christchurch

Disclaimer:
"The information contained in this document is confidential to the addressee(s) 
and may be legally privileged. Any view or opinions expressed are those of the 
author and may not be those of Catalyst Risk Management. No guarantee or 
representation is made that this communication is free of errors, viruses or 
interference. If you have received this e-mail message in error please delete 
it and notify me. Thank you."


> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:delphi-
> [EMAIL PROTECTED] On Behalf Of Nick
> Sent: Thursday, 10 May 2007 10:49 a.m.
> To: NZ Borland Developers Group - Delphi List
> Subject: [DUG] Why use a set when a string will work OK (and less
> code)?
>
> Why use a set when string work ok? (and I think it's a set)
> Question: I have seen this quite a bit and apparently it's "good
> practice" however to me it seems like more work.
> Example
>
> Whats the point in doing this
> MyStatus = (Active, Pending, Ended, Paused, Deleted, Suspended););
> type
>   Something = class
>   name : string;
>   status : MyStatus;
> end;
>
> then example on create or something
>   status := Active;
>
> (yes, missed out lots of steps :P)
> and now if I want to show the status, I have to do something like..
> If status = MyStatus(Active) then showmessage('Active');
> If status = MyStatus(Pending) then showmessage('Pending');  etc
>
> Why go though all that hassle when just doing this is fine
>  status : string;
>  status := 'Active'
>  showmessage(status);
>
> so instead of using "MyStatus" types I just use a string - this means
> when I want to output the status to the user I don't have to try and
> convert it to string first.
> So, why do it?
>
> Hmmmm
> Nick
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi@delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to [EMAIL PROTECTED] with
> Subject: unsubscribe

_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to [EMAIL PROTECTED] with Subject: unsubscribe

Reply via email to