In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Few Questions

Xailer English public forum
Responder
david fung
Mensajes: 257
Registrado: Mié Jul 19, 2006 8:48 am

Few Questions

Mensaje por david fung »

1. Is there any expiration for Xailer Demo ?
2. I moved folder "Bcc55" and its content from "c:borland" to "c:"
and modified, Tools, Options, BCC++ directories; but went I compile
BTS sample appl
I got Fatal: Unable to open file 'UUID.LIB'. Is there an hidden
reference to BCC++ directory which I cannot change ? Problem is gone
when I reversed the moved.
3. For Sample App - Visor
How could I pass value from Form2.prg object to Form1.prg object ?
In particular, upon TConfig FormDestroy, I would like to pass the
newly selected "root directory" i.e. oEdit1:Value or
oBrowseForFolderDlg1:cRoot
to TVisor's oFileOpenDlg1:cInitalDir
ie so that the newly selected directory will be reflected
immediately without restarting the appl.
BTW, What is the technical name for
1. Form1.prg, Form2.prg, Visor.prg
2. TVisor, TConfig
A Class, An instance ....
4. What is the purpose of nAnchors & its values akTOP, ... akALL ?
Things are getting more interesting, but I guess rough time ahead !
Thanks in advanced.
David Fung
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Few Questions

Mensaje por jfgimenez »

David,
> 1. Is there any expiration for Xailer Demo ?
No. At least for now
> 2. I moved folder "Bcc55" and its content from "c:borland" to "c:"
> and modified, Tools, Options, BCC++ directories; but went I compile
> BTS sample appl
> I got Fatal: Unable to open file 'UUID.LIB'. Is there an hidden
> reference to BCC++ directory which I cannot change ? Problem is gone
> when I reversed the moved.
Remove the file binilink32.cfg and/or bintlink32.cfg to allow Xailer to
create it again. Or edit it by yourself, and change the paths appropiately.
It's a known issue of Borland linker.
> 3. For Sample App - Visor
> How could I pass value from Form2.prg object to Form1.prg object ?
> In particular, upon TConfig FormDestroy, I would like to pass the
> newly selected "root directory" i.e. oEdit1:Value or
> oBrowseForFolderDlg1:cRoot
>
> to TVisor's oFileOpenDlg1:cInitalDir
>
> ie so that the newly selected directory will be reflected
> immediately without restarting the appl.
The easyest way is to access it directly from the caller routine. I.e.:
WITH OBJECT TForm2():New( Self )
...
IF :ShowModal() == mrOK
...
MsgInfo( :oFileOpenDlg1:cInitialDir )
ENDIF
END
> BTW, What is the technical name for
> 1. Form1.prg, Form2.prg, Visor.prg
Modules
> 2. TVisor, TConfig
> A Class, An instance ....
Classes. But any windows of type 'TVisor', 'TConfig', etc. is an object
(instance) of its corresponding class.
> 4. What is the purpose of nAnchors & its values akTOP, ... akALL ?
Please, see the video "Alignment, anchos and splitters" from the download
page in our web. It's in spanish, but you can see how it works.
--
Regards,
Jose F. Gimenez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
david fung
Mensajes: 257
Registrado: Mié Jul 19, 2006 8:48 am

Few Questions

Mensaje por david fung »

Thank you. But I don't understand about Q3
> David,
>
>> 1. Is there any expiration for Xailer Demo ?
>
> No. At least for now
>
>
>> 2. I moved folder "Bcc55" and its content from "c:borland" to "c:"
>> and modified, Tools, Options, BCC++ directories; but went I compile
>> BTS sample appl
>> I got Fatal: Unable to open file 'UUID.LIB'. Is there an hidden
>> reference to BCC++ directory which I cannot change ? Problem is gone
>> when I reversed the moved.
>
> Remove the file binilink32.cfg and/or bintlink32.cfg to allow Xailer to
> create it again. Or edit it by yourself, and change the paths appropiately.
> It's a known issue of Borland linker.
>
>
>> 3. For Sample App - Visor
>> How could I pass value from Form2.prg object to Form1.prg object ?
>> In particular, upon TConfig FormDestroy, I would like to pass the
>> newly selected "root directory" i.e. oEdit1:Value or
>> oBrowseForFolderDlg1:cRoot
>>
>> to TVisor's oFileOpenDlg1:cInitalDir
>>
>> ie so that the newly selected directory will be reflected
>> immediately without restarting the appl.
>
> The easyest way is to access it directly from the caller routine. I.e.:
>
> WITH OBJECT TForm2():New( Self )
> ...
> IF :ShowModal() == mrOK
> ...
> MsgInfo( :oFileOpenDlg1:cInitialDir )
> ENDIF
> END
What does it do ? Where should I place them ? I tried different places
but failed. Can you tell me where to place them in the sample app. - Visor.
>
>
>> BTW, What is the technical name for
>> 1. Form1.prg, Form2.prg, Visor.prg
>
> Modules
>
>> 2. TVisor, TConfig
>> A Class, An instance ....
>
> Classes. But any windows of type 'TVisor', 'TConfig', etc. is an object
> (instance) of its corresponding class.
>
>
>> 4. What is the purpose of nAnchors & its values akTOP, ... akALL ?
>
> Please, see the video "Alignment, anchos and splitters" from the download
> page in our web. It's in spanish, but you can see how it works.
>
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Few Questions

Mensaje por jfgimenez »

David,
>> The easyest way is to access it directly from the caller routine. I.e.:
>>
>> WITH OBJECT TForm2():New( Self )
>> ...
>> IF :ShowModal() == mrOK
>> ...
>> MsgInfo( :oFileOpenDlg1:cInitialDir )
>> ENDIF
>> END
>
> What does it do ? Where should I place them ? I tried different places but
> failed. Can you tell me where to place them in the sample app. - Visor.
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Few Questions

Mensaje por jfgimenez »

David,
>> The easyest way is to access it directly from the caller routine. I.e.:
>>
>> WITH OBJECT TForm2():New( Self )
>> ...
>> IF :ShowModal() == mrOK
>> ...
>> MsgInfo( :oFileOpenDlg1:cInitialDir )
>> ENDIF
>> END
>
> What does it do ? Where should I place them ? I tried different places but
> failed. Can you tell me where to place them in the sample app. - Visor.
Perhaps you could understand it better as:
oForm2 := TForm2():New( Self )
...
If oForm2:ShowModal() == mrOK
...
MsgInfo( oForm2:oFileOpenDlg1:cInitialDir )
ENDIF
First, a new TForm2 is instantiated (oForm2 ). Then, it's showed modal, and
if it returns mrOK, then a message is shown. This message contains the
expresion:
oForm2:oFileOpenDlg1:cInitialDir
that is, the value of the property cInitialDir of the component
oFileOpenDlg1 of the form oForm2.
The matter is that althought oForm2 is closed at this time, and all
contained controls have been destroyed, the corresponding objects are still
alive, and most of their properties can be accesed. There are, of course,
several properties in several controls that cannot be accessed when those
controls are destroyed, just because some properties are bind directly to
some window's property. Those properties and/or events are marked as "Only
after created" in the help.
--
Regards,
Jose F. Gimenez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
david fung
Mensajes: 257
Registrado: Mié Jul 19, 2006 8:48 am

Few Questions

Mensaje por david fung »

Can you tell me
WITH OBJECT TIni():New(...)
END
What is OBJECT TIni() ?
This statement will instantiated an object "Tini" ?
it looks like a method as well, isn't it ?
When are all the "COMPONENT"s (objects) within the CLASS & ENDCLASS
created (or can I say instantiated) ?
Are they like declaration statements? They are created upon the
invocation of the module (ie. Form1.prg / Form2.prg)
What is the scope (accessible by other modules or METHOD) & life span of
the properties of these objects ?
Any good reference book on OOP ?
Jose F. Gimenez wrote:
> David,
>
>>> The easyest way is to access it directly from the caller routine. I.e.:
>>>
>>> WITH OBJECT TForm2():New( Self )
>>> ...
>>> IF :ShowModal() == mrOK
>>> ...
>>> MsgInfo( :oFileOpenDlg1:cInitialDir )
>>> ENDIF
>>> END
>> What does it do ? Where should I place them ? I tried different places but
>> failed. Can you tell me where to place them in the sample app. - Visor.
>
> Perhaps you could understand it better as:
>
> oForm2 := TForm2():New( Self )
> ...
> If oForm2:ShowModal() == mrOK
> ...
> MsgInfo( oForm2:oFileOpenDlg1:cInitialDir )
> ENDIF
>
> First, a new TForm2 is instantiated (oForm2 ). Then, it's showed modal, and
> if it returns mrOK, then a message is shown. This message contains the
> expresion:
>
> oForm2:oFileOpenDlg1:cInitialDir
>
> that is, the value of the property cInitialDir of the component
> oFileOpenDlg1 of the form oForm2.
>
> The matter is that althought oForm2 is closed at this time, and all
> contained controls have been destroyed, the corresponding objects are still
> alive, and most of their properties can be accesed. There are, of course,
> several properties in several controls that cannot be accessed when those
> controls are destroyed, just because some properties are bind directly to
> some window's property. Those properties and/or events are marked as "Only
> after created" in the help.
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Few Questions

Mensaje por jfgimenez »

David,
> Can you tell me
>
> WITH OBJECT TIni():New(...)
> END
>
> What is OBJECT TIni() ?
>
> This statement will instantiated an object "Tini" ?
Yes, the expression 'TIni():New(...)' instances an object from the class
TIni.
OTOH, the command WITH OBJECT ... / END is a lenguage extension, that allow
to reference an object using a simple : without using a var repeteadly.
I.e.:
oIni := TIni():New( "config.ini" )
oIni:GetEntry( ... )
oIni:GetEntry( ... )
oIni:GetEntry( ... )
may be changed by:
WITH OBJECT TIni():New( "config.ini" )
:GetEntry( ... )
:GetEntry( ... )
:GetEntry( ... )
END
> When are all the "COMPONENT"s (objects) within the CLASS & ENDCLASS
> created (or can I say instantiated) ?
> Are they like declaration statements? They are created upon the invocation
> of the module (ie. Form1.prg / Form2.prg)
Those sentences (COMPONENT) are simply class member's declarations. The
component themself are created when the form's method CreateForm() is
executed, which is launched internaly from the form's New() constructor.
> What is the scope (accessible by other modules or METHOD) & life span of
> the properties of these objects ?
An object exist while there is at least one reference to it. That is, if
there is one variable, parameter, array element, or so, that contains a
reference to the object, the object is life.
Respecting the scope, there are 4 scopes inside any class:
- PRIVATE: can be accessed only from the own class
- PROTECTED: can be accessed from the own class or any derived one
- PUBLIC: can be accessed from anywhere
- PUBLISHED: exactly as PUBLIC, but also are visible in the object inspector
of the IDE
Also, there is a modifier:
- READONLY: the member (DATA, PROPERTY or COMPONENT) can be assigned from
the own class, and can be readed from anywhere
> Any good reference book on OOP ?
I don't know. Perhaps google has many.
--
Regards,
Jose F. Gimenez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder