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.

Some questions

Xailer professional forum in English
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Some questions

Mensaje por ignacio »

Giussepe,
Your array has 4 columns and 1 row, impossible to jump to 4th row. BTW to
move the active row you can modify directly the DATA nArrayAt and perform a
Refresh() and to select a column by code do oBrowse:SelectCol( nCol ).
To use images you must use the OnGetDataEvent(). OnGetData receives the text
and the image to show by reference. You just need to change it on the event
code. For example (Set image 1 on first column):
METHOD MyBrowseCol1GetData( oSender, cText, nImage )
nImage := 1
RETURN nil
That's all.
Regards,
"Giuseppe Bogetti" <bgsoft@tiscali.it> escribió en el mensaje
news:[email=dxicvhamjsqt.1j0wnaylao72u.dlg@40tude.net...]dxicvhamjsqt.1j0wnaylao72u.dlg@40tude.net...[/email]
> In data Thu, 3 Mar 2005 20:14:25 +0100, Giuseppe Bogetti ha scritto:
>
> Hi,
>
> I've this array { { 2, "Test", "Test2", .T. } } to be used in conjunction
> with an ArrayBrowser object.
>
> How can I select element 4 of array in column 1 of ArrayBrowser ?
> How can I display images instead of real values in a column (after having
> set imagelist object of browser) ?
>
> Do I have to use OnGetData event ? How ?
>
> --
> Best regards,
>
> Giuseppe Bogetti
> B.G. Soft
> Cuneo - Italy
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
InvalidAccount
Mensajes: 53
Registrado: Vie Mar 04, 2005 9:58 am

Some questions

Mensaje por InvalidAccount »

Giussepe,
Your array has 4 columns and 1 row, impossible to jump to 4th row. BTW to
move the active row you can modify directly the DATA nArrayAt and perform a
Refresh() and to select a column by code do oBrowse:SelectCol( nCol ).
To use images you must use the OnGetDataEvent(). OnGetData receives the text
and the image to show by reference. You just need to change it on the event
code. For example (Set image 1 on first column):
METHOD MyBrowseCol1GetData( oSender, cText, nImage )
nImage := 1
RETURN nil
That's all.
Regards,
"Giuseppe Bogetti" <bgsoft@tiscali.it> escribió en el mensaje
news:[email=dxicvhamjsqt.1j0wnaylao72u.dlg@40tude.net...]dxicvhamjsqt.1j0wnaylao72u.dlg@40tude.net...[/email]
> In data Thu, 3 Mar 2005 20:14:25 +0100, Giuseppe Bogetti ha scritto:
>
> Hi,
>
> I've this array { { 2, "Test", "Test2", .T. } } to be used in conjunction
> with an ArrayBrowser object.
>
> How can I select element 4 of array in column 1 of ArrayBrowser ?
> How can I display images instead of real values in a column (after having
> set imagelist object of browser) ?
>
> Do I have to use OnGetData event ? How ?
>
> --
> Best regards,
>
> Giuseppe Bogetti
> B.G. Soft
> Cuneo - Italy
Giuseppe Bogetti
Mensajes: 281
Registrado: Vie Ago 04, 2006 4:58 pm

Some questions

Mensaje por Giuseppe Bogetti »

In data Thu, 10 Mar 2005 11:06:44 +0100, Ignacio Ortiz de Zúñiga ha
scritto:
> Giussepe,
>
> Your array has 4 columns and 1 row, impossible to jump to 4th row. BTW to
> move the active row you can modify directly the DATA nArrayAt and perform a
> Refresh() and to select a column by code do oBrowse:SelectCol( nCol ).
I was not clear, my question was about columns and not rows.
With this array { { 2, "Test", "Test2", .T. } } and a 4 column browser with
an imagelist with at least two elements containing two checkbox bitmap
I want column 1 to show "Test2"
I want column 2 to show .t.
I want column 3 to show 2
I want column 4 to show "Test"
So based on your previous explanation :
METHOD MyBrowseCol1GetData( oSender, cText, nImage )
cText := oSender:oParent:aArrayData[ oSender:oParent:nArrayAt, 3 ]
RETURN nil
METHOD MyBrowseCol2GetData( oSender, cText, nImage )
nImage := 1
RETURN nil
METHOD MyBrowseCol3GetData( oSender, cText, nImage )
cText := Str( oSender:oParent:aArrayData[ oSender:oParent:nArrayAt, 1 ] )
RETURN nil
METHOD MyBrowseCol4GetData( oSender, cText, nImage )
cText := oSender:oParent:aArrayData[ oSender:oParent:nArrayAt, 2 ]
RETURN nil
Do I understand well ?
--
Best regards,
Giuseppe Bogetti
B.G. Soft
Cuneo - Italy
Giuseppe Bogetti
Mensajes: 281
Registrado: Vie Ago 04, 2006 4:58 pm

Some questions

Mensaje por Giuseppe Bogetti »

In data Thu, 10 Mar 2005 11:06:44 +0100, Ignacio Ortiz de Zúñiga ha
scritto:
> Giussepe,
>
> Your array has 4 columns and 1 row, impossible to jump to 4th row. BTW to
> move the active row you can modify directly the DATA nArrayAt and perform a
> Refresh() and to select a column by code do oBrowse:SelectCol( nCol ).
I was not clear, my question was about columns and not rows.
With this array { { 2, "Test", "Test2", .T. } } and a 4 column browser with
an imagelist with at least two elements containing two checkbox bitmap
I want column 1 to show "Test2"
I want column 2 to show .t.
I want column 3 to show 2
I want column 4 to show "Test"
So based on your previous explanation :
METHOD MyBrowseCol1GetData( oSender, cText, nImage )
cText := oSender:oParent:aArrayData[ oSender:oParent:nArrayAt, 3 ]
RETURN nil
METHOD MyBrowseCol2GetData( oSender, cText, nImage )
nImage := 1
RETURN nil
METHOD MyBrowseCol3GetData( oSender, cText, nImage )
cText := Str( oSender:oParent:aArrayData[ oSender:oParent:nArrayAt, 1 ] )
RETURN nil
METHOD MyBrowseCol4GetData( oSender, cText, nImage )
cText := oSender:oParent:aArrayData[ oSender:oParent:nArrayAt, 2 ]
RETURN nil
Do I understand well ?
--
Best regards,
Giuseppe Bogetti
B.G. Soft
Cuneo - Italy
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Some questions

Mensaje por ignacio »

This is a multi-part message in MIME format.
------=_NextPart_000_0013_01C5258D.2FC5B630
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0014_01C5258D.2FC5B630"
------=_NextPart_001_0014_01C5258D.2FC5B630
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Guiseppe,=20
From our latest whatsnew.htm (not published yet, only in spanish):
New feature on xHarbour OOP engine to gain speed. New clauses READ =
METHOD, WRITE METHOD, READ INLINE, WRITE INLINE in PROPERTY command.
This feature BREAKS any existing code that used clauses READ or WRITE on =
the PROPERTY command and should be modified with READ INLINE and WRITE =
INLINE to gain the same functionality. The clauses WRITE METHOD and READ =
METHOD are the most optimized and they admit a unique parameter which is =
the name of the method to call (without quotation marks) and that method =
has to be developed on the same class but NOT with a INLINE clause. When =
the method is developed on a INLINE clause you can use the clauses READ =
and WRITE, but as is, without the word 'METHOD'. Sample:
PROPERTY cText READ METHOD GetText WRITE METHOD SetText
PROPERTY oFont READ GetFont WRITE SetFont
PROPERTY cTag READ INLINE ::GetTag() WRITE INLINE ::SetTag( Value )=20
You can do the following to fix your problem:
1) PROPERTY cName INIT "" READ GetFileName WRITE SetFileName *
2) PROPERTY cName INIT "" READ INLINE ::GetFileName()WRITE INLINE =
::SetFileName( Value )
*Remember that for this to work GetFileName and SetFileName methods MUST =
NOT be created INLINE wich is correct with your source code.
I include with this file the whatsnew.htm for Pre-releases 2
Regards,=20
"Giuseppe Bogetti" <bgsoft@tiscali.it> escribi=F3 en el mensaje =
news:193wl5e8v60og$.14f33xuk46pni$[email=.dlg@40tude.net...].dlg@40tude.net...[/email]
> In data Thu, 3 Mar 2005 20:14:25 +0100, Giuseppe Bogetti ha scritto:
>=20
> Hi,
>=20
> I've built a class that inherit from TIni to manage all setting of a =
single
> backup set.
>=20
> Surely I made something wrong with the definition of the PROPERTY data
> because when I try to access any of this I got a runtime error =
"Message Not
> Found"
>=20
> Can someone please have a look at the attached project and tell me =
what I'm
> doing wrong ?
>=20
> --=20
> Best regards,
>=20
> Giuseppe Bogetti
> B.G. Soft
> Cuneo - Italy
------=_NextPart_001_0014_01C5258D.2FC5B630
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2900.2604" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV><FONT face=3D"Courier New" size=3D2>Guiseppe, </FONT></DIV>
<DIV><FONT face=3D"Courier New" size=3D2></FONT>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2>From our latest whatsnew.htm =
(not published=20
yet, only in spanish):</FONT></DIV>
<DIV><FONT face=3D"Courier New" size=3D2></FONT>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2></FONT>New feature on xHarbour =
OOP engine=20
to gain speed. New clauses READ METHOD, WRITE METHOD, READ INLINE, WRITE =
INLINE=20
in PROPERTY command.<BR><BR>This feature <B>BREAKS</B> any existing code =
that=20
used clauses READ or WRITE on the PROPERTY command and should be =
modified with=20
READ INLINE and WRITE INLINE to gain the same functionality. The clauses =
WRITE=20
METHOD and READ METHOD are the most optimized and they admit a unique =
parameter=20
which is the name of the method to call (without quotation marks) and =
that=20
method has to be developed on the same class but NOT with a INLINE =
clause. When=20
the method is developed on a INLINE clause you can use the clauses READ =
and=20
WRITE, but as is, without the word 'METHOD'. =
Sample:<BR><BR><CODE>PROPERTY cText=20
READ METHOD GetText WRITE METHOD SetText<BR>PROPERTY oFont READ GetFont =
WRITE=20
SetFont<BR>PROPERTY cTag READ INLINE ::GetTag() WRITE INLINE ::SetTag( =
Value )=20
</CODE></DIV>
<DIV><CODE></CODE>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2>You can do the following to fix =
your=20
problem:</FONT></DIV>
<DIV><CODE></CODE>Â</DIV>
<DIV><CODE>1) PROPERTY cNameÂINIT "" READÂGetFileName WRITE=20
SetFileName *</CODE></DIV>
<DIV><CODE>2) PROPERTY cNameÂINIT ""ÂREADÂINLINE=20
::GetFileName()WRITE INLINE ::SetFileName( Value )</CODE></DIV>
<DIV><CODE></CODE>Â</DIV>
<DIV><CODE>*Remember that for this to work GetFileName and SetFileName =
methods=20
MUST NOT be created INLINE wich is correct with your source =
code.</CODE></DIV>
<DIV><CODE></CODE>Â</DIV>
<DIV><CODE>I include with this file the whatsnew.htm for Pre-releases=20
2</CODE></DIV>
<DIV><CODE></CODE>Â</DIV>
<DIV><CODE>Regards, </CODE></DIV>
<DIV><FONT face=3D"Courier New" size=3D2></FONT>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2></FONT>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2>"Giuseppe Bogetti" =
<</FONT><A=20
href=3D"mailto:bgsoft@tiscali.it"><FONT face=3D"Courier New"=20
size=3D2>bgsoft@tiscali.it</FONT></A><FONT face=3D"Courier New" =
size=3D2>> escribi=F3=20
en el mensaje </FONT><A=20
href=3D"news:193wl5e8v60og$.14f33xuk46pni$[email=.dlg@40tude.net].dlg@40tude.net[/email]"><FONT=20
face=3D"Courier New"=20
size=3D2>news:193wl5e8v60og$.14f33xuk46pni$[email=.dlg@40tude.net].dlg@40tude.net[/email]</FONT></A><FON=
T=20
face=3D"Courier New" size=3D2>...</FONT></DIV><FONT face=3D"Courier New" =
size=3D2>>=20
In data Thu, 3 Mar 2005 20:14:25 +0100, Giuseppe Bogetti ha =
scritto:<BR>>=20
<BR>> Hi,<BR>> <BR>> I've built a class that inherit from TIni =
to=20
manage all setting of a single<BR>> backup set.<BR>> <BR>> =
Surely I=20
made something wrong with the definition of the PROPERTY data<BR>> =
because=20
when I try to access any of this I got a runtime error "Message =
Not<BR>>=20
Found"<BR>> <BR>> Can someone please have a look at the attached =
project=20
and tell me what I'm<BR>> doing wrong ?<BR>> <BR>> -- <BR>> =
Best=20
regards,<BR>> <BR>> Giuseppe Bogetti<BR>> B.G. Soft<BR>> =
Cuneo -=20
Italy</FONT></BODY></HTML>
------=_NextPart_001_0014_01C5258D.2FC5B630--
------=_NextPart_000_0013_01C5258D.2FC5B630
Content-Type: text/html;
name="Whatsnew.htm"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="Whatsnew.htm"
<HTML>
<!-- Only for the Web
<link href=3D"xailer.css" rel=3D"stylesheet" type=3D"text/css">
<BODY onload=3D"loaded(2)">
<SPAN class=3D"cuerpo">
-->
<!-- Only for local view -->
<HEAD>
<TITLE>Xailer: What's new</TITLE>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
</HEAD>
<BODY>
<H1>Xailer: What's new</H1>
<H3>Enhancements ang bugs correction on Pre-release 2:</H3>
<UL>
<P><LI>Checkbox control admit numerico values (Zero is false, =
everything else true)
<P><LI>Calculator. To invoke it call the function Calculator()
<P><LI>New feature on xHarbour OOP engine to gain speed.
New clauses READ METHOD, WRITE METHOD, READ INLINE, WRITE INLINE in
PROPERTY command.<br><br>
This feature <b>BREAKS</b> any existing code that used clauses READ or =
WRITE
on the PROPERTY command and should be modified with READ INLINE and
WRITE INLINE to gain the same functionality.
The clauses WRITE METHOD and READ METHOD are the most optimized and =
they
admit a unique parameter which is the name of the method to call =
(without quotation marks)
and that method has to be developed on the same class but NOT with a =
INLINE clause.
When the method is developed on a INLINE clause you can use the =
clauses READ
and WRITE, but as is, without the word 'METHOD'.
Sample:<br><br>
<code>
PROPERTY cText READ METHOD GetText WRITE METHOD SetText<br>
PROPERTY oFont READ GetFont WRITE SetFont<br>
PROPERTY cTag READ INLINE ::GetTag() WRITE INLINE ::SetTag( Value )
</code>
<P><LI>New property lBusy on class Application to change the moue =
cursor to
an Hourglass while his value is .T.
<P><LI>Support of command SET KEY: SetKey( nKey, nFlag, bCode ). For =
example:<br><br>
<code>SetKey( Asc( "C" ), FALT, {|| Calculator() } )</code>
<P><LI>Possibility to change MonthCalendar control colors
<P><LI>Possibility to change TBtnBmp control text color
<P><LI>Browses: Auto adjustment of column width double clicking on =
header
column divider.
<P><LI>Bug on Treeview mouse event trapping
<P><LI>Enhancements on ODBC connections
<P><LI>ADSDataSource: New property lAdsLocking to establish the new or =
old
loking mechanism
<P><LI>Browses: New data nKeyNo to internally save the OnKeyNo value =
to reduce
his call to a minimum due his poor perfomance on some RDDs.
<P><LI>Browses: New event OnNewItem( oSender ) that is triggered every =
time
a new column is added
<P><LI>Browses: Incremental search now admits some non alpha-numeric =
values
<P><LI>Incorrect color asignment on Browses
<P><LI>BrwColumn: The OnEdit() event now recieves a third logical =
parameter
indicating if the edit operation is massive or not
<P><LI>Automatic edition on DBBrowse when the event OnPostEdit is not =
defined
<P><LI>Automatic filter expresion definition on DbfBrowse and DBBrowse =
but
can be changed by the user
<P><LI>DataSet: New event OnCreate
<P><LI>OdbcDataSource: New method QueryArray() that returns a =
multi-dimensional
array with the all queryque devuelve una matriz
<P><LI>TreeView: Change on method HitTest parameters. Now, it receives =
nX and nY
instead of nRow and nCol. <b>This modification may brake existing =
code</b>.
<P><LI>DBNavigator: If some buttons were hidden from the IDE, on =
application
startup generates an error
<P><LI>Documentation updated
</UL>
<H3>Enhancements and Bug fixes on Beta 9 | Pre-release 1:</H3>
<UL>
<P><LI>French has been added to the languages supported by the GUI =
and the IDE.
Now, there are 8 supported languages: Spanish, English, French, =
German,
Italian, Portuguese, Catala and Galician
<P><LI>Change the IDE language at runtime
<P><LI>New TPages control, to manage several pages with controls on
a form or another control. The nIndex property allow to change the
visible page, and can be driven from a treeview control, the =
"next" and
"previous" typical buttons in installer programs or any other way =
you want.
<P><LI>The <I>Options</I> dialog from <I>Tools</I> menu has been =
redesigned
and some options have been added:
<BR>- Reopen the last project at startup
<BR>- Minimize the IDE to the system tray
<BR>- Show grid on forms
<BR>- Grid's size
<P><LI>The <I>Project properties</I> dialog from <I>Project</I> menu =
has been
redesigned and some options have been added:
<BR>- Allow multiple application instances
<BR>- Version: that is, program's version data, that will be added =
to the
resource data in the executable file.
<P><LI>New <I>Editor options</I> dialog, to configure the code =
editor.
<P><LI>New options <I>Comment selected lines</I> and <I>Uncomment =
selected lines</I>
in the code editor's context menu.
<P><LI>Fixed incorrect behaviour of lVisible and lEnabled control =
properties
when trying to reopen a form and any of their value was .F., in =
that case the
control got hidden and/or disabled.
<P><LI>New ImageList editor. Now it is possible to edit the =
oImageList
properties in controls that had it. It allows to add bitmaps and =
icons,
change its order (by drag&drop) and delete any of them.<BR>
It's not possible to assign an external ImageList to a control =
yet.
<P><LI>New browse's columns editor. Now it is possible to edit every =
browse's
properties from the IDE, without writing any code to define its
columns.
<P><LI>Now it is possible to publish a password protected project
<P><LI>Now, the resource files (images, icons, etc.) are included =
when
publishing a project
<P><LI>In the configuration dialog, when a help file was moved up or =
down,
the buttons were not updated. It also happened in the tools =
configuration dialog
<P><LI>When changing the lAutoScroll property, the control was not =
updated
correctly (in case of TImage, the image vanished)
<P><LI>Now, the forms of type bsSPLASH are handled correctly from the =
IDE
(they can be resized, moved and closed; also they are not =
'topmost' anymore)
<P><LI>When selecting a new icon for a form sometimes it didn't work
<P><LI>Enhancements in <I>Import dialogs</I> form
<BR>- New "Configure" button to define equivalences of controls
<P><LI>Insert controls in StatusBar panels<BR>
To insert a control:
<BR>- Add a StatusBar to a form and define the panels
<BR>- Drop a control, ie. a ProgressBar on the StatusBar
<BR>- Select a panel
<BR>- Open the dropdown list in the panel's oControl property and =
select the control
<P><LI>Bug fixed on shortcuts handling.
<P><LI>Controls focus management has been fixed and enhanced. Now =
it's even
possible to open another form from the OnExit event, and return =
..T. or .F.
to change or not the focus, without launching the event twice
<P><LI>New lUseReturn property in Application. Its default value is =
..F., but
setting it to .T. causes that when the user press Enter the focus =
will go
to the next control in the form.
However, if a form has a default button (its lDefault property is =
..T.),
pressing Enter will execute its action and the form will be closed
<P><LI>Some corrections and enhancements in DataControls
<P><LI>Corrections and enhancements in Browse controls
<P><LI>New events in DataSource components
<P><LI>Enhancements to ADSDataSource, with full support of =
dictionaries and
remote connection throw Internet
<P><LI>The methods DeleteAllItems and DeleteAll has been renamed to =
DeleteItems
to unify names in all classes
<P><LI>nImageIndex property has been renamed to nImage in all classes
<P><LI>DeleteAll method has been renamed to DeleteSections in TIni =
class
<P><LI>lShowHelp property has been fixed in all system dialogs
<P><LI>New property lCenter in all system dialogs
<P><LI>Enhancements to TTImer component
<P><LI>New properties nAlignment, nVAlignment and lMultiline in =
TButton
<P><LI>New property nPrintQuality in TPrinter
<P><LI>Fixed missing parameter on TForm's OnSize event
<P><LI>Updated documentation
</UL>
<BR><BR>
<H3>Enhancements and Bug fixes on Beta 8:</H3>
<UL>
<P><LI>Compatibility with new versions of xHarbour
<P><LI>New option "Publish project" on the IDE
<P><LI>New StatusBar editor for the IDE. The StatusBar and all its =
panels
can be easily configured visually from the IDE. The way to edit this =
control
and also the TTabCtrl control can give you an idea on how in the near =
future we
will handle the edition of complex controls like Toolbars or Browses.
<P><LI>Redesign of the "Import dialogs" form on the IDE
<P><LI>New report generator based on the work property of Ignacio
Ortiz de Zuniga (Xailer crew member) used by many Fivewin users.
Completely rewritten basically from scratch to increase its =
performance and
expansion capabilities. Consult the documentation because command =
syntax has
change and also some class members.
<P><LI>New sample SamplesPrintingReports with TReport class
<P><LI>Redesign of DBBrowse navigation, now becomes itself a =
DataControl
client like any other DataControl. This way, any navigational =
operation
performed by the DataSet is automatically controlled by the =
DBBrowse. So, for
example if you do a oDataSet:Skip() the DBBrowse automatically =
moves the
record pointer without any need to perform a refresh on the =
DBBrowse.
<P><LI>New component TProgressDlg
<P><LI>New datacontrol DBHyperLink
<P><LI>New control TFontCombobox
<P><LI>New classes TZipFile and TUnzipFile
<P><LI>TTabCtrl and TFolder:
<BR>- Support of orientation orBOTTOM even with XP themes
<BR>- Support of disabled tabs
<BR>- Ability to change tabs text colour individually
<BR>- New class TTabItem which encapsulates the TTabCtrl tabs. To =
change any TTabItem
property you must click on the TTabCtrl tab, and its =
properties will be shown in
the object inspector.
<BR>- The TFolder pages are now holded by the property aItems.
aPages property is maintained for compatibility, but will be =
deleted in the future.
To upgrade the forms to these changes, you just need to open =
them with the IDE
and resave them, with no need to change anything.
<P><LI>Enhancements on TRichEdit class:
<BR>- New paragraph formats and styles. For example: 1), (1), 1., =
a), A), i), I),...
<BR>- New interline methods for paragraphs. For example: single, =
1,5 lines y double
<BR>- New methods to control zoom. For example: 500%, 200%, 100%, =
75%, 50%, 25%,...
<BR>- New styles for underline. For example: dotted, dash, wave, =
thick,...
<BR>- New methods to handle other document format supported by =
Microsoft Office
libraries (when available) *.htm, *.doc and *.wri
<P><LI>New property lPushLike on TCheckBox and TRadio controls
<P><LI>Support for Post and Get and few enhancements on TInternet =
class
<P><LI>Enhancements on TStatusBar:
<BR>- Support for events OnClick and OnRClick
<BR>- New property nBorderStyle for TStatusPanel
<BR>- Support of Tooltips on TStatus Bar panels. Each panel can =
have its own tooltip
<BR>- Panels editor on the IDE. Panels can be added from the =
control's context menu,
or editing the property aItems. To modify its properties, =
you must click on any panel
<P><LI>Tooltips bug fixed
<P><LI>Important enhancements and adjustments on DataSet controls
<P><LI>Bugs on TMemo class and new property nLineCount
<P><LI>Print preview completely tuned. Now is 100% WYSIWYG
<P><LI>The context menu for non visual components has been reduced on =
the IDE
<P><LI>Added option "Test" on the context menu of all the components =
on the "Dialogs" palette
<P><LI>IDE error when duplicating or pasting a component
<P><LI>Enhancements on the kernel to recover itself from errors
<P><LI>New Richpad sample with language support: English and Spanish
<P><LI>New properties on TDataSet when the record pointer moves:
OnPreChange y OnPosChange.
<P><LI>Methods GetValue and SetValue on TArrayBrowse now admit a =
literal with
the header name as parameter for the column number
<P><LI>Modified TCanvas:TextOut() method. Now admits a new parameter =
nWidth
(is not the last) and the nX position is corrected automatically =
depending
on the text alignment
<P><LI>Modified TCanvas:TextRect() method. Parameters nX and nY =
disappear,
and now the left-to corner of the array aRect is used for =
printing. That
position is corrected automatically based on nTextAlignment and
nTextValignment properties
<P><LI>New property TCanvas:nTextVAlignment
<P><LI>New method TCanvas:SelectFont() to change current font without
creation or destruction of fonts
<P><LI>New DATA TDataSet:lUpdLinked, by default .T. to only refresh =
linked
controls when is .T.
<P><LI>New method TPrinter:WriteData( cText, cJobName ) to print =
directly
to the printer any text without using the GDI. This method lets =
you manage
directly any printer, including the send of Escape sequences.
<P><LI>DataControls documentation
<P><LI>Better and updated documentation
</UL>
<BR><BR>
<H3>Enhancements and Bug fixes on Beta 7:</H3>
<UL>
<P><LI>Solved ODBCDataSet bug with numeric fields under MySql.
<P><LI>Impossibility to write more than five characters for events =
from Object Inspector.
<P><LI>Bug on BrwColumn:cFilter assignment if its container Browse =
was not crated.
<P><LI>The event TBrowse:OnSeek was not triggered correctly.
<P><LI>Wrong TBrowse display when records were deleted.
<P><LI>New property lKeyExact on class TBrowse:<BR><BR>
We have increased the functionality of the methods =
TDbfDataSet:OrdKeyNo() and
TDbfDaSet:OrdKeyCount() and now they admit a parameter 'LEXACT' =
that if true
the information retrieved by those methods will be exact =
independtly if there
exists deleted records on the table. In addition we have also =
include the
property 'LKEYEXACT' on the class TDbfDataSet (By default =
false) which it will
be used as default value for this two methods.<BR><BR>
On any case the exact calculation for KeyNo and KeyCount is =
done extremely
fast with a simple DbEval() instruction and for tables with =
hundreds of records
or with Scopes of hundreds of records you should not notice any =
important delay.<BR><BR>
At last if SET DELETED is OFF or the current tag (if exists) =
has the
FOR clause with the text '!DELETED()' the native functions will =
be used
because on those cases the returned values will be exact.
<P><LI>TDBBrowse: Assign error on filter expressions with code-block.
<P><LI>Possibility to change to natural order on the class =
TDbfDataSet with
the method TDbfDataSet:OrdSetFocus( 0 ).
<P><LI>Automatic update of property nClrText on the Object Inspector =
when
the colour is changed via the Font selection dialog.
<P><LI>Persistence error on Font Boldface attribute.
<P><LI>Incorrect operation and display of TBrowse horizontal scroll =
bar.
<P><LI>TDbfBrowse: Filter error on first column when no record =
selector was
present.
<P><LI>Run-time error when the property TBrowse:lRecordSelector was =
modified
when the Browse was already created.
<P><LI>Impossibility to change the text of a TStatusBar panel.
<P><LI>IDE run-time error when changing the lAutoSelect property.
<P><LI>Incorrect return value of function ChooseColorDlg().
<P><LI>Impossibility to use bitmaps on TTabCtrl and Folder controls.
<P><LI>GPF on method TPrinter:Setup()
<P><LI>Run-time error on class TOdbcDataSet when a specific alert =
message
was shown.
<P><LI>IDE error when 'Cutting' Label type controls.
<P><LI>IDE error when assigning an icon to the project.
<P><LI>New property editors PE_BrowseFile and PE_BrowseFolder to =
select
files and folders from the Object Inspector.
<P><LI>New documentation: DataControls, BrwRecSel.chm, BrwColumn.chm =
and
BrowseForFolderDlg.chm.
<P><LI>New properties nCharSet and lSelectScript on TChooseFontDlg.
<P><LI>Incorrect return value on function ChooseFontDlg().
<P><LI>German language support on IDE and GUI library.
<P><LI>New property nEditLength on TBrwColumn to indicate the maximum
length for editing with the object oGridEdit.
<P><LI>Possibility to indicate the index files on objects TDbfDataSet =
on
design time with new property aIdxFiles.
<P><LI>New property lKeyExact to make exact operations with the =
methods KeyNo() and KeyCount().
<P><LI>New logical parameters in KeyNo( lExact ) and KeyCount( lExact =
) to forze the
information to be exact. Its default value is ::lKeyExact.
<P><LI>New property TCombobox:nDroppedHeight to indicate the maximum
height for the drop down list. Note: On XP is not necessary.
<P><LI>TFolder y TFolderPage: Speed optimisation on tab selection.
<P><LI>TStatusPanel: Corrected bug on SetText, nClrPane, new method
DeleteAllPanels. Statusbar.txt and Statuspanel.txt upgraded.
<P><LI>TRadioMenu: Corrected memory lose.
<P><LI>Renamed oImages to oImageList on all controls that used it.
<P><LI>Renamed aTabs to aItems on TTabCtrl, TFolder and TStatusBar.
<P><LI>New samples on printing, splitters and file reindex.
<P><LI>Renamed methods <I>Method</I>Panel a <I>Method</I>Item on =
TStatusBar.
<P><LI>Changes on TSysAnimate to show animations on design time.
<P><LI>WYSIWYG support on TRichEdit. New property lRule to show a =
Wordpad
style rule (with left and right indent and four types of tabs: =
left, center,
right and decimal). Scale on centimetres, inches or twips. A lot =
of
enhancements.
<P><LI>New sample TextEditor on Samples directory to show new =
TRichEdit
capabilities.
<P><LI>New class TColorCombobox.
<P><LI>Incorrect OnChange trigger when assigning nIndex from code on =
classes
TComboBoxEx and TListBox.
<P><LI>Function LogDebug() now supports also arrays.
<P><LI>Better functionality on TPreviewPage WYSIWYG.
<P><LI>IDE: Possibility to select more than one file at a time. It =
also
<I>remembers</I> the last used directory.
<P><LI>IDE: When a module is deleted, now are shown ordered and =
permits to
select few at the same time.
<P><LI>When a form had a menu, the controls were not aligned =
correctly.
<P><LI>IDE: New tool to convert resource dialogs (.rc files) to =
Xailer forms.
You can find it at the <I>Tools</I> option menu.
<P><LI>IDE: On the messages windows, if a message was too large, it =
was
displaced to the right and the icon disappear.
<P><LI>Function SysRefresh() renamed to ProcessMessages()
<P><LI>Drag&Drop of TTreeView items.
<P><LI>If help files are not configured, Xailer.chm is searched and =
added to
the configuration.
<P><LI>IDE's error when opening or closing a dataset with a browse =
connected to it.
<P><LI>Class TRegistry: EnumKeys() returned always an error.
<P><LI>Class TRegistry: new method EnumValues().
<P><LI>CreateFontDlg: New function similar to ChooseFontDlg() but =
returning
the font already created.
<P><LI>Fixed properties assignments in system's dialogs classes.
<P><LI>Removed the properties lUpperCase y lLowerCase and replaced by =
nCharCase.
<P><LI>Finished the properties for colour management in classes =
TDatePicker and TMonthCalendar.
<P><LI>Renamed properties cFile, etc. to cFileName.
<P><LI>Renamed properties cDir, etc. to cDirectory.
<P><LI>New function PickIconDlg() which encapsulates a TPickIconDlg =
object.
<P><LI>Finished support for standard animations in TSysAnimate and =
new properties.
<P><LI>Now, the standard system folders can be selected from the =
dialog
TBrowseForFolder using the property nRoot
<P><LI>Finished support to resolve file names collisions when moving =
or
renaming files using TFileOperationDlg.
<P><LI>Classes TInternet and TFTP are working fine now.
<P><LI>New property nBorderStyle for TToolBar
<P><LI>New class TDBNavigator
<P><LI>New sample SamplesDataControlsDBFData5 using the new class =
TDBNavigator
</UL>
<!-- Only for the Web
</SPAN>
-->
</BODY>
</HTML>
------=_NextPart_000_0013_01C5258D.2FC5B630--
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
InvalidAccount
Mensajes: 53
Registrado: Vie Mar 04, 2005 9:58 am

Some questions

Mensaje por InvalidAccount »

This is a multi-part message in MIME format.
------=_NextPart_000_0013_01C5258D.2FC5B630
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0014_01C5258D.2FC5B630"
------=_NextPart_001_0014_01C5258D.2FC5B630
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Guiseppe,=20
From our latest whatsnew.htm (not published yet, only in spanish):
New feature on xHarbour OOP engine to gain speed. New clauses READ =
METHOD, WRITE METHOD, READ INLINE, WRITE INLINE in PROPERTY command.
This feature BREAKS any existing code that used clauses READ or WRITE on =
the PROPERTY command and should be modified with READ INLINE and WRITE =
INLINE to gain the same functionality. The clauses WRITE METHOD and READ =
METHOD are the most optimized and they admit a unique parameter which is =
the name of the method to call (without quotation marks) and that method =
has to be developed on the same class but NOT with a INLINE clause. When =
the method is developed on a INLINE clause you can use the clauses READ =
and WRITE, but as is, without the word 'METHOD'. Sample:
PROPERTY cText READ METHOD GetText WRITE METHOD SetText
PROPERTY oFont READ GetFont WRITE SetFont
PROPERTY cTag READ INLINE ::GetTag() WRITE INLINE ::SetTag( Value )=20
You can do the following to fix your problem:
1) PROPERTY cName INIT "" READ GetFileName WRITE SetFileName *
2) PROPERTY cName INIT "" READ INLINE ::GetFileName()WRITE INLINE =
::SetFileName( Value )
*Remember that for this to work GetFileName and SetFileName methods MUST =
NOT be created INLINE wich is correct with your source code.
I include with this file the whatsnew.htm for Pre-releases 2
Regards,=20
"Giuseppe Bogetti" <bgsoft@tiscali.it> escribi=F3 en el mensaje =
news:193wl5e8v60og$.14f33xuk46pni$[email=.dlg@40tude.net...].dlg@40tude.net...[/email]
> In data Thu, 3 Mar 2005 20:14:25 +0100, Giuseppe Bogetti ha scritto:
>=20
> Hi,
>=20
> I've built a class that inherit from TIni to manage all setting of a =
single
> backup set.
>=20
> Surely I made something wrong with the definition of the PROPERTY data
> because when I try to access any of this I got a runtime error =
"Message Not
> Found"
>=20
> Can someone please have a look at the attached project and tell me =
what I'm
> doing wrong ?
>=20
> --=20
> Best regards,
>=20
> Giuseppe Bogetti
> B.G. Soft
> Cuneo - Italy
------=_NextPart_001_0014_01C5258D.2FC5B630
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2900.2604" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV><FONT face=3D"Courier New" size=3D2>Guiseppe, </FONT></DIV>
<DIV><FONT face=3D"Courier New" size=3D2></FONT>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2>From our latest whatsnew.htm =
(not published=20
yet, only in spanish):</FONT></DIV>
<DIV><FONT face=3D"Courier New" size=3D2></FONT>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2></FONT>New feature on xHarbour =
OOP engine=20
to gain speed. New clauses READ METHOD, WRITE METHOD, READ INLINE, WRITE =
INLINE=20
in PROPERTY command.<BR><BR>This feature <B>BREAKS</B> any existing code =
that=20
used clauses READ or WRITE on the PROPERTY command and should be =
modified with=20
READ INLINE and WRITE INLINE to gain the same functionality. The clauses =
WRITE=20
METHOD and READ METHOD are the most optimized and they admit a unique =
parameter=20
which is the name of the method to call (without quotation marks) and =
that=20
method has to be developed on the same class but NOT with a INLINE =
clause. When=20
the method is developed on a INLINE clause you can use the clauses READ =
and=20
WRITE, but as is, without the word 'METHOD'. =
Sample:<BR><BR><CODE>PROPERTY cText=20
READ METHOD GetText WRITE METHOD SetText<BR>PROPERTY oFont READ GetFont =
WRITE=20
SetFont<BR>PROPERTY cTag READ INLINE ::GetTag() WRITE INLINE ::SetTag( =
Value )=20
</CODE></DIV>
<DIV><CODE></CODE>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2>You can do the following to fix =
your=20
problem:</FONT></DIV>
<DIV><CODE></CODE>Â</DIV>
<DIV><CODE>1) PROPERTY cNameÂINIT "" READÂGetFileName WRITE=20
SetFileName *</CODE></DIV>
<DIV><CODE>2) PROPERTY cNameÂINIT ""ÂREADÂINLINE=20
::GetFileName()WRITE INLINE ::SetFileName( Value )</CODE></DIV>
<DIV><CODE></CODE>Â</DIV>
<DIV><CODE>*Remember that for this to work GetFileName and SetFileName =
methods=20
MUST NOT be created INLINE wich is correct with your source =
code.</CODE></DIV>
<DIV><CODE></CODE>Â</DIV>
<DIV><CODE>I include with this file the whatsnew.htm for Pre-releases=20
2</CODE></DIV>
<DIV><CODE></CODE>Â</DIV>
<DIV><CODE>Regards, </CODE></DIV>
<DIV><FONT face=3D"Courier New" size=3D2></FONT>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2></FONT>Â</DIV>
<DIV><FONT face=3D"Courier New" size=3D2>"Giuseppe Bogetti" =
<</FONT><A=20
href=3D"mailto:bgsoft@tiscali.it"><FONT face=3D"Courier New"=20
size=3D2>bgsoft@tiscali.it</FONT></A><FONT face=3D"Courier New" =
size=3D2>> escribi=F3=20
en el mensaje </FONT><A=20
href=3D"news:193wl5e8v60og$.14f33xuk46pni$[email=.dlg@40tude.net].dlg@40tude.net[/email]"><FONT=20
face=3D"Courier New"=20
size=3D2>news:193wl5e8v60og$.14f33xuk46pni$[email=.dlg@40tude.net].dlg@40tude.net[/email]</FONT></A><FON=
T=20
face=3D"Courier New" size=3D2>...</FONT></DIV><FONT face=3D"Courier New" =
size=3D2>>=20
In data Thu, 3 Mar 2005 20:14:25 +0100, Giuseppe Bogetti ha =
scritto:<BR>>=20
<BR>> Hi,<BR>> <BR>> I've built a class that inherit from TIni =
to=20
manage all setting of a single<BR>> backup set.<BR>> <BR>> =
Surely I=20
made something wrong with the definition of the PROPERTY data<BR>> =
because=20
when I try to access any of this I got a runtime error "Message =
Not<BR>>=20
Found"<BR>> <BR>> Can someone please have a look at the attached =
project=20
and tell me what I'm<BR>> doing wrong ?<BR>> <BR>> -- <BR>> =
Best=20
regards,<BR>> <BR>> Giuseppe Bogetti<BR>> B.G. Soft<BR>> =
Cuneo -=20
Italy</FONT></BODY></HTML>
------=_NextPart_001_0014_01C5258D.2FC5B630--
------=_NextPart_000_0013_01C5258D.2FC5B630
Content-Type: text/html;
name="Whatsnew.htm"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="Whatsnew.htm"
<HTML>
<!-- Only for the Web
<link href=3D"xailer.css" rel=3D"stylesheet" type=3D"text/css">
<BODY onload=3D"loaded(2)">
<SPAN class=3D"cuerpo">
-->
<!-- Only for local view -->
<HEAD>
<TITLE>Xailer: What's new</TITLE>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
</HEAD>
<BODY>
<H1>Xailer: What's new</H1>
<H3>Enhancements ang bugs correction on Pre-release 2:</H3>
<UL>
<P><LI>Checkbox control admit numerico values (Zero is false, =
everything else true)
<P><LI>Calculator. To invoke it call the function Calculator()
<P><LI>New feature on xHarbour OOP engine to gain speed.
New clauses READ METHOD, WRITE METHOD, READ INLINE, WRITE INLINE in
PROPERTY command.<br><br>
This feature <b>BREAKS</b> any existing code that used clauses READ or =
WRITE
on the PROPERTY command and should be modified with READ INLINE and
WRITE INLINE to gain the same functionality.
The clauses WRITE METHOD and READ METHOD are the most optimized and =
they
admit a unique parameter which is the name of the method to call =
(without quotation marks)
and that method has to be developed on the same class but NOT with a =
INLINE clause.
When the method is developed on a INLINE clause you can use the =
clauses READ
and WRITE, but as is, without the word 'METHOD'.
Sample:<br><br>
<code>
PROPERTY cText READ METHOD GetText WRITE METHOD SetText<br>
PROPERTY oFont READ GetFont WRITE SetFont<br>
PROPERTY cTag READ INLINE ::GetTag() WRITE INLINE ::SetTag( Value )
</code>
<P><LI>New property lBusy on class Application to change the moue =
cursor to
an Hourglass while his value is .T.
<P><LI>Support of command SET KEY: SetKey( nKey, nFlag, bCode ). For =
example:<br><br>
<code>SetKey( Asc( "C" ), FALT, {|| Calculator() } )</code>
<P><LI>Possibility to change MonthCalendar control colors
<P><LI>Possibility to change TBtnBmp control text color
<P><LI>Browses: Auto adjustment of column width double clicking on =
header
column divider.
<P><LI>Bug on Treeview mouse event trapping
<P><LI>Enhancements on ODBC connections
<P><LI>ADSDataSource: New property lAdsLocking to establish the new or =
old
loking mechanism
<P><LI>Browses: New data nKeyNo to internally save the OnKeyNo value =
to reduce
his call to a minimum due his poor perfomance on some RDDs.
<P><LI>Browses: New event OnNewItem( oSender ) that is triggered every =
time
a new column is added
<P><LI>Browses: Incremental search now admits some non alpha-numeric =
values
<P><LI>Incorrect color asignment on Browses
<P><LI>BrwColumn: The OnEdit() event now recieves a third logical =
parameter
indicating if the edit operation is massive or not
<P><LI>Automatic edition on DBBrowse when the event OnPostEdit is not =
defined
<P><LI>Automatic filter expresion definition on DbfBrowse and DBBrowse =
but
can be changed by the user
<P><LI>DataSet: New event OnCreate
<P><LI>OdbcDataSource: New method QueryArray() that returns a =
multi-dimensional
array with the all queryque devuelve una matriz
<P><LI>TreeView: Change on method HitTest parameters. Now, it receives =
nX and nY
instead of nRow and nCol. <b>This modification may brake existing =
code</b>.
<P><LI>DBNavigator: If some buttons were hidden from the IDE, on =
application
startup generates an error
<P><LI>Documentation updated
</UL>
<H3>Enhancements and Bug fixes on Beta 9 | Pre-release 1:</H3>
<UL>
<P><LI>French has been added to the languages supported by the GUI =
and the IDE.
Now, there are 8 supported languages: Spanish, English, French, =
German,
Italian, Portuguese, Catala and Galician
<P><LI>Change the IDE language at runtime
<P><LI>New TPages control, to manage several pages with controls on
a form or another control. The nIndex property allow to change the
visible page, and can be driven from a treeview control, the =
"next" and
"previous" typical buttons in installer programs or any other way =
you want.
<P><LI>The <I>Options</I> dialog from <I>Tools</I> menu has been =
redesigned
and some options have been added:
<BR>- Reopen the last project at startup
<BR>- Minimize the IDE to the system tray
<BR>- Show grid on forms
<BR>- Grid's size
<P><LI>The <I>Project properties</I> dialog from <I>Project</I> menu =
has been
redesigned and some options have been added:
<BR>- Allow multiple application instances
<BR>- Version: that is, program's version data, that will be added =
to the
resource data in the executable file.
<P><LI>New <I>Editor options</I> dialog, to configure the code =
editor.
<P><LI>New options <I>Comment selected lines</I> and <I>Uncomment =
selected lines</I>
in the code editor's context menu.
<P><LI>Fixed incorrect behaviour of lVisible and lEnabled control =
properties
when trying to reopen a form and any of their value was .F., in =
that case the
control got hidden and/or disabled.
<P><LI>New ImageList editor. Now it is possible to edit the =
oImageList
properties in controls that had it. It allows to add bitmaps and =
icons,
change its order (by drag&drop) and delete any of them.<BR>
It's not possible to assign an external ImageList to a control =
yet.
<P><LI>New browse's columns editor. Now it is possible to edit every =
browse's
properties from the IDE, without writing any code to define its
columns.
<P><LI>Now it is possible to publish a password protected project
<P><LI>Now, the resource files (images, icons, etc.) are included =
when
publishing a project
<P><LI>In the configuration dialog, when a help file was moved up or =
down,
the buttons were not updated. It also happened in the tools =
configuration dialog
<P><LI>When changing the lAutoScroll property, the control was not =
updated
correctly (in case of TImage, the image vanished)
<P><LI>Now, the forms of type bsSPLASH are handled correctly from the =
IDE
(they can be resized, moved and closed; also they are not =
'topmost' anymore)
<P><LI>When selecting a new icon for a form sometimes it didn't work
<P><LI>Enhancements in <I>Import dialogs</I> form
<BR>- New "Configure" button to define equivalences of controls
<P><LI>Insert controls in StatusBar panels<BR>
To insert a control:
<BR>- Add a StatusBar to a form and define the panels
<BR>- Drop a control, ie. a ProgressBar on the StatusBar
<BR>- Select a panel
<BR>- Open the dropdown list in the panel's oControl property and =
select the control
<P><LI>Bug fixed on shortcuts handling.
<P><LI>Controls focus management has been fixed and enhanced. Now =
it's even
possible to open another form from the OnExit event, and return =
..T. or .F.
to change or not the focus, without launching the event twice
<P><LI>New lUseReturn property in Application. Its default value is =
..F., but
setting it to .T. causes that when the user press Enter the focus =
will go
to the next control in the form.
However, if a form has a default button (its lDefault property is =
..T.),
pressing Enter will execute its action and the form will be closed
<P><LI>Some corrections and enhancements in DataControls
<P><LI>Corrections and enhancements in Browse controls
<P><LI>New events in DataSource components
<P><LI>Enhancements to ADSDataSource, with full support of =
dictionaries and
remote connection throw Internet
<P><LI>The methods DeleteAllItems and DeleteAll has been renamed to =
DeleteItems
to unify names in all classes
<P><LI>nImageIndex property has been renamed to nImage in all classes
<P><LI>DeleteAll method has been renamed to DeleteSections in TIni =
class
<P><LI>lShowHelp property has been fixed in all system dialogs
<P><LI>New property lCenter in all system dialogs
<P><LI>Enhancements to TTImer component
<P><LI>New properties nAlignment, nVAlignment and lMultiline in =
TButton
<P><LI>New property nPrintQuality in TPrinter
<P><LI>Fixed missing parameter on TForm's OnSize event
<P><LI>Updated documentation
</UL>
<BR><BR>
<H3>Enhancements and Bug fixes on Beta 8:</H3>
<UL>
<P><LI>Compatibility with new versions of xHarbour
<P><LI>New option "Publish project" on the IDE
<P><LI>New StatusBar editor for the IDE. The StatusBar and all its =
panels
can be easily configured visually from the IDE. The way to edit this =
control
and also the TTabCtrl control can give you an idea on how in the near =
future we
will handle the edition of complex controls like Toolbars or Browses.
<P><LI>Redesign of the "Import dialogs" form on the IDE
<P><LI>New report generator based on the work property of Ignacio
Ortiz de Zuniga (Xailer crew member) used by many Fivewin users.
Completely rewritten basically from scratch to increase its =
performance and
expansion capabilities. Consult the documentation because command =
syntax has
change and also some class members.
<P><LI>New sample SamplesPrintingReports with TReport class
<P><LI>Redesign of DBBrowse navigation, now becomes itself a =
DataControl
client like any other DataControl. This way, any navigational =
operation
performed by the DataSet is automatically controlled by the =
DBBrowse. So, for
example if you do a oDataSet:Skip() the DBBrowse automatically =
moves the
record pointer without any need to perform a refresh on the =
DBBrowse.
<P><LI>New component TProgressDlg
<P><LI>New datacontrol DBHyperLink
<P><LI>New control TFontCombobox
<P><LI>New classes TZipFile and TUnzipFile
<P><LI>TTabCtrl and TFolder:
<BR>- Support of orientation orBOTTOM even with XP themes
<BR>- Support of disabled tabs
<BR>- Ability to change tabs text colour individually
<BR>- New class TTabItem which encapsulates the TTabCtrl tabs. To =
change any TTabItem
property you must click on the TTabCtrl tab, and its =
properties will be shown in
the object inspector.
<BR>- The TFolder pages are now holded by the property aItems.
aPages property is maintained for compatibility, but will be =
deleted in the future.
To upgrade the forms to these changes, you just need to open =
them with the IDE
and resave them, with no need to change anything.
<P><LI>Enhancements on TRichEdit class:
<BR>- New paragraph formats and styles. For example: 1), (1), 1., =
a), A), i), I),...
<BR>- New interline methods for paragraphs. For example: single, =
1,5 lines y double
<BR>- New methods to control zoom. For example: 500%, 200%, 100%, =
75%, 50%, 25%,...
<BR>- New styles for underline. For example: dotted, dash, wave, =
thick,...
<BR>- New methods to handle other document format supported by =
Microsoft Office
libraries (when available) *.htm, *.doc and *.wri
<P><LI>New property lPushLike on TCheckBox and TRadio controls
<P><LI>Support for Post and Get and few enhancements on TInternet =
class
<P><LI>Enhancements on TStatusBar:
<BR>- Support for events OnClick and OnRClick
<BR>- New property nBorderStyle for TStatusPanel
<BR>- Support of Tooltips on TStatus Bar panels. Each panel can =
have its own tooltip
<BR>- Panels editor on the IDE. Panels can be added from the =
control's context menu,
or editing the property aItems. To modify its properties, =
you must click on any panel
<P><LI>Tooltips bug fixed
<P><LI>Important enhancements and adjustments on DataSet controls
<P><LI>Bugs on TMemo class and new property nLineCount
<P><LI>Print preview completely tuned. Now is 100% WYSIWYG
<P><LI>The context menu for non visual components has been reduced on =
the IDE
<P><LI>Added option "Test" on the context menu of all the components =
on the "Dialogs" palette
<P><LI>IDE error when duplicating or pasting a component
<P><LI>Enhancements on the kernel to recover itself from errors
<P><LI>New Richpad sample with language support: English and Spanish
<P><LI>New properties on TDataSet when the record pointer moves:
OnPreChange y OnPosChange.
<P><LI>Methods GetValue and SetValue on TArrayBrowse now admit a =
literal with
the header name as parameter for the column number
<P><LI>Modified TCanvas:TextOut() method. Now admits a new parameter =
nWidth
(is not the last) and the nX position is corrected automatically =
depending
on the text alignment
<P><LI>Modified TCanvas:TextRect() method. Parameters nX and nY =
disappear,
and now the left-to corner of the array aRect is used for =
printing. That
position is corrected automatically based on nTextAlignment and
nTextValignment properties
<P><LI>New property TCanvas:nTextVAlignment
<P><LI>New method TCanvas:SelectFont() to change current font without
creation or destruction of fonts
<P><LI>New DATA TDataSet:lUpdLinked, by default .T. to only refresh =
linked
controls when is .T.
<P><LI>New method TPrinter:WriteData( cText, cJobName ) to print =
directly
to the printer any text without using the GDI. This method lets =
you manage
directly any printer, including the send of Escape sequences.
<P><LI>DataControls documentation
<P><LI>Better and updated documentation
</UL>
<BR><BR>
<H3>Enhancements and Bug fixes on Beta 7:</H3>
<UL>
<P><LI>Solved ODBCDataSet bug with numeric fields under MySql.
<P><LI>Impossibility to write more than five characters for events =
from Object Inspector.
<P><LI>Bug on BrwColumn:cFilter assignment if its container Browse =
was not crated.
<P><LI>The event TBrowse:OnSeek was not triggered correctly.
<P><LI>Wrong TBrowse display when records were deleted.
<P><LI>New property lKeyExact on class TBrowse:<BR><BR>
We have increased the functionality of the methods =
TDbfDataSet:OrdKeyNo() and
TDbfDaSet:OrdKeyCount() and now they admit a parameter 'LEXACT' =
that if true
the information retrieved by those methods will be exact =
independtly if there
exists deleted records on the table. In addition we have also =
include the
property 'LKEYEXACT' on the class TDbfDataSet (By default =
false) which it will
be used as default value for this two methods.<BR><BR>
On any case the exact calculation for KeyNo and KeyCount is =
done extremely
fast with a simple DbEval() instruction and for tables with =
hundreds of records
or with Scopes of hundreds of records you should not notice any =
important delay.<BR><BR>
At last if SET DELETED is OFF or the current tag (if exists) =
has the
FOR clause with the text '!DELETED()' the native functions will =
be used
because on those cases the returned values will be exact.
<P><LI>TDBBrowse: Assign error on filter expressions with code-block.
<P><LI>Possibility to change to natural order on the class =
TDbfDataSet with
the method TDbfDataSet:OrdSetFocus( 0 ).
<P><LI>Automatic update of property nClrText on the Object Inspector =
when
the colour is changed via the Font selection dialog.
<P><LI>Persistence error on Font Boldface attribute.
<P><LI>Incorrect operation and display of TBrowse horizontal scroll =
bar.
<P><LI>TDbfBrowse: Filter error on first column when no record =
selector was
present.
<P><LI>Run-time error when the property TBrowse:lRecordSelector was =
modified
when the Browse was already created.
<P><LI>Impossibility to change the text of a TStatusBar panel.
<P><LI>IDE run-time error when changing the lAutoSelect property.
<P><LI>Incorrect return value of function ChooseColorDlg().
<P><LI>Impossibility to use bitmaps on TTabCtrl and Folder controls.
<P><LI>GPF on method TPrinter:Setup()
<P><LI>Run-time error on class TOdbcDataSet when a specific alert =
message
was shown.
<P><LI>IDE error when 'Cutting' Label type controls.
<P><LI>IDE error when assigning an icon to the project.
<P><LI>New property editors PE_BrowseFile and PE_BrowseFolder to =
select
files and folders from the Object Inspector.
<P><LI>New documentation: DataControls, BrwRecSel.chm, BrwColumn.chm =
and
BrowseForFolderDlg.chm.
<P><LI>New properties nCharSet and lSelectScript on TChooseFontDlg.
<P><LI>Incorrect return value on function ChooseFontDlg().
<P><LI>German language support on IDE and GUI library.
<P><LI>New property nEditLength on TBrwColumn to indicate the maximum
length for editing with the object oGridEdit.
<P><LI>Possibility to indicate the index files on objects TDbfDataSet =
on
design time with new property aIdxFiles.
<P><LI>New property lKeyExact to make exact operations with the =
methods KeyNo() and KeyCount().
<P><LI>New logical parameters in KeyNo( lExact ) and KeyCount( lExact =
) to forze the
information to be exact. Its default value is ::lKeyExact.
<P><LI>New property TCombobox:nDroppedHeight to indicate the maximum
height for the drop down list. Note: On XP is not necessary.
<P><LI>TFolder y TFolderPage: Speed optimisation on tab selection.
<P><LI>TStatusPanel: Corrected bug on SetText, nClrPane, new method
DeleteAllPanels. Statusbar.txt and Statuspanel.txt upgraded.
<P><LI>TRadioMenu: Corrected memory lose.
<P><LI>Renamed oImages to oImageList on all controls that used it.
<P><LI>Renamed aTabs to aItems on TTabCtrl, TFolder and TStatusBar.
<P><LI>New samples on printing, splitters and file reindex.
<P><LI>Renamed methods <I>Method</I>Panel a <I>Method</I>Item on =
TStatusBar.
<P><LI>Changes on TSysAnimate to show animations on design time.
<P><LI>WYSIWYG support on TRichEdit. New property lRule to show a =
Wordpad
style rule (with left and right indent and four types of tabs: =
left, center,
right and decimal). Scale on centimetres, inches or twips. A lot =
of
enhancements.
<P><LI>New sample TextEditor on Samples directory to show new =
TRichEdit
capabilities.
<P><LI>New class TColorCombobox.
<P><LI>Incorrect OnChange trigger when assigning nIndex from code on =
classes
TComboBoxEx and TListBox.
<P><LI>Function LogDebug() now supports also arrays.
<P><LI>Better functionality on TPreviewPage WYSIWYG.
<P><LI>IDE: Possibility to select more than one file at a time. It =
also
<I>remembers</I> the last used directory.
<P><LI>IDE: When a module is deleted, now are shown ordered and =
permits to
select few at the same time.
<P><LI>When a form had a menu, the controls were not aligned =
correctly.
<P><LI>IDE: New tool to convert resource dialogs (.rc files) to =
Xailer forms.
You can find it at the <I>Tools</I> option menu.
<P><LI>IDE: On the messages windows, if a message was too large, it =
was
displaced to the right and the icon disappear.
<P><LI>Function SysRefresh() renamed to ProcessMessages()
<P><LI>Drag&Drop of TTreeView items.
<P><LI>If help files are not configured, Xailer.chm is searched and =
added to
the configuration.
<P><LI>IDE's error when opening or closing a dataset with a browse =
connected to it.
<P><LI>Class TRegistry: EnumKeys() returned always an error.
<P><LI>Class TRegistry: new method EnumValues().
<P><LI>CreateFontDlg: New function similar to ChooseFontDlg() but =
returning
the font already created.
<P><LI>Fixed properties assignments in system's dialogs classes.
<P><LI>Removed the properties lUpperCase y lLowerCase and replaced by =
nCharCase.
<P><LI>Finished the properties for colour management in classes =
TDatePicker and TMonthCalendar.
<P><LI>Renamed properties cFile, etc. to cFileName.
<P><LI>Renamed properties cDir, etc. to cDirectory.
<P><LI>New function PickIconDlg() which encapsulates a TPickIconDlg =
object.
<P><LI>Finished support for standard animations in TSysAnimate and =
new properties.
<P><LI>Now, the standard system folders can be selected from the =
dialog
TBrowseForFolder using the property nRoot
<P><LI>Finished support to resolve file names collisions when moving =
or
renaming files using TFileOperationDlg.
<P><LI>Classes TInternet and TFTP are working fine now.
<P><LI>New property nBorderStyle for TToolBar
<P><LI>New class TDBNavigator
<P><LI>New sample SamplesDataControlsDBFData5 using the new class =
TDBNavigator
</UL>
<!-- Only for the Web
</SPAN>
-->
</BODY>
</HTML>
------=_NextPart_000_0013_01C5258D.2FC5B630--
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Some questions

Mensaje por ignacio »

Giuseppe,
You make it complicated unnecessarily:
With Object oMyBrowse
:SetArray( { { 2, "Test", "Test2", .T. } }
:SwapCols( 1, 3 )
:SwapCols( 2, 4 )
End With
With Object oMyBrowse:aCols[ 4 ]
:OnGetData := {|o, c, i| i := iif( c = ".T.", 1, 2) }
End With
In any case your code seems to work right but I believe is better to create
a temporal Array with the format you need for the browse and just change the
behaviour of some columns and not all of them.
Regards,
"Giuseppe Bogetti" <bgsoft@tiscali.it> escribió en el mensaje
news:197hl0w455ou5.7mbcy3d25fas$[email=.dlg@40tude.net...].dlg@40tude.net...[/email]
> In data Thu, 10 Mar 2005 11:06:44 +0100, Ignacio Ortiz de Zúñiga ha
> scritto:
>
>> Giussepe,
>>
>> Your array has 4 columns and 1 row, impossible to jump to 4th row. BTW to
>> move the active row you can modify directly the DATA nArrayAt and perform
>> a
>> Refresh() and to select a column by code do oBrowse:SelectCol( nCol ).
>
> I was not clear, my question was about columns and not rows.
> With this array { { 2, "Test", "Test2", .T. } } and a 4 column browser
> with
> an imagelist with at least two elements containing two checkbox bitmap
>
> I want column 1 to show "Test2"
> I want column 2 to show .t.
> I want column 3 to show 2
> I want column 4 to show "Test"
>
> So based on your previous explanation :
>
> METHOD MyBrowseCol1GetData( oSender, cText, nImage )
> cText := oSender:oParent:aArrayData[ oSender:oParent:nArrayAt, 3 ]
> RETURN nil
>
> METHOD MyBrowseCol2GetData( oSender, cText, nImage )
> nImage := 1
> RETURN nil
>
> METHOD MyBrowseCol3GetData( oSender, cText, nImage )
> cText := Str( oSender:oParent:aArrayData[ oSender:oParent:nArrayAt, 1 ] )
> RETURN nil
>
> METHOD MyBrowseCol4GetData( oSender, cText, nImage )
> cText := oSender:oParent:aArrayData[ oSender:oParent:nArrayAt, 2 ]
> RETURN nil
>
> Do I understand well ?
>
> --
> Best regards,
>
> Giuseppe Bogetti
> B.G. Soft
> Cuneo - Italy
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
InvalidAccount
Mensajes: 53
Registrado: Vie Mar 04, 2005 9:58 am

Some questions

Mensaje por InvalidAccount »

Giuseppe,
You make it complicated unnecessarily:
With Object oMyBrowse
:SetArray( { { 2, "Test", "Test2", .T. } }
:SwapCols( 1, 3 )
:SwapCols( 2, 4 )
End With
With Object oMyBrowse:aCols[ 4 ]
:OnGetData := {|o, c, i| i := iif( c = ".T.", 1, 2) }
End With
In any case your code seems to work right but I believe is better to create
a temporal Array with the format you need for the browse and just change the
behaviour of some columns and not all of them.
Regards,
"Giuseppe Bogetti" <bgsoft@tiscali.it> escribió en el mensaje
news:197hl0w455ou5.7mbcy3d25fas$[email=.dlg@40tude.net...].dlg@40tude.net...[/email]
> In data Thu, 10 Mar 2005 11:06:44 +0100, Ignacio Ortiz de Zúñiga ha
> scritto:
>
>> Giussepe,
>>
>> Your array has 4 columns and 1 row, impossible to jump to 4th row. BTW to
>> move the active row you can modify directly the DATA nArrayAt and perform
>> a
>> Refresh() and to select a column by code do oBrowse:SelectCol( nCol ).
>
> I was not clear, my question was about columns and not rows.
> With this array { { 2, "Test", "Test2", .T. } } and a 4 column browser
> with
> an imagelist with at least two elements containing two checkbox bitmap
>
> I want column 1 to show "Test2"
> I want column 2 to show .t.
> I want column 3 to show 2
> I want column 4 to show "Test"
>
> So based on your previous explanation :
>
> METHOD MyBrowseCol1GetData( oSender, cText, nImage )
> cText := oSender:oParent:aArrayData[ oSender:oParent:nArrayAt, 3 ]
> RETURN nil
>
> METHOD MyBrowseCol2GetData( oSender, cText, nImage )
> nImage := 1
> RETURN nil
>
> METHOD MyBrowseCol3GetData( oSender, cText, nImage )
> cText := Str( oSender:oParent:aArrayData[ oSender:oParent:nArrayAt, 1 ] )
> RETURN nil
>
> METHOD MyBrowseCol4GetData( oSender, cText, nImage )
> cText := oSender:oParent:aArrayData[ oSender:oParent:nArrayAt, 2 ]
> RETURN nil
>
> Do I understand well ?
>
> --
> Best regards,
>
> Giuseppe Bogetti
> B.G. Soft
> Cuneo - Italy
Giuseppe Bogetti
Mensajes: 281
Registrado: Vie Ago 04, 2006 4:58 pm

Some questions

Mensaje por Giuseppe Bogetti »

In data Thu, 10 Mar 2005 16:21:17 +0100, Ignacio Ortiz de Zúñiga ha
scritto:
> Guiseppe,
>
> From our latest whatsnew.htm (not published yet, only in spanish):
>
> New feature on xHarbour OOP engine to gain speed. New clauses READ METHOD, WRITE METHOD, READ INLINE, WRITE INLINE in PROPERTY command.
>
> This feature BREAKS any existing code that used clauses READ or WRITE on the PROPERTY command and should be modified with READ INLINE and WRITE INLINE to gain the same functionality. The clauses WRITE METHOD and READ METHOD are the most optimized and they admit a unique parameter which is the name of the method to call (without quotation marks) and that method has to be developed on the same class but NOT with a INLINE clause. When the method is developed on a INLINE clause you can use the clauses READ and WRITE, but as is, without the word 'METHOD'. Sample:
>
> PROPERTY cText READ METHOD GetText WRITE METHOD SetText
> PROPERTY oFont READ GetFont WRITE SetFont
> PROPERTY cTag READ INLINE ::GetTag() WRITE INLINE ::SetTag( Value )
>
> You can do the following to fix your problem:
>
> 1) PROPERTY cName INIT "" READ GetFileName WRITE SetFileName *
> 2) PROPERTY cName INIT "" READ INLINE ::GetFileName()WRITE INLINE ::SetFileName( Value )
>
> *Remember that for this to work GetFileName and SetFileName methods MUST NOT be created INLINE wich is correct with your source code.
>
> I include with this file the whatsnew.htm for Pre-releases 2
>
> Regards,
>
>
> "Giuseppe Bogetti" <bgsoft@tiscali.it> escribió en el mensaje news:193wl5e8v60og$.14f33xuk46pni$[email=.dlg@40tude.net...].dlg@40tude.net...[/email]
>> In data Thu, 3 Mar 2005 20:14:25 +0100, Giuseppe Bogetti ha scritto:
>>
>> Hi,
>>
>> I've built a class that inherit from TIni to manage all setting of a single
>> backup set.
>>
>> Surely I made something wrong with the definition of the PROPERTY data
>> because when I try to access any of this I got a runtime error "Message Not
>> Found"
>>
>> Can someone please have a look at the attached project and tell me what I'm
>> doing wrong ?
>>
>> --
>> Best regards,
>>
>> Giuseppe Bogetti
>> B.G. Soft
>> Cuneo - Italy
Thanks
--
Best regards,
Giuseppe Bogetti
B.G. Soft
Cuneo - Italy
Giuseppe Bogetti
Mensajes: 281
Registrado: Vie Ago 04, 2006 4:58 pm

Some questions

Mensaje por Giuseppe Bogetti »

In data Thu, 10 Mar 2005 16:21:17 +0100, Ignacio Ortiz de Zúñiga ha
scritto:
> Guiseppe,
>
> From our latest whatsnew.htm (not published yet, only in spanish):
>
> New feature on xHarbour OOP engine to gain speed. New clauses READ METHOD, WRITE METHOD, READ INLINE, WRITE INLINE in PROPERTY command.
>
> This feature BREAKS any existing code that used clauses READ or WRITE on the PROPERTY command and should be modified with READ INLINE and WRITE INLINE to gain the same functionality. The clauses WRITE METHOD and READ METHOD are the most optimized and they admit a unique parameter which is the name of the method to call (without quotation marks) and that method has to be developed on the same class but NOT with a INLINE clause. When the method is developed on a INLINE clause you can use the clauses READ and WRITE, but as is, without the word 'METHOD'. Sample:
>
> PROPERTY cText READ METHOD GetText WRITE METHOD SetText
> PROPERTY oFont READ GetFont WRITE SetFont
> PROPERTY cTag READ INLINE ::GetTag() WRITE INLINE ::SetTag( Value )
>
> You can do the following to fix your problem:
>
> 1) PROPERTY cName INIT "" READ GetFileName WRITE SetFileName *
> 2) PROPERTY cName INIT "" READ INLINE ::GetFileName()WRITE INLINE ::SetFileName( Value )
>
> *Remember that for this to work GetFileName and SetFileName methods MUST NOT be created INLINE wich is correct with your source code.
>
> I include with this file the whatsnew.htm for Pre-releases 2
>
> Regards,
>
>
> "Giuseppe Bogetti" <bgsoft@tiscali.it> escribió en el mensaje news:193wl5e8v60og$.14f33xuk46pni$[email=.dlg@40tude.net...].dlg@40tude.net...[/email]
>> In data Thu, 3 Mar 2005 20:14:25 +0100, Giuseppe Bogetti ha scritto:
>>
>> Hi,
>>
>> I've built a class that inherit from TIni to manage all setting of a single
>> backup set.
>>
>> Surely I made something wrong with the definition of the PROPERTY data
>> because when I try to access any of this I got a runtime error "Message Not
>> Found"
>>
>> Can someone please have a look at the attached project and tell me what I'm
>> doing wrong ?
>>
>> --
>> Best regards,
>>
>> Giuseppe Bogetti
>> B.G. Soft
>> Cuneo - Italy
Thanks
--
Best regards,
Giuseppe Bogetti
B.G. Soft
Cuneo - Italy
Responder