?? release.txt
字號:
widthInChars% is the width of the edit box within which the text is wrapped.
numberLines% is the number of lines displayed. Any more lines will be scrolled.
maxLength% is the length in bytes of the buffer provided.
4) You can now read 'Data app' files with OPL (opening them via OPEN "file" and
OPEN "file SELECT f1 FROM table1".
This has actually been available since OPLR 038.
Types not supported by OPL will be ignored. The Opl field handle types and order,
must match the types and their order of the 'Data app' file's OPL supported types.
e.g. if the data app file "dat" contains a long, followed by a datetime, followed
by a string, followed by a long binary, followed by a string ......
you could obtain access to those fields supported by OPL with OPEN 'dat',A, f1&,f2$,f2$
Using SQL SELECT provides a more suitable method for accessing required fields. For this
to be possible it will be necessary to publish the default column naming mechanism that
data app uses when initially creating the columns.
Write enabled access is easily possible but dangerous as the data app file's LongBinary
fields would need to be set to NULL. This would through away the 'Rich text' formatting
information in the data app's file.
The OPL programmer could always copy the relevant DATA app information into an OPL
database and then (probably coming soon) view that database in data app.
5) Toolbar code now sets Compute mode off. Any app using a toolbar is required not to be
deaf to events unless it has set LOCK ON, so it can't be running compute intensively.
6) New dFILE flags%:
- KDFileSelectorWithSystem% ($200) to show system folder
7) New dDATE flags%:
- KDDateNoHours% (4) for no hours
- KDDate24Hour% (8) to force 24-hour clock
Const.oph now also has consts for OPL16 flags:
- KDDateWithSeconds% (1) for seconds
- KDDateDuration% (2) for duration
8) Font consts and sizes changed - UIDs unchanged:
- to Arial 8,11,13,27 (from 9,12,14,28)
- to Times 8,11 (from 9,12)
9) Eon.opx additions:
- IsBackLightPresent&: returns -1 if present
- ReadRscLong&:(id&) reads a 32-bit value from a resource file
- UidCheckSum&:(Uid1&,Uid2&,Uid3&) returns the Uid checksum
- SetPointerGrabOn:(WinId&,state&)
- MachineName$:
- MachineUniqueId:(BYREF high&,BYREF low&) sets high& and low& to the
machine's unique id
- EndTask&:(threadId&,previous&) Set previous& to 0 to end first window group in thread
- KillTask&:(threadId&,previous&)
rem The rest are not fully tested yet
- GetThreadIdFromOpenDoc&:(doc$,BYREF previous&)
- GetThreadIdFromAppUid&:(uid&,BYREF previous&)
- SetForeground:
- SetBackground:
- SetForegroundByThread&:(threadId&,previous&)
- SetBackgroundByThread&:(threadId&,previous&)
- GetNextWindowGroupName$:(threadId&,previous&)
- GetNextWindowId&:(threadId&,previous&)
10) Dbase.opx additions:
- DbGetFieldCount&:(dbase$,table$)
- DbGetFieldName$:(dbase$,table$,fieldNum&)
- DbGetFieldType&:(dbase$,table$,fieldNum&)
11) New Printer.opx:
SendStringToPrinter:(string$)
InsertString:(string$,pos&)
SendNewParaToPrinter:
InsertNewPara:(pos&)
SetAlignment:(alignment%)
InitialiseParaFormat:(Red&, Green&, Blue&, LeftMarginInTwips&, RightMarginInTwips&, IndentInTwips&, HorizontalAlignment%, VerticalAlignment%, LineSpacingInTwips&, LineSpacingControl%, SpaceBeforeInTwips&, SpaceAfterInTwips&, KeepTogether%, KeepWithNext%, StartNewPage%, WidowOrphan%, Wrap%, BorderMarginInTwips&, DefaultTabWidthInTwips&)
SetLocalParaFormat:
SetGlobalParaFormat:
RemoveSpecificParaFormat:
SetFontName:(name$)
SetFontHeight:(height%)
SetFontPosition:(pos%)
SetFontWeight:(weight%)
SetFontPosture:(posture%)
SetFontStrikethrough:(strikethrough%)
SetFontUnderline:(underline%)
SetGlobalCharFormat:
RemoveSpecificCharFormat:
SendBitmapToPrinter:(bitmapHandle&)
InsertBitmap:(pos&, bitmapHandle&)
SendScaledBitmapToPrinter:(bitmapHandle&, xScale&, yScale&)
InsertScaledBitmap:(pos&, bitmapHandle&, xScale&, yScale&)
SendRichTextToPrinter:(richTextAddress&)
ResetPrinting:
PageSetupDialog:
PrintPreviewDialog:
PrintRangeDialog:
PrintDialog:
v0.40
-----
For ROM 014
(Released by Howard 24 April 1997)
Uses: Same as 039
1) Tidied OPL.IBY and changed OPXBMP.OPX to BMP.OPX
2) OPXBMP.OPX renamed to BMP.OPX
v0.39
-----
Not used in any ROM
(Released by Howard 23 April 1997)
Uses: e32=099,e32utils=012,f32=069,store=042,bafl=070,apparc=058
c32=043,esock=051,irda=053,opl1993util=016,plp=014,ealwl=054,wlddata=001
gdi=050,fntstore=039,fbserv=057,bitgdi=055,wserv=080,clock=055,cone=135
fonts=064,etext=080,form=103,pdrstore=038,printdrv=038,print=044
grid=103,dial=005,e32tools=063,gditools=033,rcomp=314,eiktools=122
eikon=177,dbms=034,oplt=028,texted=036,shell=018
1) OPLERR.H added to releasables for use by OPX developers.
2) CONST.OPH changed to use new font UIDs (for FONTS 064)
3) Lots of bugs fixed
v0.38
-----
Rom 011 - sent to some developers
1) Caption length defined to be the same as for Apparc (KApaMaxAppCaption==256)
and uses TApaAppCaption for the buffer declaration.
2) SETFLAGS and CLEARFLAGS now support:
const KRestrictTo64K&=&0001
const KAutoCompact&=&0002
const KTwoDigitExponent&=&0004
const KSendSwitchOnMessage=&010000
These consts are in CONST.OPH.
No other flags will be supported.
3) Data app docs now can be opened read-only. Details coming soon.
4) More release notes coming later.
v0.37
-----
ROM builders note:
- sample OplEdit file added: z:\system\opl\TBARAPP
This provides a minimal Opler1 Opl app, using command-line, all
toolbar features including new support for latched toolbar
buttons. Also supports CMD$(3)="C" and "O" but not yet "R")
The sample doesn't yet support GETCMD$ to allow switch files.
As usual for samples:
- copy z:\system\opl\*.* to new folder c:\documents\opl\*.*
- open and translate DEMO or TBARAPP before programs can be run
Resource file change:
"Icon mask missing" was missing from resource file.
Changes affecting OPL developers (manual still needs updating)
********************************************************************
NB. OPLR.DLL has swapped UIDs with OPL.APP so that OplEdit files
appear on the left of a folder sorted by type.
This means that all existing OPOs will no longer be recognised
and will need retranslation.
********************************************************************
1) TOOLBAR
TbOffer%: name changed to TBarOffer%: in line with other public
toolbar procedure names.
z:\system\opl\TOOLBAR.OPH now specifies the public interface to TOOLBAR.OPO in the ROM
as follows:
rem Public procedures
external TBarLink:(appLink$)
external TBarInit:(title$,scrW%,scrH%)
external TBarInitNonStd:(name$,scrW%,scrH%,width%)
external TBarButt:(shortcut$,pos%,text$,state%,bit&,mask&,flags%)
external TBarSetTitle:(name$)
external TBarOffer%:(winId&,ptrType&,ptrX&,ptrY&)
external TBarLatch:(comp%)
external TBarShow:
external TBarHide:
rem The following are global toolbar variables usable by Opl programs
rem or libraries: usable after toolbar initialisation:
rem TbWidth% the pixel width of the toolbar
rem TbVis% -1 if visible and otherwise 0
rem TbMenuSym% the current 'Show toolbar' menu symbol (to be ORed with shortcut letter)
rem Flags for toolbar buttons
const KTbFlgCmdOnPtrDown%=$01
rem The order and values of the following are significant so don't change without due care
const KTbFlgLatchStart%=$12 rem start of latchable set
const KTbFlgLatchMiddle%=$22 rem middle of latchable set
const KTbFlgLatchEnd%=$32 rem end of latchable set
const KTbFlgLatched%=$04 rem set for current latched item in set
New support for latched toolbar buttons.
A set of latchable option toolbar buttons can be specified in TBarButt:
by setting flags% to:
KTbFlgLatchStart% for the first button in the latchjable set
KTbFlgLatchMiddle% for any middle buttons
KTbFlgLatchEnd% for the last button in the latchable set
Only one button in a set is ever latched and pressing another
button unlatches the one that was previously set.
To latch a button down initially to represent the initial
setting of the set, OR KTbFlgLatched% with one of the above
settings.
After pressing and releasing a previously unlatched button in a
latchable set, TOOLBAR.OPO will, as usual, call your command-handling
procedure. If the command (such as to change view) has been successful
set the new state of the button by calling TBarLatch:(<tbarComp>) where
<tbarComp> is the button number to be latched. The trivial
example below shows how a 'View1' button press, with "v" as
shortcut, should be handled. The other latchable button in this
rather set might be 'View2' with shortcut "w":
proc cmdV%:
if SetView1%:=0 rem if no error
TBarLatch:(KView1TbarButton%) rem your const KView1TBarButton%
CurrentView%=1
endif
endp
proc cmdW%:
if SetView2%:=0 rem if no error
TBarLatch:(KView2TbarButton%) rem your const KView2TBarButton%
CurrentView%=2
endif
endp
New support for calling command on pointer down on toolbar button
For TBarButt: pass flags%=KTbFlgCmdOnPtrDown% and provide a
procedure named cmdTbDown<shortcut$>%: which could provide a
popup menu:
proc cmdTbDownC%:
rem popup next to button with point specifying the top right corner of the popup
if mPopup(ScrWid%-TbWidth%,97,KMPopupPosTopRight%,"Cancel",0,"Clear",%c)
cmdC%: rem Do the command itself
endif
endp
2) dCHOICE supports an unrestricted number of items (up to memory limits).
To extend a dCHOICE list, add a comma after the last item on the line
followed by "..."
E.g. the following specifies items i1,i2,i3,i4,i5,i6:
- dCHOICE ch%,prompt$,"i1,i2,..."
dCHOICE ch%,"", "i3,14,..."
dCHOICE ch%,"", "i5,i6"
ch% must be the same on all the lines, otherwise an error is raised.
This is a workaround really for a major deficiency in OPL. There's
no time for a more elegant fix using a block construct or multiple
string args. Anyway this looks ok.
3) Fixed bug where failure to load a module left the file open
4) Reworked the file handling keywords to be more stack efficient
5) When running an OPO, set the window group name flags to say we
won't respond to switch files and exit messages
6) When running an app the window group name is set to match the
caption in the ICN file if one exists for the current language,
otherwise it is set to the .APP file name
Internal changes affecting OPL team only:
1) Converted group\MNT.CMD to standard format. Doesn't use Eikon's
MNT any more.
2) Type-safe linkage on OPX loading. Returns 'Not supported' error
for a bad Uid2.
v0.36
-----
(Released by Howard 2/4/97)
Uses: dbms=031 oplt=025 texted=032 opl1993util=014 eikon=173 (and eikon 173's dependencies)
1. gINFO32 rewritten - still needs documentation in manual.
2. gCLOCK now supports mode=11. See manual \oplr\group\oplman32.doc
for details. Supports same format string as used in TTime::Format().
3. dCHECKBOX chk%,prompt$ implemented.
Set live variable chk%=0 for unchecked and any other value for
checked. The dialog sets chk% to 0 if unchecked and to -1 if checked.
4. Fixed bug in PAUSE where timer was not getting deleted.
5. BEEP uses unsigned pitch to avoid a divide by zero bug for pitch==-1.
v0.35
-----
(Released by Kevin on 26 March 1997)
Uses: d32=031, oplt=024, texted=032, opl1993util=014, eikon=171 (and eikon's dependencies)
1. New TOOLBAR.OPH:
- just defines two consts for now - more in next release:
const KTbFlgCmdOnPtrDown%=1
const KTbFlgLatch%=2
See TBarButt: changes below for usage of KTbFlgCmdOnPtrDown%.
KTbFlgLatch% is not yet fully implemented
2. TOOLBAR.OPO:
- uses locale conformat clock type (gCLOCK 6) and changes the system clock
type for all apps when OPL toolbar clock tapped (using new DATE.OPX
procs: LCSetClockFormat:(format&), LCClockFormat&:())
- TBarButt: now has an extra final parameter flags%:
TBarButt:(shortCut$,pos%,text$,state%,bit&,mask&,flags%)
flags% has KTbFlgCmdOnPtrDown% set to call command on pen down
If flag is set, toolbar.opo calls integer-returning command proc
in your app with name "CmdTbDown"+shortCut$:
So, for example, you could provide CmdTbDownP%: for a popup menu
as shown in the Demo app in the rom.
-
3. CONST.OPH
- lots new definitions
4. DBASE: FOLDED and COLLATED Sql SELECTIONs supported.
eg. OPEN "Name COLLATED SELECT field1,field2",A,f1%,f2$
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -