Re: [Gambas-user] Using Character constants in Gambas

2011-03-08 Thread Caveat
I would just create a Module called something like DialogFactory...

PUBLIC ErrorDialog AS Integer = 0
PUBLIC WarningDialog AS Integer = 1
PUBLIC InformationDialog AS Integer = 2
PRIVATE DefaultDialogType AS Integer = ErrorDialog
PRIVATE AllowedTypes AS Integer[] = [ErrorDialog, WarningDialog,
InformationDialog]

PUBLIC FUNCTION getDialog(dialogType AS Integer) AS VikramDialog
  
  DIM vDialog AS NEW VikramDialog
  DIM type AS Integer
  FOR EACH type IN AllowedTypes
IF type = dialogType
  vDialog.dialogType = dialogType
  RETURN vDialog
END IF
  NEXT
  PRINT ERROR!  Unknown dialog type:   dialogType
  vDialog.dialogType = DefaultDialogType
  RETURN vDialog
END


Using this code simply becomes:

  DIM aDialog AS VikramDialog
  aDialog = DialogFactory.getDialog(DialogFactory.InformationDialog)
  PRINT aDialog.dialogType
  aDialog = DialogFactory.getDialog(DialogFactory.WarningDialog)
  PRINT aDialog.dialogType
  aDialog = DialogFactory.getDialog(5)
  PRINT aDialog.dialogType


Of course, you can add other stuff to the getDialog function, like the
dialog name, title etc. etc...

What do you think?

Regards,
Caveat

On Mon, 2011-03-07 at 23:09 -0800, vikram wrote:
 Hi,
 
 I am working on an application in which I reuse the same dialog for 
 performing different tasks. I have a PUBLIC INTEGER variable(named 
 dialogType) in the dialog's .class file. When creating instances of this 
 dialog I set the DialogInstance.dialogType to the value(0,1,2,...) which 
 indicates the purpose of the dialog. The value of DialogInstance.dialogType 
 is used within the dialog to decide what to do with the user input.
 
 I am using numeric values to indicate the dialog type. This isn't very 
 elegant. I am looking for the Gambas equivalent of doing a #define CHARCONST 
 value in C.
 
 I have tried using a Collection.
 
 DIM DialogType AS NEW Collection
 DialogType[SomeType0] = 0
 DialogType[SomeType1] = 1
 DialogType[SomeType2] = 2
 DialogType[SomeType3] = 3
 DialogType[SomeType4] = 4
 
 I am thinking of placing the collection's definition in a Module and then 
 using it to replace the numeric constants:
 DIM DialogInstance as DialogName
 DialogInstance = NEW DialogName
 DialogInstance.dialogType = ModuleName.DialogType[SomeType0]
 'current code
 'DialogInstance.dialogType = 0
 
 Is there a better way of using character constants in Gambas?
 
 Gambas 2.21/Debian 6
 
 Thanks,
 Vikram Nair
 
 
 
   
 --
 What You Don't Know About Data Connectivity CAN Hurt You
 This paper provides an overview of data connectivity, details
 its effect on application quality, and explores various alternative
 solutions. http://p.sf.net/sfu/progress-d2d
 ___
 Gambas-user mailing list
 Gambas-user@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/gambas-user



--
What You Don't Know About Data Connectivity CAN Hurt You
This paper provides an overview of data connectivity, details
its effect on application quality, and explores various alternative
solutions. http://p.sf.net/sfu/progress-d2d
___
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user


Re: [Gambas-user] Using Character constants in Gambas

2011-03-08 Thread vikram
Hi Caveat,

Thanks, that is a lot simpler :)

Best Regards,
Vikram Nair



  
--
What You Don't Know About Data Connectivity CAN Hurt You
This paper provides an overview of data connectivity, details
its effect on application quality, and explores various alternative
solutions. http://p.sf.net/sfu/progress-d2d
___
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user


Re: [Gambas-user] Using Character constants in Gambas

2011-03-08 Thread vikram
Hi Caveat,

Thanks, that is a lot simpler :)

Best Regards,
Vikram Nair



  
--
What You Don't Know About Data Connectivity CAN Hurt You
This paper provides an overview of data connectivity, details
its effect on application quality, and explores various alternative
solutions. http://p.sf.net/sfu/progress-d2d
___
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user


Re: [Gambas-user] Using Character constants in Gambas

2011-03-08 Thread Caveat
You're welcome :-)

I was thinking if you want your module to be used by others who may have
the bright idea of changing the public attributes, you should probably
code using the CONST keyword...it's also clearer that these values
should never be  changed...

PUBLIC CONST ErrorDialog AS Integer = 0
PUBLIC CONST WarningDialog AS Integer = 1
PUBLIC CONST InformationDialog AS Integer = 2
PRIVATE DefaultDialogType AS Integer = ErrorDialog
...


The following code will now produce a runtime error on the 2nd line:

  PRINT before:   DialogFactory.ErrorDialog
  DialogFactory.ErrorDialog = 5
  PRINT after:   DialogFactory.ErrorDialog

Regards,
Caveat


On Tue, 2011-03-08 at 03:07 -0800, vikram wrote:
 Hi Caveat,
 
 Thanks, that is a lot simpler :)
 
 Best Regards,
 Vikram Nair
 
 
 
   
 --
 What You Don't Know About Data Connectivity CAN Hurt You
 This paper provides an overview of data connectivity, details
 its effect on application quality, and explores various alternative
 solutions. http://p.sf.net/sfu/progress-d2d
 ___
 Gambas-user mailing list
 Gambas-user@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/gambas-user



--
What You Don't Know About Data Connectivity CAN Hurt You
This paper provides an overview of data connectivity, details
its effect on application quality, and explores various alternative
solutions. http://p.sf.net/sfu/progress-d2d
___
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user


[Gambas-user] Using Character constants in Gambas

2011-03-07 Thread vikram
Hi,

I am working on an application in which I reuse the same dialog for performing 
different tasks. I have a PUBLIC INTEGER variable(named dialogType) in the 
dialog's .class file. When creating instances of this dialog I set the 
DialogInstance.dialogType to the value(0,1,2,...) which indicates the purpose 
of the dialog. The value of DialogInstance.dialogType is used within the dialog 
to decide what to do with the user input.

I am using numeric values to indicate the dialog type. This isn't very elegant. 
I am looking for the Gambas equivalent of doing a #define CHARCONST value in C.

I have tried using a Collection.

DIM DialogType AS NEW Collection
DialogType[SomeType0] = 0
DialogType[SomeType1] = 1
DialogType[SomeType2] = 2
DialogType[SomeType3] = 3
DialogType[SomeType4] = 4

I am thinking of placing the collection's definition in a Module and then using 
it to replace the numeric constants:
DIM DialogInstance as DialogName
DialogInstance = NEW DialogName
DialogInstance.dialogType = ModuleName.DialogType[SomeType0]
'current code
'DialogInstance.dialogType = 0

Is there a better way of using character constants in Gambas?

Gambas 2.21/Debian 6

Thanks,
Vikram Nair



  
--
What You Don't Know About Data Connectivity CAN Hurt You
This paper provides an overview of data connectivity, details
its effect on application quality, and explores various alternative
solutions. http://p.sf.net/sfu/progress-d2d
___
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user