FastScript Developer Manual

合集下载

Fast 用户手册说明书

Fast 用户手册说明书

Fast USER MANUALUser manualfor Fast scoreE505M001 – Version 4 –10/05/2021(software version 1.3)enTABLE OF CONTENTS1.PURPOSE OF THE USER MANUAL (3)2.INDICATIONS (4)2.1. INTENDED USE (4)2.2. INDICATION FOR USE (4)2.3. PRECAUTIONS FOR USE (4)2.4. TARGET POPULATION (4)2.5. INTENDED USER (4)2.6. INTENDED ENVIRONMENT (4)3.CLASSIFICATION (5)4.CLINICAL PERFORMANCES (5)5.OPERATING PROCEDURE (5)5.1. TECHNICAL RECOMMENDATION FOR FIBROSCAN PROCEDURE (5)5.2. TECHNICAL RECOMMENDATION FOR BLOOD SAMPLING (5)5.3. ADDITIONAL RECOMMENDATION (6)5.4. USER REGISTRATION ON MyFIBROSCAN (6)5.5. Fast COMPUTATION FROM myFIBROSCAN ACCESSORY (7)5.6. Fast COMPUTATION FROM Echosens API (9)6.SYMBOLS ON THE DEVICE (9)7.CONTACT US (9)8.ABOUT (9)9.GLOSSARY (10)1. PURPOSE OF THE USERMANUALThe present User Manual has no contractual value whatsoever and under no circumstances may Echosens be held responsible on the basis of the information contained in the present manual.The present User Manual details the information required for the use of Fast computation.Echosens publishes this manual "as is'", without guarantees of any nature, whether explicit or implicit, including, but not limited to, implicit guarantees concerning merchantability or fitness for a particular use, for the purpose of providing simple and accurate information. Consequently, Echosens cannot accept any responsibility for any incorrect interpretation of the manual. Though all efforts have been made to offer a manual that is as accurate as possible, the manual may nevertheless contain some technical inaccuracies and/or typographical errors.Echosens cannot, under any circumstances, be held responsible for any loss of profit, loss of business, data loss, business interruption, or for any indirect, specific, accidental or consecutive damages of any type.Any information or modification requests pertaining to this manual should be sent to: Echosens,6rueFerrus,75014PARIS,*******************************.Fast™, Echosens TM, TM, FibroScan®, TM among others, are trademarks and/or service marks of Echosens Group. Echosens and FibroScan are registered in the U.S.and/or other countries. © 2021 Echosens. All rights reserved.2. INDICATIONSFast™ is an algorithm using liver stiffness measurement, controlled attenuation parameterand aspartate amino transferase intended to compute a score between 0 and 1.Fast™ calculator is a tool for clinicians, computed from LSM and CAP (obtained fromFibroScan device) and AST blood parameter measurement, to aid in the identification ofpatients with suspicion of NAFLD as being at risk for active fibrotic NASH(NASH+NAS≥4+F≥2).Fast™ is presented as an educational service intended for licensed healthcareprofessionals. While this score is about specific medical and healthcare issues, it is not asubstitute for or replacement of personalized medical advice and is not intended to be usedas the sole basis for making individualized medical or health-related decisions.The following circumstances may affect the results obtained and therefore may affect theinterpretation of Fast result:• Pregnancy• Patients under 18 years of age• Other chronic or acute liver disease than NAFLD• Liver transplant patients• Cardiac failure and/or significant vascular disease• Confirmed diagnosis of active malignancy or other terminal disease• Use of treatment inducing liver injuryTo get a reliable result:• LSM and CAP should come from a single FibroScan exam• FibroScan exam and blood collection for AST assessment should be performedwithin 6 months.Fast is indicated for adult patients with suspicion of NAFLD.The device is intended for use by healthcare professionals.The results obtained from the device are intended to be interpreted by a physicianexperienced in the management of liver diseases.Fast is accessible through devices connected to the internet using dedicated services.Users shall authenticate and confirm his/her status and abilities to use Fast.2.1. INTENDED USE2.2. INDICATION FOR USE2.3. PRECAUTIONS FOR USE2.6. INTENDED ENVIRONMENT2.5. INTENDED USER2.4. TARGET POPULATION4 05/2021 - ECHOSENS, FIBROSCAN® AND Fast ARE REGISTERED TRADEMARKS © COPYRIGHT ECHOSENS ALL RIGHTS RESERVED E505M001.4505/2021 - ECHOSENS , FIBROSCAN® AND Fast ARE REGISTERED TRADEMARKS © COPYRIGHT ECHOSENS ALL RIGHTS RESERVEDE505M001.43. CLASSIFICATIONFast is an in vitro diagnostic medical device according to directive 98/79/EC and a non-device Clinical Decision Support (FDA).4. CLINICAL PERFORMANCESFormula and performances are available in Newsome et al., Lancet Gastroenterol Hepatol. 2020 Apr;5(4):362-3735. OPERATING PROCEDUREThe measurement of liver stiffness (E or LSM) and controlled attenuation parameter (CAP) shall be done on a FibroScan device by an operator trained and certified by Echosens or its local representative according to the recommendations of Echosens with a probe fitted to the morphology of the patients as described in the FibroScan user guide.The FibroScan examination results should fulfill reliability criteria defined in the publication entitled “Determination of reliability criteria for liver stiffness evaluation by transient elastography” by Boursier J, Zarski JP, de Ledinghen V, Rousselet MC, Sturm N, Lebail B, Fouchard-Hubert I, Gallois Y, Oberti F, Bertrais S, Cales P and the Multicentric Group from ANRS/HC/EP23 FIBROSTAR St published in Hepatology in 2013 volume 57(3) page 1182-1191.It is essential to comply with the requirements of the ISO 15189 international standard concerning the performance of quality controls (internal quality control, external evaluation including the mandatory national quality control), and with the regulations in force in the country where the laboratory is located.Blood collection should be performed in fasting conditions. The patient should not have made recent physical effort to avoid hemolysis. 5.1. TECHNICAL RECOMMENDATION FOR FIBROSCAN PROCEDURE5.2. TECHNICAL RECOMMENDATION FOR BLOOD SAMPLING605/2021 - ECHOSENS , FIBROSCAN® AND Fast ARE REGISTERED TRADEMARKS © COPYRIGHT ECHOSENS ALL RIGHTS RESERVED E505M001.4The delay between the FibroScan examination and the blood collection shall be less than 6 months.Downloading and sign inmyFibroScan application can be used on iOS and Android platforms. It is available on both Apple store and Google play store. Once it has been downloaded, anyone can launch the application but he/she has to be registered to access Echosens services.The screen aside appears. The application is available both in French and English. However, by default, this page language is based on the phone language.If the user is already registered, he/she can connecthimself/herself by entering his/her login and password and clicking on “Sign In” button. If not, the user should create an account by clicking on “Sign Up” button.Once signed-in, unless he/she specifically logs out from the application, the user will be automatically logged-in and will not have to enter his credentials again.RegistrationTo access Fast, any user has to create an account on Echosens Cloud services by clicking on “Sign Up”. He/she then accesses to the following screens:5.4. USER REGISTRATION ON MyFIBROSCANFigure 1: Sign inFigure 2 : Sign up5.3. ADDITIONAL RECOMMENDATION705/2021 - ECHOSENS , FIBROSCAN® AND Fast ARE REGISTERED TRADEMARKS © COPYRIGHT ECHOSENS ALL RIGHTS RESERVED E505M001.4Home pageOnce logged-in, the user accesses to the home page screen (figure 3). Fast is available under the “Scores” menu (figure 4)Inputs screenBy clicking on the “Fast ” block, the user accesses Fast input screen to fil the input parameters: LSM by VCTE (E), CAP and AST (SGOT). (figure 5).Invalid values will be notified to the user. He will not be able to submit its computation with out of range values of bad/missing units.The user has to confirm that: • He/ She has read precautions for use, including that patient is suspected of NAFLD,•VCTE liver examination and blood collection for AST assessment are performed within 6 monthsThe user can access:• This user guide by clicking on “Learn more” • Fast formula by clicking on publicationThen, the user can submit his/her computation or go back to the home page by clicking on thepictogram.5.5. Fast COMPUTATION FROM myFIBROSCAN ACCESSORYFigure 3: myFibroScan Home pageFigure 5 : Fast input parametersFigure 4: myFibroScan - Scores menu805/2021 - ECHOSENS , FIBROSCAN® AND Fast ARE REGISTERED TRADEMARKS © COPYRIGHT ECHOSENS ALL RIGHTS RESERVED E505M001.4Results screenAfter submission, the user accesses the results screen (figure 6). He/She can consult the input parameters he/she submitted and the associated result. If he/she wants to update one of these values, the user can come back to the inputs screen by clicking on the “back” pictogram.Again, the user can access:• This user guide by clicking on “Learn more” • Fast formula by clicking on publicationFrom here, he can generate the corresponding report by clicking on “Create a report” or go back to the home page by clicking on thepictogram.Report creationTo generate a report, the user has to enter personal patient data. Several options are possible:• The user can re-use data previously entered by selecting a patient from the patient list and confirm the statement.• Or he/she can create a new patient file. It will be locally stored on the phone and will be visible in the patient list for future use. Fields with a red star are mandatory.Once done, the user can submit the data or go back to the home page by clicking on the pictogram.Once submitted, the user has to fill or select FibroScan examination date and blood collection date (figure 7).Even if the time elapsed between these two dates is longer than the threshold mentioned in the Fast input recommendations, the report will be generated. However, the Fast result will not be displayed since it does not meet the specific indications agreed by the user to use the Fast computation.Once done, the user can click on Submit button. The report is generated, downloaded on the phone and can be read by any PDF reader.He/She can go back to the home page by clicking on thepictogram.Results and PDF reports are not stored in myFibroScan application. PDF report can be stored in the phone under the responsibility of the user.Figure 6: Fast Results screenFigure 7: Examination dates905/2021 - ECHOSENS , FIBROSCAN® AND Fast ARE REGISTERED TRADEMARKS © COPYRIGHT ECHOSENS ALL RIGHTS RESERVEDE505M001.4For specific purposes, users can contact Echosens to implement direct API calls without using myFibroScan interface to perform Fast computations.6. SYMBOLS ON THE DEVICEFast deviceCE marking affixed by Echosens 04th November 2019In vitro diagnostic Medical DeviceManufacturer7. CONTACT USThe user can contact Echosens by clicking on the “Contact us” block available on myFibroScan home page.It will redirect him/her towards the support platform in which he/she will be able to fill a request form.8. ABOUTBy clicking on the “About” block available on myFibroScan home page, the user can consult general information regarding Echosens, myFibroScan, trademarks and patents.5.6. Fast COMPUTATION FROM Echosens API9. GLOSSARY10 05/2021 - ECHOSENS, FIBROSCAN® AND Fast ARE REGISTERED TRADEMARKS © COPYRIGHT ECHOSENS ALL RIGHTS RESERVED E505M001.4Fast USER MANUAL 11 05/2021 - ECHOSENS , FIBROSCAN® AND Fast ARE REGISTERED TRADEMARKS © COPYRIGHT ECHOSENS ALL RIGHTS RESERVED E505M001.4Echosens6 rue Ferrus 75014 PARISFranceTel: +33 (0)1 44 82 78 50 Fax: +33 (0)1 44 82 78 60 Website: Contact: *****************。

FastScript

FastScript

FastScript 1.9Scripting libraryDeveloper's manualCopyright (c) 1998-2005 by Fast Reports Inc.Author: Alexander Tzyganenkoe-mail: tz@home page: http://www.fastreport.ruIntroductionWhat is FastScriptQuick startFeatures and missing features Language referenceScript structureData typesClassesFunctionsEventsEnumerations and sets ArraysWhat is FastScriptFastScript is a scripting library. It is useful for the programmers who want to add scripting ability to their projects. FastScript is written on 100% Object Pascal and can be installed in Borland Delphi 4-7, C++Builder 4-6 and Kylix 1-3.Unique feature of FastScript is ability to use several languages (PascalScript, C++Script, JScript and BasicScript), so you can write scripts using your favourite language. FastScript doesn't use Microsoft Scripting Host, so it can be used in Windows and Linux environment.FastScript combines cross-platform scripting, fast code execution, small footprint, rich set of features and a splendid scalability. Make your applications the most flexible and powerful ones with FastScript!Quick startHere is a sample code which demonstrates the easiest way of using FastScript. For the correct work of the example put the components fsScript1: TfsScript and fsPascal1: TfsPascal on the form .uses FS_iInterpreter;procedure TForm1.Button1Click(Sender: TObject);beginfsScript1.Clear; // do this if you running many scripts from one componentfsScript1.Lines.Text := 'begin ShowMessage(''Hello!'') end.';fsScript1.Parent := fsGlobalUnit; // use standard classes and methods fsScript1.SyntaxType := 'PascalScript';if pile thenfsScript1.Execute elseShowMessage(fsScript1.ErrorMsg);end;As you can see, there is nothing difficult here. At first we fill in the fsScript1.Lines property with the script text. For using standard types and functions we set Parent property to the fsGlobalUnit. Then we compile the script using PascalScript language (you can use C++Script, BasicScript, JScript as well). If compilation is successful Compile method returns True and we can Execute the script. Otherwise the error message is shown.Features and missing featuresFeatures- Multi-language architecture allows you to use a number of languages (at present moment PascalScript, C++Script, BasicScript, JScript). You can add any procedural language (language grammar is stored in XML format).- Standard language set: variables, constants, procedures, functions (nested functions allowed) with var/const/default parameters, all the standard operators and statements (including case, try/finally/except, with), types (int, float, bool, char, string, multi-dimensional array, enum, variant), classes (with methods, events, properties, indices and default properties).- Types compatibility checking.- Access to any object inside your application. Standard libraries for the access to the base classes, controls, forms and BD. Easily expandable library architecture.- Small footprint - 90-150Kb depending on used modules.- Can be used in multi-thread environment.Missing features- No type declarations (records, classes) in the script; no records, no pointers, no sets (but you can use 'IN' operator - "a in ['a'..'c','d']"), no shortstrings, no GOTO statement.- C++Script: no octal constants; no 'break' in the SWITCH operator (SWITCH works like Pascal CASE); '++' and '--' operators are possible only after the variables, that is '++i' is not allowed; '--', '++' and '=' operators do not return a value, that is 'if(i++)' is not allowed; all the identifiers are case-insensitive; NULL constant is the Pascal Null - use nil instead of NULL.- JScript and BasicScript: see syntax diagrams.Language referencePascalScript syntax:Program -> [PROGRAM Ident ';'][UsesClause]Block '.'UsesClause -> USES (String/,)... ';'Block -> [DeclSection]...CompoundStmtDeclSection -> ConstSection-> VarSection-> ProcedureDeclSectionConstSection -> CONST (ConstantDecl)...ConstantDecl -> Ident '=' Expression ';'VarSection -> VAR (VarList ';')...VarList -> Ident/','... ':' TypeIdent [InitValue] TypeIdent -> Ident-> ArrayArray -> ARRAY '[' ArrayDim/','... ']' OF IdentArrayDim -> Expression..Expression-> ExpressionInitValue -> '=' ExpressionExpression -> SimpleExpression [RelOp SimpleExpression]... SimpleExpression -> ['-'] Term [AddOp Term]...Term -> Factor [MulOp Factor]...Factor -> Designator-> UnsignedNumber-> String-> '(' Expression ')'-> NOT Factor-> '[' SetConstructor ']'SetConstructor -> SetNode/','...SetNode -> Expression ['..' Expression]RelOp -> '>'-> '<'-> '<='-> '>='-> '<>'-> '='-> IN-> ISAddOp -> '+'-> '-'-> OR-> XORMulOp -> '*'-> '/'-> DIV-> MOD-> AND-> SHL-> SHRDesignator -> ['@'] Ident ['.' Ident | '[' ExprList ']' | '(' ExprList ')']...ExprList -> Expression/','...Statement -> [SimpleStatement | StructStmt]StmtList -> Statement/';'...SimpleStatement -> Designator-> Designator ':=' Expression-> BREAK | CONTINUE | EXITStructStmt -> CompoundStmt-> ConditionalStmt-> LoopStmt-> TryStmt-> WithStmtCompoundStmt -> BEGIN StmtList ENDConditionalStmt -> IfStmt-> CaseStmtIfStmt -> IF Expression THEN Statement [ELSE Statement]CaseStmt -> CASE Expression OF CaseSelector/';'... [ELSE Statement] [';'] ENDCaseSelector -> SetConstructor ':' StatementLoopStmt -> RepeatStmt-> WhileStmt-> ForStmtRepeatStmt -> REPEAT StmtList UNTIL ExpressionWhileStmt -> WHILE Expression DO StatementForStmt -> FOR Ident ':=' Expression ToDownto Expression DO Statement ToDownto -> (TO | DOWNTO)TryStmt -> TRY StmtList (FINALLY | EXCEPT) StmtList ENDWithStmt -> WITH (Designator/,..) DO StatementProcedureDeclSection -> ProcedureDecl-> FunctionDeclProcedureDecl -> ProcedureHeading ';'Block ';'ProcedureHeading -> PROCEDURE Ident [FormalParameters]FunctionDecl -> FunctionHeading ';'Block ';'FunctionHeading -> FUNCTION Ident [FormalParameters] ':' Ident FormalParameters -> '(' FormalParam/';'... ')'FormalParm -> [VAR | CONST] VarListC++Script syntax:Program -> [UsesClause][DeclSection]...CompoundStmtUsesClause -> '#' INCLUDE (String/,)...DeclSection -> ConstSection-> ProcedureDeclSection-> VarStmt ';'ConstSection -> '#' DEFINE ConstantDeclConstantDecl -> Ident ExpressionVarStmt -> Ident Ident [Array] [InitValue] /','...ArrayDef -> '[' ArrayDim/','... ']'ArrayDim -> ExpressionInitValue -> '=' ExpressionExpression -> SimpleExpression [RelOp SimpleExpression]...SimpleExpression -> ['-'] Term [AddOp Term]...Term -> Factor [MulOp Factor]...Factor -> Designator-> UnsignedNumber-> String-> '(' Expression ')'-> '!' Factor-> '[' SetConstructor ']'-> NewOperatorSetConstructor -> SetNode/','...SetNode -> Expression ['..' Expression]NewOperator -> NEW DesignatorRelOp -> '>'-> '<'-> '<='-> '>='-> '!='-> '=='-> IN-> ISAddOp -> '+'-> '-'-> '||'-> '^'MulOp -> '*'-> '/'-> '%'-> '&&'-> '<<'-> '>>'Designator -> ['&'] Ident ['.' Ident | '[' ExprList ']' | '(' ExprList ')']...ExprList -> Expression/','...Statement -> [SimpleStatement ';' | StructStmt | EmptyStmt]EmptyStmt -> ';'StmtList -> (Statement...)SimpleStatement -> DeleteStmt-> AssignStmt-> VarStmt-> CallStmt-> ReturnStmt-> (BREAK | CONTINUE | EXIT)DeleteStmt -> DELETE DesignatorAssignStmt -> Designator ['+'|'-'|'*'|'/']'=' ExpressionCallStmt -> Designator ['+''+'|'-''-']ReturnStmt -> RETURN [Expression]StructStmt -> CompoundStmt-> ConditionalStmt-> LoopStmt-> TryStmtCompoundStmt -> '{' [StmtList] '}'ConditionalStmt -> IfStmt-> CaseStmtIfStmt -> IF '(' Expression ')' Statement [ELSE Statement]CaseStmt -> SWITCH '(' Expression ')' '{' (CaseSelector)... [DEFAULT ':' Statement] '}'CaseSelector -> CASE SetConstructor ':' StatementLoopStmt -> RepeatStmt-> WhileStmt-> ForStmtRepeatStmt -> DO Statement [';'] WHILE '(' Expression ')' ';' WhileStmt -> WHILE '(' Expression ')' StatementForStmt -> FOR '(' ForStmtItem ';' Expression ';' ForStmtItem ')' StatementForStmtItem -> AssignStmt-> VarStmt-> CallStmt-> EmptyTryStmt -> TRY CompoundStmt (FINALLY | EXCEPT) CompoundStmt FunctionDecl -> FunctionHeading CompoundStmtFunctionHeading -> Ident Ident [FormalParameters]FormalParameters -> '(' [FormalParam/';'...] ')'FormalParam -> TypeIdent (['&'] Ident [InitValue]/',')...JScript syntax:Program -> StatementsStatements -> Statement...Block -> '{' Statements '}'ImportStmt -> IMPORT (String/,)...VarStmt -> VAR (VarDecl/',')...VarDecl -> Ident [Array] [InitValue]Array -> '[' (ArrayDim/',')... ']'ArrayDim -> ExpressionInitValue -> '=' ExpressionExpression -> SimpleExpression [RelOp SimpleExpression]... SimpleExpression -> ['-'] Term [AddOp Term]...Term -> Factor [MulOp Factor]...Factor -> Designator-> UnsignedNumber-> String-> '(' Expression ')'-> '!' Factor-> '[' SetConstructor ']'-> NewOperator-> '<' FRString '>'SetConstructor -> SetNode/','...SetNode -> Expression ['..' Expression]NewOperator -> NEW DesignatorRelOp -> '>'-> '<'-> '<='-> '>='-> '!='-> '=='-> IN-> ISAddOp -> '+'-> '-'-> '||'-> '^'MulOp -> '*'-> '/'-> '%'-> '&&'-> '<<'-> '>>'Designator -> ['&'] Ident ['.' Ident | '[' ExprList ']' |'(' [ExprList] ')']...ExprList -> Expression/','...Statement -> (AssignStmt | CallStmt | BreakStmt | ContinueStmt |DeleteStmt | DoWhileStmt | ForStmt | FunctionStmt |IfStmt | ImportStmt | ReturnStmt | SwitchStmt |VarStmt | WhileStmt | WithStmt | Block) [';']BreakStmt -> BREAKContinueStmt -> CONTINUEDeleteStmt -> DELETE DesignatorAssignStmt -> Designator ['+'|'-'|'*'|'/']'=' ExpressionCallStmt -> Designator ['+''+'|'-''-']ReturnStmt -> RETURN [Expression]IfStmt -> IF '(' Expression ')' Statement [ELSE Statement]SwitchStmt -> SWITCH '(' Expression ')' '{' (CaseSelector)... [DEFAULT ':' Statement] '}'CaseSelector -> CASE SetConstructor ':' StatementDoWhileStmt -> DO Statement [';'] WHILE '(' Expression ')' ';'WhileStmt -> WHILE '(' Expression ')' StatementForStmt -> FOR '(' ForStmtItem ';' Expression ';' ForStmtItem ')' StatementForStmtItem -> AssignStmt-> CallStmt-> VarStmt-> EmptyTryStmt -> TRY CompoundStmt (FINALLY | EXCEPT) CompoundStmtFunctionStmt -> FunctionHeading BlockFunctionHeading -> FUNCTION Ident FormalParametersFormalParameters -> '(' [FormalParam/','...] ')'FormalParam -> ['&'] IdentWithStmt -> WITH '(' Designator ')' StatementBasicScript syntax:Program -> StatementsStatements -> (EOL | StatementList EOL)...StatementList -> Statement/':'...ImportStmt -> IMPORTS (String/,)...DimStmt -> DIM (VarDecl/',')...VarDecl -> Ident [Array] [AsClause] [InitValue]AsClause -> AS IdentArray -> '[' ArrayDim/','... ']'ArrayDim -> ExpressionInitValue -> '=' ExpressionExpression -> SimpleExpression [RelOp SimpleExpression]... SimpleExpression -> ['-'] Term [AddOp Term]...Term -> Factor [MulOp Factor]...Factor -> Designator-> UnsignedNumber-> String-> '(' Expression ')'-> NOT Factor-> NewOperator-> '<' FRString '>'SetConstructor -> SetNode/','...SetNode -> Expression ['..' Expression]NewOperator -> NEW DesignatorRelOp -> '>'-> '<'-> '<='-> '>='-> '<>'-> '='-> IN-> ISAddOp -> '+'-> '-'-> '&'-> OR-> XORMulOp -> '*'-> '/'-> '\'-> MOD-> ANDDesignator -> [ADDRESSOF] Ident ['.' Ident | '[' ExprList ']' |'(' [ExprList] ')']...ExprList -> Expression/','...Statement -> BreakStmt-> CaseStmt-> ContinueStmt-> DeleteStmt-> DimStmt-> DoStmt-> ExitStmt-> ForStmt-> FuncStmt-> IfStmt-> ImportStmt-> ProcStmt-> ReturnStmt-> SetStmt-> TryStmt-> WhileStmt-> WithStmt-> AssignStmt-> CallStmtBreakStmt -> BREAKContinueStmt -> CONTINUEExitStmt -> EXITDeleteStmt -> DELETE DesignatorSetStmt -> SET AssignStmtAssignStmt -> Designator ['+'|'-'|'*'|'/']'=' ExpressionCallStmt -> Designator ['+''+'|'-''-']ReturnStmt -> RETURN [Expression]IfStmt -> IF Expression THEN ThenStmtThenStmt -> EOL [Statements] [ElseIfStmt | ElseStmt] END IF-> StatementList ElseIfStmt -> ELSEIF Expression THEN(EOL [Statements] [ElseIfStmt | ElseStmt] | Statement) ElseStmt -> ELSE (EOL [Statements] | Statement)CaseStmt -> SELECT CASE Expression EOL(CaseSelector...) [CASE ELSE ':' Statements] END SELECTCaseSelector -> CASE SetConstructor ':' StatementsDoStmt -> DO [Statements] LOOP (UNTIL | WHILE) ExpressionWhileStmt -> WHILE Expression [Statements] WENDForStmt -> FOR Ident '=' Expression TO Expression [STEP Expression] EOL [Statements] NEXTTryStmt -> TRY Statements (FINALLY | CATCH) [Statements] END TRYWithStmt -> WITH Designator EOL Statements END WITHProcStmt -> SUB Ident [FormalParameters] EOL [Statements] END SUBFuncStmt -> FUNCTION Ident [FormalParameters] [AsClause] EOL[Statements] END FUNCTIONFormalParameters -> '(' (FormalParam/',')... ')'FormalParm -> [BYREF | BYVAL] VarListScript structureThe PascalScript structure is the same as in Object Pascal language:#language PascalScript // this is optionalprogram MyProgram; // this is optionaluses 'unit1.pas', 'unit2.pas';// uses section - must be before any other sections// v1.2 changes: warning! the included units are not inserted into the main unit text. So it can have// 'program', 'uses' sections and must have the 'main procedure' section.var // var sectioni, j: Integer;const // const sectionpi = 3.14159;procedure p1; // procedures and functionvari: Integer;procedure p2; // nested procedurebeginend;beginend;begin // main procedure that will be executed. end.The C++Script structure is:#language C++Script // this is optional#include "unit1.cpp", "unit2.cpp"// uses section - must be before any other sectionsint i, j; // var section#DEFINE pi = 3.14159 // const sectionvoid p1() // procedures and function{ // there is no nested procedures in C++Script }{ // main procedure that will be executed.}The JScript structure is:#language JScript // this is optionalimport "unit1.js", "unit2.js"// import section - must be before any other sectionsvar i, j = 0; // var sectionfunction p1() // procedures and function{ //}// main procedure that will be executed.p1();for (i = 0; i < 10; i++) j++;The BasicScript structure is:#language BasicScript // this is optionalimports "unit1.vb", "unit2.vb"// imports section - must be before any other sectionsdim i, j = 0 // var sectionfunction f1() // procedures and functionend function //sub p1()end sub// main procedure that will be executed. for i = 0 to 10p1()nextData typesInternally FastScript operates with the Variant type and is based on it. Nevertheless, you can use the following predetermined types in your scripts:Byte | Same as Integer typeWord |Integer |Longint |Cardinal |TColor |Boolean | Boolean typeReal | Same as Extended typeSingle |Double |Extended |TDate |TTime |TDateTime |Char | Char typeString | String typeVariant | Same as Variant typePointer |Array | Array typeC++Script maps some types to standard types:int, long = Integervoid = Integerbool = Booleanfloat = ExtendedJScript has no types, all types are variants. BasicScript may have types (for example, dim i as Integer), or may have no types and even no variable declaration. In this case a variable will have Variant type.Not all of these types can be assign-compatible. Like in Object Pascal, you can't assign Extended or String to an Integer. Only one type - the Variant - can be assigned to all the types and can get value from any type.Except the built-in types you can use the enumerated types defined in your application or in add-in modules (for example after adding the TfsGraphicsRTTI component you can use TPenMode, TFontStyles and other types).ClassesYou cannot define a class inside the script, but you can use the external classes defined in add-in modules or your application. This is an example from the DEMOS\Main demo: varf: TForm;b: TButton;procedure ButtonClick(Sender: TButton);beginShowMessage();f.ModalResult := mrOk;end;// there is no need to use all the parameters in event handlers// because no type checking is performed hereprocedure ButtonMouseMove(Sender: TButton);beginb.Caption := 'moved over';end;beginf := TForm.Create(nil);f.Caption := 'Test it!';f.BorderStyle := bsDialog;f.Position := poScreenCenter;b := TButton.Create(f); := 'Button1';b.Parent := f;b.SetBounds(10, 10, 75, 25);b.Caption := 'Test';b.OnClick := @ButtonClick; { same as b.OnClick := 'ButtonClick' }b.OnMouseMove := @ButtonMouseMove;f.ShowModal;f.Free;end.As you can see there is no difference between PascalScript and Delphi code. You can access any property (simple, indexed or default) or method. All the object's published properties are accessible from the script by default. Public properties and methods need the implementation code - that's why you can access it partially (for example, you cannot access the TForm.Print method or TForm.Canvas property because they are not implemented).You can add your own classes - see "Scripting" chapter for details.FunctionsThere is a rich set of standard functions which can be used in a script. To get an access to these functions, pass the fsGlobalUnit reference to the TfsScript.Parent property. function IntToStr(i: Integer): Stringfunction FloatToStr(e: Extended): Stringfunction DateToStr(e: Extended): Stringfunction TimeToStr(e: Extended): Stringfunction DateTimeToStr(e: Extended): Stringfunction VarToStr(v: Variant): Stringfunction StrToInt(s: String): Integerfunction StrToFloat(s: String): Extendedfunction StrToDate(s: String): Extendedfunction StrToTime(s: String): Extendedfunction StrToDateTime(s: String): Extendedfunction Format(Fmt: String; Args: array): Stringfunction FormatFloat(Fmt: String; Value: Extended): Stringfunction FormatDateTime(Fmt: String; DateTime: TDateTime): String function FormatMaskText(EditMask: string; Value: string): stringfunction EncodeDate(Year, Month, Day: Word): TDateTimeprocedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word) function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTimeprocedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word) function Date: TDateTimefunction Time: TDateTimefunction Now: TDateTimefunction DayOfWeek(aDate: DateTime): Integerfunction IsLeapYear(Year: Word): Booleanfunction DaysInMonth(nYear, nMonth: Integer): Integerfunction Length(s: String): Integerfunction Copy(s: String; from, count: Integer): Stringfunction Pos(substr, s: String): Integerprocedure Delete(var s: String; from, count: Integer): Stringprocedure Insert(s: String; var s2: String; pos: Integer): String function Uppercase(s: String): Stringfunction Lowercase(s: String): Stringfunction Trim(s: String): Stringfunction NameCase(s: String): Stringfunction CompareText(s, s1: String): Integerfunction Chr(i: Integer): Charfunction Ord(ch: Char): Integerprocedure SetLength(var S: String; L: Integer)function Round(e: Extended): Integerfunction Trunc(e: Extended): Integerfunction Int(e: Extended): Integerfunction Frac(X: Extended): Extendedfunction Sqrt(e: Extended): Extendedfunction Abs(e: Extended): Extendedfunction Sin(e: Extended): Extendedfunction Cos(e: Extended): Extendedfunction ArcTan(X: Extended): Extendedfunction Tan(X: Extended): Extendedfunction Exp(X: Extended): Extendedfunction Ln(X: Extended): Extendedfunction Pi: Extendedprocedure Inc(var i: Integer; incr: Integer = 1)procedure Dec(var i: Integer; decr: Integer = 1)procedure RaiseException(Param: String)procedure ShowMessage(Msg: Variant)procedure Randomizefunction Random: Extendedfunction ValidInt(cInt: String): Booleanfunction ValidFloat(cFlt: String): Booleanfunction ValidDate(cDate: String): Booleanfunction CreateOleObject(ClassName: String): Variantfunction VarArrayCreate(Bounds: Array; Typ: Integer): VariantAs you can see, some functions/procedure have default parameters. You can call it just like in Delphi:Inc(a);Inc(b, 2);You can connect own function/procedure to a script - see "Scripting" chapter for details.EventsYou can use event handlers in the script. Unlike the Delphi event handler, script event handlers are not the methods of the object. The following example shows how to connect an event handler to the TButton.OnClick event:varb: TButton;Form1: TForm;procedure ButtonClick(Sender: TButton);beginShowMessage();end;beginb := TButton.Create(Form1);b.Parent := Form1;b.OnClick := @ButtonClick; // same as b.OnClick := 'ButtonClick'b.OnClick := nil; // clear the eventend.There are some predefined events available in FS_iEvents unit:TfsNotifyEventTfsMouseEventTfsMouseMoveEventTfsKeyEventTfsKeyPressEventTfsCloseEventTfsCloseQueryEventTfsCanResizeEventSee the "TfsFormsRTTTI component", "TfsExtCtrlsRTTI component" and "TfsDBCtrlsRTTI component" chapters for a list of the available events.Enumerations and SetsFastScript supports enumerations. You can write in a script:Form1.BorderStyle := bsDialog;Sets are not supported. However, you can use set constants in the following way: Font.Style := fsBold; // Font.Style := [fsBold] in Delphi Font.Style := fsBold + fsItalic; // Font.Style := [fsBold, fsItalic] Font.Style := 0; // Font.Style := []ArraysFastScript supports all kind of arrays: static (one- and multi-dimesional), dynamic, variant arrays. There is an example of script that uses all array types:varar1: array[0..2] of Integer;ar2: array of Integer;ar3: Variant;SetLength(ar2, 3);ar3 := VarArrayCreate([0, 2], varInteger);ar1[0] := 1;ar2[0] := 1;ar3[0] := 1;FastScript component paletteDelphi component paletteTfsScript componentTfsClassesRTTI component TfsGraphicsRTTI component TfsFormsRTTI component TfsExtCtrlsRTTI component TfsDialogsRTTI componentTfsDBRTTI componentTfsDBCtrlsRTTI componentTfsBDERTTI componentTfsADORTTI componentTfsIBXRTTI component TfsChartRTTI componentDelphi component paletteAfter the FastScript installing the "FastScript" tab will be created in the Delphi /C++Builder. This tab contains the main FastScript components such as TfsScript, TfsClassesRTTI, etc.TfsScript component - the main scripting componentThis is a main scripting component.Properties:SyntaxType: String;The type of the script language. By default four types of scripts are supported: "PascalScript", "C++Script", "BasicScript", "JScript". Warning! The property has the string type and it is easy to make a mistake in the syntax type indication. The value by default is “PascalScript”.Lines: TStrings;A script text. Contains strings of the script.Methods:function Compile: Boolean;Compiles the source code. Source code must be placed in the TfsScript.Lines property before you call the Compile method.procedure Execute;Execute script after compiling.function Run: boolean;Compile and execute script. Returns true if compile was successful. This method is the analogue to the Compile + Execute.Examples of use:Example1.Delphi/Kylix IDE. Loads script file MyTestScript.pas and execute it.。

用FastCAE定制自己的软件

用FastCAE定制自己的软件

官方网站:用FastCAE 定制自己的软件FastCAE研发小组2020/4/26目录Content 1 One FastCAE平台搭载功能2 Two“所见即所得”的定制3 Three Python脚本拓展4 Four插件式开发拓展0 Zero FastCAE概述与安装目录0 Zero FastCAE概述与安装ContentFastCAE,一套国产CAE工业仿真软件研发支撑平台。

平台提供完整的前后处理功能模块、统一的数据管理模块和交互界面自动生成模块,具备开放性和高拓展性特点。

平台独创可视化交互界面自动生成工具,无需编码即可实现软件设计。

基于平台可自由集成用户自研求解程序和第三方求解器,为CAE软件产品化提供一体化解决方案,让用户享受集合前处理、求解计算、后处理于一体的平台化计算体验。

适用对象FastCAE提供完善的前后处理功能,服务于CAE软件开发者研究人员自主研发求解计算程序的人员,可通过平台将计算程序升级为软件产品。

开发人员正在规划研究自主仿真软件的开发人员,可通过平台快速实现产品原型。

商业团队有二次开发需求的团队,按照集成标准,自主定制一套完整的CAE桌面软件产品。

安装从FastCAE官方网站获取安装文件,启动安装程序按照提示进行安装即可安装目录不可出现中文字符,否则将会影响某些功能的正常使用。

启动软件的启动方式有两种,一种是直接通过双击图标或对应快捷方式的方法启动;另外一种是通过命令行启动的方式。

在可执行程序后面可以加入一些参数以实现某些功能:-i[filename] 运行python脚本文件-nogui无界面运行目录1 One FastCAE平台搭载功能Content主界面进程窗口控制台控制面板绘图区菜单/工具栏软件第一次启动时需要设置工作路径,软件工作过程中产生的文件都将存放在这个位置,打开和保存工程文件的位置也将默认到工作路径下。

以后软件启动工作路径将会默认到上次正常关闭程序时的工作目录。

FastTrak客户新手指南说明书

FastTrak客户新手指南说明书

Website Ordering User Guide(New FastTrak customer)Version 1.1 – Regular UserDecember 29, 2011Contact InformationEmail: ************************Customer Service:USA: 1-800-500-8687Canada: 1-800-465-1890China (HKG): 852-2156-9788FastTrak User Guide OutlineI.Ordering a POII.Track Your OrdersIII.Order HistoryIV.Order InquiryV.Manage AccountVI.Customer SupportVII.Glossary of Terms(Home Page)I. Ordering a PO – This section details the steps required to order a PO.1.Begin by selecting the ‘Submit Your Order’ Icon or click on the Start New2.Choose Eddie Bauer from the retailer list.3.To search for your PO’s enter your PO #. You may enter multiple POnumbers and separate them with commas, or you can select the PO’s you needby clicking the check box and then clicking continue.4.Next, you can review the line items on the PO. On your initial order, you must orderthe entire PO. On a reorder, you can revise the quantities and select which line items you want to order.5.Select your shipping method, enter an internal PO number to reference yourorder (if necessary), and specify any special instructions required for yourorder, then click Continue. Rush service is available, call our customerservice for details.6.Then click the continue button to move to the next step. Select paymentmethod.7.Final Step! Review and Confirm Order. Review the details of your order andclick the Continue Button to complete the order.Click Continue button to submit your order. The following message may prompt while processing the order.8.Print the ‘Thank You’ page for your records. You will also receive and orderconfirmation to the email address used to sign in to FastTrak.II. Track Your Orders – The FineLine Ordering site will allow you to track your orders as they are produced and shipped. To track an order, follow these steps:1.Click the ‘Track Your Order’ icon or the ‘Order Tracking/Search’ tab or find yourorder# from the ‘Recent Orders’ located on the FastTrak Home Page.2.Locate your order in the list or search by the order date, or PO number.3.Once your order has shipped, a ship date as well as Tracking number will beprovided. If your order was shipped via FedX or UPS, clicking the trackingnumber will take you to the appropriate website for detailed tracking information regarding your shipment.4. Clicking the Order # will provide you with detailed information regarding yourorder, Shipping and Billing Information, as well as line item detail.III. Payment History – The Payment History Section will display the 50 most recent orders. You may also search by Order #, or Date Range to locate an order and display its details. You may click on the icon to display the invoice in pdf format. To gain access to your order history, simply click the Order History icon. You may also click on theicon to export the results in excel format. Should you have any questions, youmay click on theicon to submit your inquiries. Someone from our customer support team will handle your inquiries promptly.IV. Order Inquiry – Gain direct access to FineLine Technologies’ superior customer support. Should you have a question regarding your order, always feel free to call our toll free customer support hotline 1-800-500-8687. FastTrak, however, offers the ability to streamline your request by locating your Order ID in question, then you can submit your inquiry directly to a CSR trained specifically to handle your questions.1.Begin by clicking the Inquiry Icon.e the familiar query options (Order ID, Date Range) to locate your order inquestion. Then click the Inquiry Icon to submit your question.3. Select the category of the question and description of the question, then clickSubmit Inquiry.V. Manage Account – There are five tabs; Personal Information, Customer Settings, Shipping Information, Billing Information and Vendor ids maintenance. This section provides the ability to update the information.Start by clicking ‘Manage My Account’ located in the upper right corner of the home screen.You may find your FineLine Customer ID here.Personal InformationClick Edit to change your personal contact informationCustomer SettingsBy default, the person who placed orders receive a copy of the order confirmation and the shipment confirmation, and the contact person of the vendor will receive the PO notification. In most circumstance, the default setting will work fine for most customers. However, you may customize/add more than one person to receive the notifications. Select one of the three notification options, for example, Order Confirmation.Click on Add Setting, type in the email address. You may enter multiple email addresses and separate them using commas. Lastly, click Update to save.Click on Edit to make changes or Delete to remove the record.Shipping InformationYou may add new or edit existing shipping address records. Click on the Add a new Shipping Address link to add new record or any of the company names on the list to edit the current record.Click on ‘Add a new Shipping Address’ tocreate new address to the address bookClick on company name web link to editcurrent informationBilling InformationYou may edit your billing address information by clicking the Company Name.Maintain Retailer RelationshipsAdd Additional Retailers – Here you can continue to add Vendor ID’s to your account as new retailers become available via the FastTrak system. Simply click ‘Maintain Retailer Relations’ and add your Vendor ID.VI. Customer SupportWe appreciate your business here at FineLine and want your ordering experience to be simple. Should you experience any problem with our website or with your order, always feel free to call us directly to speak with a live customer service representative. Again, thank your for using FastTrak and FineLine Technologies.Our Contact Information:Email: ************************Customer Service:USA: 1-800-500-8687Canada: 1-800-465-1890China (HKG): 852-2156-9788VII. Glossary of TermsInternal PO – FastTrak allows a user to input their own Purchase Order number that will be used to relate an order for internal accounting use. An Internal PO number is usually not associated with a regular PO as assigned by the retailer.Line Item –A term used to describe an individual row of data, typically associated with a PO. An example of a line item is a row of data as seen in an excel spreadsheet.Line Item Filter – If your replenishment PO data has more than 25 line items, the ‘Line Item Filter’ allows you to narrow the selection based upon searching by fields in this drop down menu.Manufacturer – A common term to describe a provider to a retailer. The term ‘Vendor’ is also commonly used.PO – Stands for Purchase Order and is one of the key components used in ordering tickets or labels via FastTrak. A Retailer typically assigns a PO to a Vendor or Manufacturer who then can place an order with FineLine using that PO Number.Replenishment PO – A concept used within FastTrak to allow users to order individual items not related to any particular Purchase Order. If your Vendor ID is associated with any items within replenishment data sent to FineLine, a user will have the option to order replenishment items by selecting the REPL-001 PO upon selecting ‘Submit Order’.Setup Fee – A fee based on custom setup required for some orders.SKU – Technically, SKU means ‘Stock Keeping Unit’. The term SKU is commonly used to describe a unique item within a PO or set of printed tickets.SKU Charge – A fee based upon the number of unique items in an order.UPC – Technically, UPC stands for Universal Product Code and is a very specific type of barcode that contains 12 digits. It is commonly used to describe ‘any’ barcode printed on a ticket, although this can be misleading. It is also used frequently to describe a unique item within a PO or set of printed tickets.Vendor – A common term to describe a provider to a retailer.Status:On Hold – Order is not being processed. Your account may be past due or othercorrections are needed to complete your order.In Progress – Order is complete and in production.Shipped – Order has been printed and shipped.Print Quantity – Each line item printed will have a 10% overage plus 2 tickets that FineLine Technologies will keep as samples. Example: If 100 tickets are required by a particular PO, FineLine Technologies will print 112 tickets.。

开发者开发手册

开发者开发手册

开发者开发手册介绍本开发手册旨在指导开发人员进行应用程序的开发。

它包含了一系列的准则和最佳实践,帮助开发人员提高开发效率并保证代码质量。

开发环境设置在开始开发之前,请确保以下开发环境设置已完成:- 安装适当版本的开发工具,如IDE或文本编辑器。

- 配置相关的开发环境变量。

- 安装任何必要的依赖项和库。

项目结构为了保持项目的组织和可扩展性,在开始开发之前,请确保项目的结构清晰合理。

以下是一个示例项目结构的建议:├── app.py├── config.py├── requirements.txt├── README.md├──/static│ ├── css│ ├── js│ └── img└──/templates编码规范编码规范可以帮助开发人员统一代码风格,提高代码可读性和维护性。

以下是一些常见的编码规范建议:- 使用有意义的变量和函数命名,避免使用缩写或不清晰的命名。

- 为代码添加适当的注释,解释代码用途和意图。

- 遵循一致的缩进规范,如使用4个空格或制表符。

- 每个函数或方法应尽量保持简短,只关注单一功能。

文档化良好的文档化是开发中不可或缺的一部分。

以下是一些建议:- 为项目添加适当的README文件,提供项目的概述、安装说明、使用示例等。

- 为项目中的重要代码块添加注释,解释其功能和用法。

- 在代码中使用文档化字符串,提供函数和方法的用途、参数和返回值的说明。

- 为API和其他公共接口提供详细的文档。

测试测试是确保代码质量和功能正常的重要一环。

以下是一些建议:- 编写单元测试来验证函数和方法的正确性。

- 编写集成测试来验证各个组件的交互是否正常。

- 使用自动化测试框架并进行持续集成,以确保每次代码提交都通过测试。

版本控制使用版本控制可以方便地管理代码历史记录和团队协作。

以下是一些建议:- 使用一个可靠的版本控制系统,如Git。

- 建立合适的分支策略,如主分支、开发分支和特性分支。

- 定期进行代码提交和合并,保持代码库的整洁和可维护性。

WalkScript培训教程

WalkScript培训教程

WalkScript培训教程WalkScript是一个开源的自然语言处理工具,它可以对文本进行分析、标记和转换,使得文本可以更加有效地参与到机器学习和深度学习中。

WalkScript的编写语言简单易懂,使用Python编写,易于学习和使用。

为了帮助更多的人学习和掌握WalkScript,WalkScript培训教程成为许多人的首选。

WalkScript培训教程是一种教学体系,可以帮助学生了解和掌握WalkScript的基本原理和应用,从而实现自己的项目。

这个教程专注于WalkScript的使用,通过实践来掌握WalkScript的编写和使用。

在教程开始前,学生需要拥有一定的计算机编程和Python基础知识。

如果您是一个Python初学者,那么你可以选择学习Python教程然后再来学习WalkScript。

教程的目标是让学生掌握WalkScript语言的基本语法、功能、API,以及如何使用它来构建自己的自然语言处理工具。

该教程分为五个部分,分别是:1. WalkScript语言介绍:本部分将介绍WalkScript编程语言的基本概念、语法和核心API。

2. 模块介绍:在本部分,学生将了解如何使用WalkScript短语句模块、文本净化模块和语音识别模块来设计基于自然语言的应用生态系统。

3. 语言分类器:在这部分,学生将学习如何使用WalkScript来创建自己的文本分类器,用于自然语言处理和机器学习。

4. 语言生成器:在本部分,学生将了解如何使用WalkScript创建自己的语言生成器,用于自然语言处理和人机交互。

5. 综合应用:通过一系列案例实例,学生将掌握如何在自然语言处理和深度学习中,使用WalkScript构建端到端的应用程序。

本教程是由聚美优品的数据科学家和研究员进行编写和设计的,这意味着学生可以在WalkScript学习和实践的过程中,得到大量从业经验和实践知识。

同时,教程还提供了大量的静态和交互式练习,帮助学生加深对WalkScript的理解和掌握程度。

VisualRules快速开发介绍

VisualRules快速开发介绍
务逻辑设置以及界面的配置 3、涉及的项目管理:自动生成数据库设计文档、业务逻辑文档等,自带
的业务规则管理系统实现业务规则代码的配置管理
应用特征
▪ 短平快方式实施信息化项目
? 项目经费有限?人手少 ? 项目需求不清晰?调研时间长 ? 项目要求时间紧?尽早上线 ? 业务逻辑复杂?集中实现 ? 用户输入输出多?对界面要求高
三、技术特点
核心技术
B/S(Browser/Server)结构 动态ORMapping技术 Java规则引擎 基于模板的页面代码生成技术 工作流
软件体系结构
HTML/JSP/Applet JavaApplication
HTTP Protocol
RMI/IIOP Protocol
JSP Engine
核心理念
旗正业务规则定制平台
敏捷开发随需而变
应用特征
▪ 功能全面的产品线
包括:数据库配置器、业务规则配置器、页面配置器、基于B/S的运行 框架、业务规则管理系统
针对具体项目:
1、已有的公共组件:权限管理、组织结构设置、日志管理、栏目设置等 2、快速的配置工具:根据需求可快速的实现功能,包括数据库建立、业
▪ 批量数据结构配置
- 支持表格汇总 - 支持表格合并 - 支持表格列公式设置 - 支持与数据库数据交互
总体功能
▪ 多种表现形式的业务逻辑定义 - 支持规则的初始化、条件、动作、否则、异常等 - 支持公共条件规则,支持循环条件规则,支持规则 嵌套 - 支持二维决策表、多维决策表以及关联决策表 - 支持对规则、规则集以及规则包的测试 - 支持规则执行的跟踪以及调试输出 - 支持规则流程图形式的展现
▪ 产品目标
➢为企业提供可以快速进行客户化要求较高的各类 管理软件系统开发的基础平台和工具产品。

程序员开发手册

程序员开发手册

程序员开发手册安全生产信息化管理系统》程序员开发手册1.概述目的:1.方便代码的交流和维护。

2.不影响编码效率,不与大众惯冲突。

3.使代码更美观,阅读更方便。

4.使代码逻辑更清晰,更易于理解。

范围:本手册适用于开发部全体人员,在软件项目开发的代码编写和后期维护阶段起作用。

警示:对于不符合编码规范的代码,必须在限期内修正。

逾期视为工作过失,部门主管或相关负责人视具体情况做出相关处理。

术语定义:1.匈牙利命名法已被禁用。

2.推荐使用帕斯卡(pascal)命名法或骆驼(Camel)命名法。

2.代码格式列宽:1.为了防止在阅读代码时不得不滚动源代码编辑器,每行代码或注释在一般显示频率下不得超过一显示屏,代码列宽控制在110字符左右。

2.系统中部分代码可以不遵循此原则,比如VIWFormItemDetail[]dv=(VIWFormItemDetail[]),sqlParams)。

3.SQL语句拼接、字符串拼接、函数参数名过长、判断语句过长的代码要遵循以上原则。

换行:1.当表达式超出或即将超出规定的列宽,一行被分为几行时,通过将串联运算符放在每一行的末尾而不是开头,清楚地表示没有后面的行是不完整的。

例如:StringquerySql=“SELECTProjectId”+“,ProjectTitle”+“FROM Project”。

2.每一行上放置的语句避免超过一条。

3.当表达式超出或即将超出规定的列宽,遵循以下规则进行换行:1) 在逗号前换行。

2) 在操作符前换行。

3) 规则1优先于规则2.例如:StringBuilder querySql = new StringBuilder();("SELECT。

AS PK ");(",",",");("。

AS ISBNCode");在编写代码时,应该遵守一定的格式规范,以提高代码的可读性和可维护性。

rapid语言手册

rapid语言手册

Rapid语言手册是一本全面介绍Rapid语言的官方指南。

Rapid语言是一种用于快速开发应用程序的高级编程语言,特别适合于需要快速开发、部署和运行应用程序的场景。

手册首先介绍了Rapid语言的基本概念、语法和编程范式,帮助读者了解该语言的特性和用法。

接着,手册详细介绍了Rapid语言的各个模块和库,包括输入输出、网络通信、数据库访问、图形界面等,并给出了大量的示例代码和实际应用案例。

此外,手册还提供了关于如何使用Rapid语言进行应用程序开发和调试的详细指导,包括设计模式、代码优化、性能测试等方面。

最后,手册还给出了常见问题和解决方案,以帮助读者解决在开发过程中遇到的问题。

总的来说,Rapid语言手册是一本全面而实用的指南,为使用Rapid语言的开发人员提供了详细的参考和指导。

通过阅读该手册,开发人员可以更好地了解Rapid语言的特性和用法,提高应用程序的开发效率和质量。

无论您是初学者还是经验丰富的开发人员,这本手册都能为您提供有用的信息和帮助。

阿里开发者手册

阿里开发者手册

阿里开发者手册1. 介绍阿里开发者手册是针对阿里巴巴公司的开发者群体编写的一份指导手册。

它提供了完整、详细、全面的技术文档和开发规范,帮助开发者在阿里巴巴的各个领域进行开发工作。

2. 规范与标准阿里开发者手册包含了丰富的规范与标准,涵盖了代码编写、项目管理、性能优化、安全防范等方面的要求。

下面是一些重要的规范与标准:2.1 代码规范•代码的命名规范,包括类名、方法名、变量名等的命名规则。

•代码的注释规范,包括注释的格式、注释的内容等要求。

•代码的缩进和空格规范,包括缩进的字符数、空格的使用等要求。

•代码的排版规范,包括括号的使用、换行的位置等要求。

2.2 项目管理规范•项目的目录结构规范,包括源代码目录、资源文件目录等的组织方式。

•项目的版本管理规范,包括分支管理、提交日志的编写等要求。

•项目的文档编写规范,包括需求文档、设计文档等的格式和内容要求。

•项目的测试规范,包括单元测试、集成测试等的执行方式和结果要求。

2.3 性能优化规范•代码的性能优化规范,包括循环优化、算法优化等方面的要求。

•数据库的性能优化规范,包括索引的使用、SQL语句的优化等要求。

•网络的性能优化规范,包括缓存的使用、CDN的配置等方面的要求。

•前端页面的性能优化规范,包括减少HTTP请求、压缩资源等的要求。

2.4 安全防范规范•代码的安全防范规范,包括输入验证、加密处理等方面的要求。

•网络的安全防范规范,包括防火墙的配置、权限管理等要求。

•数据存储的安全防范规范,包括数据库的加密、备份等方面的要求。

•静态资源的安全防范规范,包括防止恶意篡改、热更新等要求。

3. 使用与贡献阿里开发者手册提供了多种使用方式,方便开发者快速查阅和使用:3.1 在线阅读阿里开发者手册通过网站的形式提供在线阅读功能,开发者可以在任何地方、任何时间查阅相关内容。

3.2 下载使用开发者可以将阿里开发者手册下载到本地,方便离线查阅和使用。

下载的手册包含了完整的内容和相关资源。

软件开发技术手册

软件开发技术手册

软件开发技术手册软件开发是一门复杂而又需要高度专业化的领域。

无论是初学者还是有经验的开发者,都需要掌握一系列的技术和工具,以便能够有效地完成软件开发项目。

本文将为读者提供一份软件开发技术手册,涵盖了一些重要的软件开发技术和最佳实践。

一、编程语言选择合适的编程语言对于软件开发至关重要。

不同的编程语言具有不同的特点和适用范围。

以下列举了一些常用的编程语言:1. Java:适用于构建大型企业级应用程序,并具有广泛的开发社区和生态系统支持。

2. Python:一种易学易用的语言,适用于快速原型开发和科学计算。

3. C++:一种高性能的语言,适用于游戏开发和系统级编程。

4. JavaScript:用于前端开发的脚本语言,常用于网页和移动应用程序开发。

5. Ruby:一种简洁而富有表达力的语言,适用于Web开发和脚本编写。

二、集成开发环境(IDE)IDE是软件开发过程中不可或缺的工具。

它们提供了一个集成的开发环境,包括代码编辑器、调试器、编译器和构建工具等。

以下是一些常用的IDE:1. Eclipse:Java开发的首选IDE,具有强大的插件生态系统。

2. Visual Studio:适用于多种编程语言的IDE,提供丰富的功能和调试工具。

3. IntelliJ IDEA:Java和Kotlin开发的专业IDE,具有智能代码补全和静态代码分析等功能。

4. Xcode:适用于苹果开发者的IDE,支持iOS和macOS应用程序开发。

5. PyCharm:Python开发的IDE,提供了强大的调试和测试工具。

三、版本控制使用版本控制系统可以有效地管理和追踪代码的变化。

它可以帮助开发团队协同工作,并在出现问题时恢复到之前的稳定状态。

以下是一些常用的版本控制系统:1. Git:最流行的分布式版本控制系统,具有强大的分支和合并功能。

2. SVN:集中式版本控制系统,适用于小型项目和较小规模的开发团队。

3. Mercurial:可扩展、高性能的分布式版本控制系统,类似于Git。

FastScript脚本使用说明白皮书

FastScript脚本使用说明白皮书
procedure LoadFromFile(Filename: String)
procedure SaveToStream(Stream: TStream)
procedure SaveToFile(Filename: String)
I)TComponent:class(TPersistent)
方法:
属性:
Duplicates:TDuplicates
Sorted:Boolean
F)TStream:class(TObject)
方法:
function Read(Buffer: string; Count: Longint): Longint
function Write(Buffer: string; Count: Longint): Longint
ItemIndex:Integer
SelCount:integer
Selected[Index: Integer]: Boolean
对于TDBRadioGroup除了有Published属性外还有如下属性:
OnDropDown
OnCloseUp
除了有Published属性外还有如下属性:
DroppedDown:Boolean
ItemIndex:Integer
对于TEdit,TMemo还有如下方法:
procedure CopyToClipboard
procedure CutToClipboard
procedure PasteFromClipboard
constructor Create(Filename: String; Mode: Word)
H)TMemoryStream:class('TStream')

Active Silicon Snapper SDK 软件开发者工具包说明书

Active Silicon Snapper SDK 软件开发者工具包说明书

SNAPPER SOFTWARE DEVELOPER’S KIT (SDK)•Allows rapid system development and integration usingSnapper hardware.•Comprehensive library functions and documentation for allSnappers and Bus Interface Boards.•Comprehensive application examples with full sourcecode.•Libraries supplied as dynamic link libraries (DLLs/.so) for alloperating systems apart from static libraries for MS-DOS.•Royalty free (provided it is used in conjunction withSnapper hardware).•SDKs are available for the following operating systems:Windows NT, Windows 95, Windows 98, Windows 3.1x,MS-DOS (protected mode), MacOS, Solaris 2, LynxOS andSnapper SDKVxWorks.OVERVIEWThe Snapper SDK is designed for OEMs and integrators using Snapper hardware. It contains comprehensive example applications and optimised libraries for a variety of operating systems (listed above). The API (application programming interface) is consistent across operating systems and hardware platforms allowing easy migration between for example, Windows 3.1x to Windows 95/98/NT, or perhaps from the ISA Bus Interface Board to the PCI Bus Interface Board.The Snapper SDK (pictured above) contains detailed manual pages on all the Snapper functions as well as sections on installation, a developer’s guide, error handling, JPEG (“Crunch”) compression, a glossary and technical notes. Also included is a general purpose imaging library - the “TMG” library, which again runs on all of the above operating systems. This imaging library contains many general purpose imaging functions for the loading, saving, displaying and pixel format conversion of images. A key feature of the display functionality is that the API is virtually independent of the programming environment (e.g. Windows NT, X Windows etc).The libraries for the 32 bit operating systems (i.e. all except Windows 3.1x) are written in native 32 bit code optimised to the environment in which they will be used. MS-DOS static libraries are provided for 32 bit protected mode DOS (using Watcom’s 32 bit compiler).The price of the SDK includes 90 days hotline support. Further maintenance and support is available at a nominal yearly charge, which includes software upgrades and updated manual information.Snapper Software StructureSNAPPER SDK INFORMATIONSupported Operating Systems and Platforms:OS OS Level Platform CompilerWindows NT: v4.0 or above x86 Microsoft Visual C++ (v4.0 or above). Windows 95: - x86 Microsoft Visual C++ (v4.0 or above). Windows 98: - x86 Microsoft Visual C++ (v4.0 or above). Windows 3.1x: - x86 Microsoft Visual C++ (v1.0 , 1.5, 1.51),Microsoft Visual Basic (v3.0 or above). MS-DOS: - x86 Watcom C++ (v10.5 or above) usingWatcom’s 32 bit flat model and Flashtek’sX-32VM DOS extender.MacOS System 7.5 and above, orSystem 8 and aboveAny PCI Mac Metrowerks CodeWarrior Professional 3.Solaris 2: Solaris 2.6 or above. Sparc(SBus & PCI) SunSoft’s SPARCompiler C (v2.0 or above) and GNU C (v2.5 or above).LynxOS: LynxOS 2.5LynxOS Cetia Uni/RT 2.4 X86,PowerPC 603and aboveGCC v2VxWorks: Tornado 1.0.1 PowerPC 603and above.Tornado 1.0.1NOTE:1.The above compilers are fully supported and the example applications are all written with these compilers. Codegenerated on alternative compilers for the above operating systems will also work with the supplied libraries for that operating system.2.Solaris 2.3 is also available but does not include the latest library features and should NOT be used for new projects.SDK Contents:•Comprehensive application examples with full source code: Windows NT/95/98/3.1x are all written using the Microsoft MFC application framework.•Libraries for Windows NT/95/98/3.1x are provided as DLLs (dynamic link libraries). The libraries for Solaris 2 are provided as “.so” (shared object) libraries. Device drivers are provided for each operating system (capable of full DMA as appropriate) which provide the interface between the libraries and the hardware. All Snapper libraries are optimised for the operating system. In other words native 32 bit code is used for 32 bit operating systems.•TMG imaging library - A general purpose imaging library, which includes software JPEG compression and decompression - again optimised to the operating system. Example source code for custom TMG functions is also included.•ActiveX SDK for Windows NT/95/98 developers. The SnapperTool application is provided, not only as an example of an ActiveX program, but also as a simple image acquisition tool.•Comprehensive Developer’s Manual.•90 days telephone support and software upgrades.Support:Support is provided by telephone, fax, e-mail and web site. Yearly support contracts may be purchased which provide telephone support, access to the web-site/FTP site and typically several upgrades per year.TMG Imaging Library:The Snapper SDK is supplied with a general purpose image library referred to as the TMG library. This library provides general purpose imaging functions such as file loading, saving, pixel format conversion etc, as well as JPEG software compression and decompression and display functions. The display API is simple to use and virtually identical across alloperating systems. (Under MS-DOS, the Flash Graphics library from Flashtek is also required - Snapper part numberDOS-FG-LIB.) Other functions include chroma keying, colourmap/palette generation and LUT operations.32 Bit DOS Extenders:The X-32VM DOS extender is a pre-requisite when using the Watcom compiler (Snapper part number DOS-X32-LIB). This allows Flash Graphics compatibility and PCI DMA support.EXAMPLE APPLICATIONSThis example is a complete program that shows how an image is acquired from a Snapper module (Snapper-24 in this example), displayed, then saved as a TIFF file. (This code is written for MS-DOS, but it is identical for all other operating systems, apart from some additional TMG_display calls that may be required).#include <asl_inc.h>int main(ui16 argc, char** argv){Thandle hBase, hSnapper; /* handle to baseboard and Snapper */Thandle hSrcImage, hRGB24Image; /* handle to images */Thandle hDisplay; /* handle to display *//* Initialize the Bus Interface Board, Snapper and Display */hBase = ASL_get_ret(BASE_create(BASE_AUTO));hSnapper = BASE_get_parameter(hBase, BASE_MODULE_HANDLE);hSrcImage = TMG_image_create();hRGB24Image = TMG_image_create();hDisplay = TMG_display_init(hDisplay, TMG_800x600x24); /* 800 by 600, 24 bit *//* Initialize the Snapper in its default RGBX32 bit acquisition mode */SNP24_initialize(hSnapper, SNP24_CCIR_DEFAULT);SNP24_set_image(hSnapper, hSrcImage); /* set image parameters *//* Capture an image, display it and write it to a TIFF file */SNP24_capture(hSnapper, SNP24_START_AND_WAIT);SNP24_read_video_data(hSnapper, hSrcImage, TMG_RUN);TMG_display_image(hDisplay, hSrcImage, TMG_RUN);/* Convert from pixel format RGBX32 to RGB24 */TMG_image_convert(hSrcImage, hRGB24Image, TMG_RGB24, 0, TMG_RUN);TMG_image_set_outfilename(hRGB24Image, "rgb24.tif");TMG_image_write(hRGB24Image, TMG_NULL, TMG_TIFF, TMG_RUN);/* Free memory and exit */BASE_destroy(BASE_ALL_HANDLES);TMG_image_destroy(TMG_ALL_HANDLES);}ORDERING INFORMATIONPART NUMBER DESCRIPTIONSNP-SDK Snapper Software Development Kit.This includes a printed copy of the manual and a CD containing support forWindows 95/98/NT, ActiveX, MS-Dos, MacOS and Solaris 2.The CD contains on-line documentation, driver files, library executables (DLLs or SOs),all header files, as well as all the source code for the examples from the SNP-APPS-CDdetailed below.SNP-SDK-RT Snapper Software Development Kit for Real Time Operating Systems.This includes a printed copy of the manual and a CD containing support for LynxOSand VxWorks as well as Windows 95/98/NT, ActiveX, MS-Dos, MacOS and Solaris 2.The CD contains on-line documentation, driver files, library executables (DLLs or SOs),all header files, as well as all the source code for the examples from the SNP-APPS-CDdetailed below.SNP-SDK-MAN Snapper Software Development Kit printed manual only, as detailed above.SNP-SDK(-RT)-CD Snapper Software Development Kit CD only, as detailed above.SNP-SDK(-RT)-SUP 12 month support and upgrade contract for SDK.SNP-APPS-CD Snapper Application Examples. This consists of pre-compiled examples on a CD. DOS-FG-LIB Flashtek’s “Flash Graphics” library is required in addition to the SNP-SDK for imagingapplications under MS-DOS. This library is royalty free and works with the Watcomcompiler and the X-32VM DOS extender.DOS-X32-LIB Flashtek’s X-32VM 32 bit DOS extender. This is pre-requisite for use with the Watcomcompiler (it allows Flash Graphics and PCI DMA support).SNP-IG Snapper Installation Guide. This is included in the SDK manual, but is available as aseparate item free of charge.TMG-LIB-SW-LIC Software licence to use the TMG library (including its JPEG compression /decompression software and display software) without Snapper hardware. The use ofthe TMG library is free of charge as long as it is used in conjunction with Snapperhardware. If it is used independently (for example - software only JPEG decompressionand display) then a licence must be purchased.ORDERING NOTES•Further operating systems will be supported as PCI becomes available on other platforms - for example DEC Alpha workstations and PowerPC based systems.•Please contact Active Silicon for latest information on other Snappers, Bus Interface Boards, and supported operating systems.USAActive Silicon, Inc479 Jumpers Hole Road, Suite 301, Severna Park, MD 21146, USATel +1 410 696 7642Fax +1 410 696 7643**********************EuropeActive Silicon Limited Pinewood Mews, Bond Close, Iver Bucks, SL0 0NA, UKTel +44 (0) 1753 650600 Fax +44 (0) 1753 651661**********************All trademarks referred to in this datasheet are the property of their respective owners。

fastreport中手册(翻译整理)

fastreport中手册(翻译整理)

fastreport中手册(翻译整理)第一章通用说明(一)(二)(三)(四)安装成VS工具箱故障排除部署编译源代码第二章winform窗体中的使用ViualStudio中报告组件的使用使用代码生成报表存储和装载一个报告注册数据传递一个值到报表参数运行报告设计报告导出报告配置环境取代了“开放”和“保存”对话框更换标准进度窗口通过自己的连接字符串通过自定义的SQL引用报告对象使用代码创建一个报告使用自己的预览窗口24过滤表中数据向导第三章的使用使用WebReport组件存储和装载一个报告注册数据传递一个值到报告参数工作在“中等信任”模式第一章通用说明1.0一般信息安装VS工具网络安装程序自动添加FatReport组件进入ViualStudio的工具箱。

如果你有禁用这个特性在安装,你可以手动添加组件。

要做到这一点:在工具箱中删除“FatReport·NET”选项卡,如果它是在那里;·在对话框中,按“浏览”按钮,选择FatReport.dll,FatReport.Web.dll文件(它们位于“C:\\Programfile\\”文件夹);·关闭对话框与OK按钮。

在此之后,您将看到组件在一个选择的选项卡:·报告;·视图控制;·设计控制;·EnvironmentSetting;(此组件将WebReport·可见,在项目唯一的)。

2.0故障排除如果你面临的问题在使用报表设计器(例如,一些工具栏或工具窗户被损坏),你应该删除配置文件。

这个文件在启动 时创建。

它位于以下文件夹:A.Window某P系统【C:\\文档和设置\\uer_name\\\\应用程序本地设置数据\\\\FatReport.configFatReport】B.WindowVita系统【C:\\用户\\uer_name\\AppData\\当地\\\\FatReport.configFatReport】以下信息是存储在配置文件中:1.对话框窗口的大小和位置2.工具栏设置;3.最近使用的数据连接4.邮件设置(如果你使用“发送电子邮件”功能在预览)。

Fhas应用开发平台用户手册

Fhas应用开发平台用户手册

Fhas应用开发平台用户手册适用于Fhas2lib Ver1.5.x北京飞漫软件技术有限公司26December,2005ii版权所有c 2004,2005,北京飞漫软件技术有限公司,保留所有权利。

无论您以何种方式获得该手册的全部或部分文字或图片资料,无论是普通印刷品还是电子文档,北京飞漫软件技术有限公司仅仅授权您阅读的权利,任何形式的格式转换、再次发布、传播以及复制其内容的全部或部分,或将其中的文字和图片未经书面许可而用于商业目的,均被视为侵权行为,并可能导致严重的民事或刑事处罚。

目录1Fhas2lib介绍11.1Fhas2lib简介 (1)1.2Fhas2lib主要应用程序框架 (2)1.3Fhas2lib特性 (2)2在Linux-PC上安装和使用Fhas2lib42.1mobile版本的编译、安装和使用 (4)2.1.1mobile版本的编译、安装 (4)2.1.2mobile版本Fhas系统的编译、运行 (5)2.2PDA版本的编译、安装和使用 (6)2.2.1PDA版本的编译、安装 (6)2.2.2PDA版本Fhas系统的编译、运行 (7)3Fhas2lib的配置选项93.1Fhas2lib编译配置选项 (9)3.2Fhas2lib配置文件fhas2.cfg (12)4在Windows环境安装和使用Fhas2lib144.1编译、安装 (14)5移植Fhas2lib到VxWorks165.1原理 (16)5.2在cygwin环境中编译Fhas2lib (16)5.3在Tornado环境中编译Fhas系统 (17)6嵌入式开发工具的使用186.1位图转换工具 (18)6.1.1单个图片的转换 (18)6.1.2转换整个工程的图片资源 (19)iv目录6.2国际化工具 (22)6.2.1代码实现 (22)6.2.2字符串提取和转换 (22)第一章Fhas2lib介绍1.1Fhas2lib简介Fhas2lib是由北京飞漫软件技术有限公司在MiniGUI基础上开发和维护的一个应用支持库和应用框架。

FastReport开发指南(中)+[文档在线提供]

FastReport开发指南(中)+[文档在线提供]
要使用一个数据集,你只需把它从左边移到右边。你可以使用拖放的方法,或者双击源数据集,或者使用窗口中间的按钮。
要从列表中移去字段,选择源数据集并选中字段,然后选择“从列表中排除字段”。再次点击这个框将重新包含这个字段。这个操作也可用“空格”键完成。
要设置别名,选择一个数据源或字段并在“别名”中输入新的名称。如果别名不需要了-清除字段的所有数据。这个操作也可以用“Enter”来完成。
你也可以控制在移动对象时如何显示对象:显示边框或显示内容。
“页位置”组允许你选择页面位置(这对于对象观察器来说是需要的)。
如果“彩色按钮”关闭,则所有按钮都为黑白色。
“插入后编辑”选项设置在插入对象后的动作,在对象插入后是否显示缺省编辑器。如果想插入大量的矩形框时这个选项需要关闭。
“显示band标题”允许你决定在设计时在页面上是否显示band(分页)的标题。
“本地化属性名”允许本地化对象观察器。
“对齐栅格”在移动对象时对齐它们到最近的栅格点。
在“编辑器”页中你可以选择编辑器窗口的字体。你可以在固定设置或对象字体设置之间进行选择。
对象观察器
对象观察器允许你熟练地设置对象属性。
观察器的工作方式与Delphi的对象观察器类似。象其它的工具栏一样,你可以让它显示或者隐藏。要显示对象观察器,选择“工具|工具栏|对象观察器”菜单项。要收缩对象观察器,双击标题栏,再次双击标题栏将展开对象观察器。
如果选中“装入报表时选择”选项,打印信息保存到报表中,当这个报表再次调入时,保存的打印机将自动被选择。如果这个打印机在系统中没有找到,那么将选择缺省的Windows打印机。
如果你需要在报表中使用“总页数”函数,象打印“第xx页 共xx页”时需要选中“两遍报表”选项。如果你使用TotalPages函数,但你忘记选取中这个选项,你将在你的报表中得到总页数为0。还有一些好处是选中“两遍报表”可以在最后一次中显示第一次的计算结果。其中之一就是在分组头中显示分组数,可以在演示报表中找到例子。

快速原型开发

快速原型开发

快速原型开发什么是快速原型开发快速原型开发(Rapid Prototyping)是一种软件开发方法论,它的目标是尽快创建出一个可以演示和验证概念的初步形式,以便在后续开发过程中进行迭代和改进。

快速原型开发通过迅速搭建起一个功能简单但能够满足用户需求的原型系统,来验证和完善用户需求,以此减少后续开发过程中的风险和成本。

快速原型开发的优势快速原型开发有以下几个优势:1.减少开发成本和风险:通过快速原型开发,能够在短时间内验证和完善用户需求,减小了后续开发过程中因为需求变更而带来的风险和成本。

2.提高用户满意度:通过快速原型开发,能够更快地获得用户的反馈和意见,从而及时调整和改进产品,提高用户的满意度和体验。

3.促进团队协作:快速原型开发非常注重团队协作,开发团队在快速迭代和改进原型的同时,能够更好地沟通和协商,提高团队的整体效率和协作能力。

4.加快时间到市场:通过快速原型开发,能够更快地推出产品,占领市场先机,从而提高竞争力。

快速原型开发的步骤快速原型开发通常包括以下几个步骤:1.需求收集和分析:在这个阶段,与用户和利益相关者沟通,收集和分析用户需求,明确产品的基本功能和特性。

2.原型设计:根据用户需求和分析结果,进行原型设计。

可以使用工具如Axure、Sketch等来设计原型,或者直接使用Web技术构建一个简单的原型。

3.原型验证和优化:将设计好的原型展示给用户和利益相关者,收集他们的反馈和意见,并根据反馈结果对原型进行优化和改进。

这个过程可能需要多轮迭代。

4.原型演示和确认:当原型达到用户满意的程度后,进行一次正式的原型演示,确保原型满足用户需求,并得到相关人员的确认。

5.开发和测试:在原型演示和确认后,根据原型进行开发和测试,不断迭代和改进产品。

快速原型开发的最佳实践在进行快速原型开发的过程中,以下几个最佳实践能够帮助提高开发效率和产品质量:•小步快走:在快速原型开发中,要尽量实现小步快走,即快速地迭代和改进原型,不断优化产品。

GameSnacks 开发者指南说明书

GameSnacks 开发者指南说明书

GameSnacks Developer Guide(external)For questions, please contact:**************************Last updated: 2/24/2021GameSnacks Game RequirementsCore Gameplay OnlyGameSnacks games should be a continuous experience of core gameplay. The following should be removed from GameSnacks games:●Advertising and sponsorships●Sharing prompts (e.g. "Click to tweet your score.")Snackable GamesGameSnacks games should be●Easy to learn: a wide range of users should be able to learn how to play in less than 30seconds. Games that require some domain knowledge(e.g., a chess tactics game) are acceptable. Include in-game instructions and onboarding where appropriate.●Fast-paced: the user should be able to earn a score within 15 seconds.●Without text: aside from the instructions, the game itself should not rely on text that theuser has to read in order to succeed.○If there is any text, the text should be in English.○When possible, use symbols and visual tutorials instead of text. For example: show a finger making an action instead of using text to describe the action.Using the gamesnacks.js APIWe provide an JavaScript API that games use to check audio status, report scores, and report gameOver events. It's called "gamesnacks.js" Include it with:<scriptsrc="https:///assets/js/gamesnacks.js"></script>This is a small script that allows games to plug in to the GameSnacks API. We recommend including it after your HTML, but before your other javascript.API TesterWe provide an API Tester tool which allows developers to verify if their games are correctly integrating with GameSnacks APIs. It can be used to verify locally-running games. It's located at https:///demo/test.Score APIGameSnacks keeps track of score data for high scores and other features.When the user's score changes, you should use the sendScore function in the API like this:// var score = users current scoreGAMESNACKS.sendScore(score)For games that traditionally don't show scores, e.g.puzzle games, please use this API to send an incrementing score upon the completion of each level. There is no need to show this score in the game UI.GameOver APIGameSnacks also uses "game over" events for competitions,ads and other features. It should be triggered on failure outcomes, e.g. when the user dies or was unable to complete a level. Game Over events should also be triggered when the user restarts, the user exits a level, the user clicks the home button to go back to the main menu, or other similar events that cause the session to end. You should use the gameOver function in the API like this:GAMESNACKS.gameOver()LevelComplete APIFor games with levels, triggered when a level is successfully completed by the user. Pass in a number representing the index of the level in the overall level ordering. Levels should be indexed starting from 1.●Even if your game doesn't have traditional "levels",call this API if your game hasdiscreet ordered success milestones that are natural stopping points. For example: inthis balls game, call levelComplete on every successful user fling.●If your levels are unordered, call this api with a level of 0. E.g. in this fishing game, callGAMESNACKS.levelComplete(0) at the end of every fishing round.●Some games don't have levels which is okay, e.g.this reversi game.Use the levelComplete API like this:// var level = index of level completed by userGAMESNACKS.levelComplete(level)Audio APIGameSnacks games should use this audio API so that GameSnacks can provide consistent volume controls. There are two ways to integrate with the audio API: a getter method and a PubSub method.// Getter method. Returns a boolean of whether audio is enabled. GAMESNACKS.isAudioEnabled()// PubSub method. Accepts a callback function that will be called// with a boolean value of the new value of isAudioEnabled whenever// it changes.GAMESNACKS.subscribeToAudioUpdates(callback);Audio getter methodIf using the getter method, you can call the getter at any time to see if audio is enabled. You should check before each sound effect.if (GAMESNACKS.isAudioEnabled()) {playSoundEffect();}Audio PubSub methodOptionally, instead of checking the getter method before each sound effect, you can check it once at the beginning of the game, and then subscribe to changes. This is suitable for things like background music.if (GAMESNACKS.isAudioEnabled()) {playBackgroundMusic();}GAMESNACKS.subscribeToAudioUpdates((isAudioEnabled)=> {if (isAudioEnabled) {playBackgroundMusic();} else {stopPlayingBackgroundMusic();}});GameReady APIGameSnacks games should call gameReady() as soon as the main menu (*NOT* loading screen) is both displayed and interactive. This may,for instance, be used to hide GameSnacks loading screens or indicators. At this point the game, or at least the first level, should be loaded.GAMESNACKS.gameReady()Rewarded Ads APIsImplement this section if creating rewarded ads games on GameSnacksRewards must not have value outside of your app, they must not have (or be easily exchanged for) monetary value, and must not be saleable or exchangeable for goods and services, and you should not encourage accidental clicks on ads or reward prompts.GAMESNACKS.rewardedAdOpportunitySteps1.When the user reaches a point in the game with reward potential (common examples aremain menu and end-game screen), call rewardedAdOpportunity()to notify GameSnacks.Pass in callbacks to trigger game behavior as it relates to the ad.2.If conditions are met, GameSnacks will call beforeReward(),at which point the gameshould render UI to the user indicating they can watch an ad for a reward. Don't renderrewarded UI before this, as there may not be an ad available.3.If the user clicks into rewarded ad UI, call showAdFn().Always call the most recentshowAdFn. Previous showAdFn callbacks are invalidated on every beforeReward call.4.GameSnacks will call beforeBreak() shortly after,at which point the game should pauseand mute while the ad plays.5.adComplete() or adDismissed() will be called next,depending on whether the userwatched the entire ad. If adComplete() is called,give the user a reward.6.afterBreak() will always be called regardless of if the user watched the ad to completion.Here you should unpause and unmute the game.GAMESNACKS.rewardedAdOpportunity({beforeReward,beforeBreak,adComplete,adDismissed,afterBreak}: {// Show reward UI. Call showAdFn() if clicked.beforeReward: (showAdFn: () =>any) =>any,// Mute and pause the game.beforeBreak: () =>any,// Player watched the ad to completion. Give them the reward.adComplete: () =>any,// Player dismissed the ad before it finished.adDismissed: () =>any,// Unmute and unpause the game.afterBreak: () =>any,});Sandboxed iframe restrictionsGameSnacks games should function in a sandboxed iframe with the following properties. The API Tester will verify this.<iframesandbox="allow-scripts allow-forms allow-same-origin"src="<your-game-url>"></iframe>GameSnacks games should not use web features restricted by the above iframe sandbox parameters, including:●Modals such as window.alert()●Popups●Top-level window navigation●The Pointer Lock APISaving ProgressFor games with level progression, long-term progress,collectables, etc. you should use localStorage to save the state of the game. When the user opens the game for subsequent sessions, it should load any saved progress. It is ok if the game state isn’t exactly the same (e.g. characters don’t have to be in the exact position),but if the user gets to level 6, the game should start the user in level 6 again.Examples●Saving unlocked skins, characters●Saving unlocked levels●Saving collectables●Saving high score (if high score is in the UI)●Saving other in-game achievementsExamples of games that do not require saving progress●https:///embed/games/tower_v2●https:///embed/games/timberguy●https:///embed/games/cakesliceninjaNo external scripts or serversGameSnacks games should not rely on anything (no images,assets, sounds, scripts, etc.) that is outside of the zip file (other than gamesnacks.js).In addition, you may not make calls to any external servers for any purpose. If your game needs an external server, please contact us for next steps.CompatibilityGames should function well in the environments listed below. Adding platform-specific control schemes is encouraged (e.g., ability to use arrow keys on desktop.) Games will be shown in portrait orientation. Landscape support is not required.●Mobile: iOS and Android. Chrome, Firefox, and Safari.●Desktop: Chrome, Firefox, and Safari.Size and EfficiencyGameSnacks games are played in countries with slower internet, so smaller game bundle sizes are important! GameSnacks games should be as lightweight as possible. Please compress all images and minify scripts to reduce bundle size. If possible, defer loading of assets needed for later levels until they are needed.PerformanceGameSnacks games run on a wide variety of devices,and so to maintain a great user experience, we require that they can still play well on lower end devices. Specifically:During gameplay*, 95% of frames must run at 30 fps or faster (i.e. under 33.3 ms/frame) on a Samsung Galaxy J2 equivalent phone.* It is OK if the framerate is lower on menus and loading screensSplash page for the game (added 2/12/2021)Each game should have a game specific splash page that appears while the game is loading. This can be a static screen or include an animated spinning wheel or loading bar. The splashshould include the logo for the game or use the game’s app icon (1:1 ratio). The Splash page goes away automatically when the game has loaded.Side tiles for portrait-only orientation (added 2/12/2021)Games that are locked in portrait are ok as along as they have a tiled background that shows on desktop. The objective is to add an intentional look to the sides of the game rather than black or grey. The tiled background can be used for the loading screen if desired.Side bar tile tips:●File size - Keep file size under 10K or smaller.●Dimensions - The height and width of the tile can vary, as long as the tile repeats and thesize is under 10K.●Graphics - The tile should support the graphics of the game keeping in mind, the morecomplex the design the larger the file may be.●Color - Color the tile with a darker shade found in the game. Also, select a base color forunde the tile for slow-loading pages.●Example from Free Kick with side tile:●AssetsThe following are the minimum set of assets to include when submitting a game to GameSnacks.●Please see the GameSnacks Thumbnail Guide before creating assets. Assets shouldfollow these guidelines.●App icon○Needs to work at all sizes, sometimes as small as60x60. Looking for an iconic representation of the game. Do not include logos in app icons.■[ ]1:1 App icon 512x512●Thumbnails○Includes a logo, character(s), game parts, etc■[ ]4:3 Wide 1,1024x768■[ ]16:9 Wide 2, 1024x576■[ ]2:3 Tall,683x1024●Layers○We ask that you provide the artwork for your “4:3Wide 1, 1024x768” thumbnail size as a composite image AND as separated files with transparent backgrounds.Most thumbs can be separated into 3 layers, although sometimes a 4th layer isneeded. The logo should be included in one of the layers.■[ ]Foreground objects on transparent■[ ]Logo on it’s own layer on transparent■[ ]Midground objects on transparent■[ ]Background flat with a solid fill●An example of all delivered asset files:○gamename-app-icon.png○gamename-thumb-wide1.png○gamename-thumb-wide2.png○gamename-thumb-tall.png○gamename-layer-fore.png○gamename-layer-logo.png○gamename-layer-mid.png○gamename-layer-bg.pngFile StructureWhen submitting a game to GameSnacks, the root directory should contain the following:●index.html: the root html document that loads the game.●Game assetsFile DeliveryFirst, convert the game directory into a ZIP file.Submit the ZIP file via email to**************************and********************。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FastScript Developer's Manual 1. Types1. TNumGlyphs : Int;2. Byte : Int;3. Word : Int;4. Integer : Int;5. Longint : Int;6. Cardinal : Int;7. TColor : Int;8. Boolean : Bool;9. Real : Float;10. Single : Float;11. Double : Float;12. Extended : Float;13. Currency : Float;14. TDate : Float;15. TTime : Float;16. TDateTime : Float;17. Char : Char;18. String : String;19. Variant : Variant;20. Pointer : Variant;21. Array : Array;22. Constructor : Constructor;23. WideString : Variant;24. TAutoSizeType : Int;25. TGradientType : Int;26. TVAlignment : Int;27. TFormBorderStyle : Int;28. TBorderStyle : Int;29. WordBool : Bool;30. OleVariant : Variant;2. Consts(1). varEmpty: Integer = 0;(2). varNull: Integer = 1;(3). varSmallint: Integer = 2;(4). varInteger: Integer = 3;(5). varSingle: Integer = 4;(6). varDouble: Integer = 5;(7). varCurrency: Integer = 6;(8). varDate: Integer = 7;(9). varOleStr: Integer = 8;(10). varDispatch: Integer = 9;(11). varError: Integer = 10;(12). varBoolean: Integer = 11;(13). varVariant: Integer = 12;(14). varUnknown: Integer = 13;(15). varShortInt: Integer = 16;(16). varByte: Integer = 17;(17). varWord: Integer = 18;(18). varLongWord: Integer = 19;(19). varInt64: Integer = 20;(20). varStrArg: Integer = 72;(21). varString: Integer = 256;(22). varAny: Integer = 257;(23). varTypeMask: Integer = 4095;(24). varArray: Integer = 8192;(25). varByRef: Integer = 16384;(26). ANSI_CHARSET: Integer = 0;(27). DEFAULT_CHARSET: Integer = 1;(28). SYMBOL_CHARSET: Integer = 2;(29). SHIFTJIS_CHARSET: Integer = 80;(30). HANGEUL_CHARSET: Integer = 129;(31). GB2312_CHARSET: Integer = 134;(32). CHINESEBIG5_CHARSET: Integer = 136;(33). OEM_CHARSET: Integer = 255;(34). JOHAB_CHARSET: Integer = 130;(35). HEBREW_CHARSET: Integer = 177;(37). GREEK_CHARSET: Integer = 161;(38). TURKISH_CHARSET: Integer = 162;(39). VIETNAMESE_CHARSET: Integer = 163;(40). THAI_CHARSET: Integer = 222;(41). EASTEUROPE_CHARSET: Integer = 238;(42). RUSSIAN_CHARSET: Integer = 204;(43). MAC_CHARSET: Integer = 77;(44). BALTIC_CHARSET: Integer = 186;(45). True: Boolean = -1;(46). False: Boolean = 0;(47). nil: Variant = 0;(48). Null: Variant = ;(49). fmCreate: Integer = 65535;(50). fmOpenRead: Integer = 0;(51). fmOpenWrite: Integer = 1;(52). fmOpenReadWrite: Integer = 2;(53). fmShareExclusive: Integer = 16;(54). fmShareDenyWrite: Integer = 32;(55). fmShareDenyNone: Integer = 64;(56). soFromBeginning: Integer = 0;(57). soFromCurrent: Integer = 1;(58). soFromEnd: Integer = 2;(59). mrNone: Integer = 0;(60). mrOk: Integer = 1;(61). mrCancel: Integer = 2;(62). mrAbort: Integer = 3;(63). mrRetry: Integer = 4;(64). mrIgnore: Integer = 5;(65). mrYes: Integer = 6;(66). mrNo: Integer = 7;(67). mrAll: Integer = 8;(68). mrNoToAll: Integer = 9;(69). mrYesToAll: Integer = 10;(70). crDefault: Integer = 0;(71). crNone: Integer = -1;(73). crCross: Integer = -3;(74). crIBeam: Integer = -4;(75). crSize: Integer = -22;(76). crSizeNESW: Integer = -6;(77). crSizeNS: Integer = -7;(78). crSizeNWSE: Integer = -8;(79). crSizeWE: Integer = -9;(80). crUpArrow: Integer = -10;(81). crHourGlass: Integer = -11;(82). crDrag: Integer = -12;(83). crNoDrop: Integer = -13;(84). crHSplit: Integer = -14;(85). crVSplit: Integer = -15;(86). crMultiDrag: Integer = -16;(87). crSQLWait: Integer = -17;(88). crNo: Integer = -18;(89). crAppStart: Integer = -19;(90). crHelp: Integer = -20;(91). crHandPoint: Integer = -21;(92). crSizeAll: Integer = -22;(93). bsNone: Integer = 0;(94). bsSingle: Integer = 1;(95). bsSizeable: Integer = 2;(96). bsDialog: Integer = 3;(97). bsToolWindow: Integer = 4;(98). bsSizeToolWin: Integer = 5;(99). VK_RBUTTON: Integer = 2; (100). VK_CANCEL: Integer = 3; (101). VK_MBUTTON: Integer = 4; (102). VK_BACK: Integer = 8; (103). VK_TAB: Integer = 9; (104). VK_RETURN: Integer = 13; (105). VK_SHIFT: Integer = 16; (106). VK_CONTROL: Integer = 17; (107). VK_MENU: Integer = 18;(109). VK_CAPITAL: Integer = 20; (110). VK_ESCAPE: Integer = 27; (111). VK_SPACE: Integer = 32; (112). VK_PRIOR: Integer = 33; (113). VK_NEXT: Integer = 34; (114). VK_END: Integer = 35; (115). VK_HOME: Integer = 36; (116). VK_LEFT: Integer = 37; (117). VK_UP: Integer = 38; (118). VK_RIGHT: Integer = 39; (119). VK_DOWN: Integer = 40; (120). VK_INSERT: Integer = 45; (121). VK_DELETE: Integer = 46; (122). VK_HELP: Integer = 47; (123). VK_LWIN: Integer = 91; (124). VK_RWIN: Integer = 92; (125). VK_APPS: Integer = 93; (126). VK_NUMPAD0: Integer = 96; (127). VK_NUMPAD1: Integer = 97; (128). VK_NUMPAD2: Integer = 98; (129). VK_NUMPAD3: Integer = 99; (130). VK_NUMPAD4: Integer = 100; (131). VK_NUMPAD5: Integer = 101; (132). VK_NUMPAD6: Integer = 102; (133). VK_NUMPAD7: Integer = 103; (134). VK_NUMPAD8: Integer = 104; (135). VK_NUMPAD9: Integer = 105; (136). VK_MULTIPLY: Integer = 106; (137). VK_ADD: Integer = 107; (138). VK_SEPARATOR: Integer = 108; (139). VK_SUBTRACT: Integer = 109; (140). VK_DECIMAL: Integer = 110; (141). VK_DIVIDE: Integer = 111; (142). VK_F1: Integer = 112; (143). VK_F1: Integer = 112;(146). VK_F5: Integer = 116; (147). VK_F6: Integer = 117; (148). VK_F7: Integer = 118; (149). VK_F8: Integer = 119; (150). VK_F9: Integer = 120; (151). VK_F10: Integer = 121; (152). VK_F11: Integer = 122; (153). VK_F12: Integer = 123; (154). VK_NUMLOCK: Integer = 144; (155). VK_SCROLL: Integer = 145; (156). crDefault: Integer = 0; (157). crNone: Integer = -1; (158). crArrow: Integer = -2; (159). crCross: Integer = -3; (160). crIBeam: Integer = -4; (161). crSize: Integer = -22; (162). crSizeNESW: Integer = -6; (163). crSizeNS: Integer = -7; (164). crSizeNWSE: Integer = -8; (165). crSizeWE: Integer = -9; (166). crUpArrow: Integer = -10; (167). crHourGlass: Integer = -11; (168). crDrag: Integer = -12; (169). crNoDrop: Integer = -13; (170). crHSplit: Integer = -14; (171). crVSplit: Integer = -15; (172). crMultiDrag: Integer = -16; (173). crSQLWait: Integer = -17; (174). crNo: Integer = -18; (175). crAppStart: Integer = -19; (176). crHelp: Integer = -20; (177). crHandPoint: Integer = -21; (178). crSizeAll: Integer = -22; (179). asVertical: Integer = 0;(182). gtFullHorizontal: Integer = 0;(183). gtFullVertical: Integer = 1;(184). gtBottomLine: Integer = 2;(185). gtCenterLine: Integer = 3;(186). gtTopLine: Integer = 4;(187). tvaTop: Integer = 0;(188). tvaCenter: Integer = 1;(189). tvaBottom: Integer = 2;(190). dsFocus: Integer = 0;(191). dsSelected: Integer = 1;(192). dsNormal: Integer = 2;(193). dsTransparent: Integer = 3;(194). itImage: Integer = 0;(195). itMask: Integer = 1;3. Enums(1). TShapeType=(stRectangle,stSquare,stRoundRect,stRoundSquare,stEllipse,stCircle);(2). TBevelStyle=(bsLowered,bsRaised);(3). TBevelShape=(bsBox,bsFrame,bsTopLine,bsBottomLine,bsLeftLine,bsRightLine,bsSpacer);(4). TResizeStyle=(rsNone,rsLine,rsUpdate,rsPattern);(5). TButtonLayout=(blGlyphLeft,blGlyphRight,blGlyphTop,blGlyphBottom);(6). TButtonState=(bsUp,bsDisabled,bsDown,bsExclusive);(7). TButtonStyle=(bsAutoDetect,bsWin31,bsNew);(8). TBitBtnKind=(bkCustom,bkOK,bkCancel,bkHelp,bkYes,bkNo,bkClose,bkAbort,bkRetry,bkIgnore,bkAll);(9). TTabPosition=(tpTop,tpBottom,tpLeft,tpRight);(10). TTabStyle=(tsTabs,tsButtons,tsFlatButtons);(11). TStatusPanelStyle=(psText,psOwnerDraw);(12). TStatusPanelBevel=(pbNone,pbLowered,pbRaised);(13). TSortType=(stNone,stData,stText,stBoth);(14). TTrackBarOrientation=(trHorizontal,trVertical);(15). TTickMark=(tmBottomRight,tmTopLeft,tmBoth);(16). TTickStyle=(tsNone,tsAuto,tsManual);(17). TProgressBarOrientation=(pbHorizontal,pbVertical);(18). TIconArrangement=(iaTop,iaLeft);(19). TListArrangement=(arAlignBottom,arAlignLeft,arAlignRight,arAlignTop,arDefault,arSnapToGrid);(21). TToolButtonStyle=(tbsButton,tbsCheck,tbsDropDown,tbsSeparator,tbsDivider);(22). TDateTimeKind=(dtkDate,dtkTime);(23). TDTDateMode=(dmComboBox,dmUpDown);(24). TDTDateFormat=(dfShort,dfLong);(25). TDTCalAlignment=(dtaLeft,dtaRight);(26).TCalDayOfWeek=(dowMonday,dowTuesday,dowWednesday,dowThursday,dowFriday,dowSaturday,dowSunday ,dowLocaleDefault);(27). Tsp_BorderStyle=(bs_None,bs_Raised,bs_Lowered,bs_Gutter,bs_BlackRect,bs_BoldRect,bs_FocusRect);(28). Tsp_zpDirections=(zpdNone,zpdHorizontal,zpdVertical,zpdBoth);(29). Tsp_ShiftKeys=[ssShift,ssAlt,ssCtrl];(30). TSP_WhatXAxis=(dsxBottom,dsxTop);(31). TSP_WhatYAxis=(dsyLeft,dsyRight);(32). TIP_Reason=(rsDataChanged,rsAttrChanged);(33). TSP_WhenDrawMarker=(dmBeforeSeries,dmAfterSeries);(34). TPointKind=(ptRectangle,ptEllipse,ptDiamond,ptCross,ptCustom,ptTriangle,ptDownTriangle);(35). Tsp_LMOrientation=(loVertical,loHorizontal);(36). Tsp_YOrigin=(yoBaseLine,yoXAxises);(37). Tsp_WhatValues=(wvXValues,wvYValues);(38). TFontStyles=[fsBold,fsItalic,fsUnderline,fsStrikeout];(39). TFontPitch=(fpDefault,fpVariable,fpFixed);(40). TPenStyle=(psSolid,psDash,psDot,psDashDot,psDashDotDot,psClear,psInsideFrame);(41).TPenMode=(pmBlack,pmWhite,pmNop,pmNot,pmCopy,pmNotCopy,pmMergePenNot,pmMaskPenNot,pmMerg eNotPen,pmMaskNotPen,pmMerge,pmNotMerge,pmMask,pmNotMask,pmXor,pmNotXor);(42). TBrushStyle=(bsSolid,bsClear,bsHorizontal,bsVertical,bsFDiagonal,bsBDiagonal,bsCross,bsDiagCross);(43). TFillStyle=(fsSurface,fsBorder);(44).TOpenOptions=[ofReadOnly,ofOverwritePrompt,ofHideReadOnly,ofNoChangeDir,ofShowHelp,ofNoValidate,of AllowMultiSelect,ofExtensionDifferent,ofPathMustExist,ofFileMustExist,ofCreatePrompt,ofShareAware,ofNoRe adOnlyReturn,ofNoTestFileCreate,ofNoNetworkButton,ofNoLongNames,ofOldStyleDialog,ofNoDereferenceLin ks,ofEnableIncludeNotify,ofEnableSizing];(45). TFileEditStyle=(fsEdit,fsComboBox);(46). TColorDialogOptions=[cdFullOpen,cdPreventFullOpen,cdShowHelp,cdSolidColor,cdAnyColor];(47).TFontDialogOptions=[fdAnsiOnly,fdTrueTypeOnly,fdEffects,fdFixedPitchOnly,fdForceFontExist,fdNoFaceSel,fze,fdScalableOnly,fdApplyButton];(48). TFontDialogDevice=(fdScreen,fdPrinter,fdBoth);(49). TPrintRange=(prAllPages,prSelection,prPageNums);(50).TPrintDialogOptions=[poPrintToFile,poPageNums,poSelection,poWarning,poHelp,poDisablePrintToFile];(51). TDuplicates=(dupIgnore,dupAccept,dupError);(52). TShiftState=[ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble];(53). TAlignment=(taLeftJustify,taRightJustify,taCenter);(54). TAlign=(alNone,alTop,alBottom,alLeft,alRight,alClient);(55). TMouseButton=(mbLeft,mbRight,mbMiddle);(56). TAnchors=[akLeft,akTop,akRight,akBottom];(57). TBevelCut=(bvNone,bvLowered,bvRaised,bvSpace);(58). TTextLayout=(tlTop,tlCenter,tlBottom);(59). TEditCharCase=(ecNormal,ecUpperCase,ecLowerCase);(60). TScrollStyle=(ssNone,ssHorizontal,ssVertical,ssBoth);(61). TComboBoxStyle=(csDropDown,csSimple,csDropDownList,csOwnerDrawFixed,csOwnerDrawVariable);(62). TCheckBoxState=(cbUnchecked,cbChecked,cbGrayed);(63). TListBoxStyle=(lbStandard,lbOwnerDrawFixed,lbOwnerDrawVariable);(64). TWindowState=(wsNormal,wsMinimized,wsMaximized);(65). TFormStyle=(fsNormal,fsMDIChild,fsMDIForm,fsStayOnTop);(66). TBorderIcons=[biSystemMenu,biMinimize,biMaximize,biHelp];(67).TPosition=(poDesigned,poDefault,poDefaultPosOnly,poDefaultSizeOnly,poScreenCenter,poDesktopCenter);(68). TCloseAction=(caNone,caHide,caFree,caMinimize);(69). TPersistFormat=(pfADTG,pfXML);(70).TDataType=(ftUnknown,ftString,ftSmallint,ftInteger,ftWord,ftBoolean,ftFloat,ftCurrency,ftBCD,ftDate,ftTime,ft DateTime,ftBytes,ftVarBytes,ftAutoInc,ftBlob,ftMemo,ftGraphic,ftFmtMemo,ftParadoxOle,ftDBaseOle,ftTyped Binary,ftCursor,ftFixedChar,ftWideString,ftLargeint,ftADT,ftArray,ftReference,ftDataSet,ftOraBlob,ftOraClob,ft Variant,ftInterface,ftIDispatch,ftGuid,ftTimeStamp,ftFMTBcd);(71). TAffectRecords=(arCurrent,arFiltered,arAll,arAllChapters);(72). TADOLockType=(ltUnspecified,ltReadOnly,ltPessimistic,ltOptimistic,ltBatchOptimistic);(73). TBlobStreamMode=(bmRead,bmWrite,bmReadWrite);(74). TExecuteOption=(eoAsyncExecute,eoAsyncFetch,eoAsyncFetchNonBlocking,eoExecuteNoRecords);(75). TSeekOption=(soFirstEQ,soLastEQ,soAfterEQ,soAfter,soBeforeEQ,soBefore);(76).,coUpdateBatch,coResync,coNotify,coFind,coSeek,coIndex);(77). TUpdateStatus=(usUnmodified,usModified,usInserted,usDeleted);(78). TCursorType=(ctUnspecified,ctOpenForwardOnly,ctKeyset,ctDynamic,ctStatic);(79). TCursorLocation=(clUseServer,clUseClient);4. Variables(1). Unassigned: Variant = Unassigned;(2). Null: Variant = Null;(3). EmptyParam: Variant = EmptyParam;5. Functions(1). function AddressToObject(Address: Integer): TObject;(2). function ObjectToAddress(Obj: TObject): Integer;(3). function IntToStr(i: Integer): String;(4). function FloatToStr(e: Extended): String;(5). function DateToStr(e: Extended): String;(6). function TimeToStr(e: Extended): String;(7). function DateTimeToStr(e: Extended): String;(8). function VarToStr(v: Variant): String;(9). procedure FreeAndNil(Obj: TObject);(10). function StrToInt(s: String): Integer;(11). function StrToFloat(s: String): Extended;(12). function StrToDate(s: String): Extended;(13). function StrToTime(s: String): Extended;(14). function StrToDateTime(s: String): Extended;(15). function Format(Fmt: String; Args: array): String;(16). function FormatFloat(Fmt: String; Value: Extended): String;(17). function FormatDateTime(Fmt: String; DateTime: TDateTime): String;(18). function FormatMaskText(EditMask: string; Value: string): string;(19). function EncodeDate(Year, Month, Day: Word): TDateTime;(20). procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word);(21). function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;(22). procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);(23). function Date: TDateTime;(24). function Time: TDateTime;(25). function Now: TDateTime;(27). function IsLeapYear(Year: Word): Boolean;(28). function DaysInMonth(nYear, nMonth: Integer): Integer;(29). function Length(s: String): Integer;(30). function Copy(s: String; from, count: Integer): String;(31). function Pos(substr, s: String): Integer;(32). procedure Delete(var s: String; from, count: Integer): String;(33). procedure Insert(s: String; var s2: String; pos: Integer): String;(34). function Uppercase(s: String): String;(35). function Lowercase(s: String): String;(36). function Trim(s: String): String;(37). function TrimLeft(s: String): String;(38). function TrimRight(s: String): String;(39). function VarIsEmpty(const V: Variant): Boolean;(40). function NameCase(s: String): String;(41). function CompareText(s, s1: String): Integer;(42). function Chr(i: Integer): Char;(43). function Ord(ch: Char): Integer;(44). procedure SetLength(var S: String; L: Integer);(45). function Round(e: Extended): Integer;(46). function Trunc(e: Extended): Integer;(47). function Int(e: Extended): Integer;(48). function Frac(X: Extended): Extended;(49). function Sqrt(e: Extended): Extended;(50). function Abs(e: Extended): Extended;(51). function Sin(e: Extended): Extended;(52). function Cos(e: Extended): Extended;(53). function ArcTan(X: Extended): Extended;(54). function Tan(X: Extended): Extended;(55). function Exp(X: Extended): Extended;(56). function Ln(X: Extended): Extended;(57). function Log10(X: Extended): Extended;(58). function Pi: Extended;(59). procedure Inc(var i: Integer; incr: Integer = 1);(60). procedure Dec(var i: Integer; decr: Integer = 1);(61). procedure RaiseException(Param: String);(62). procedure ShowMessage(Msg: Variant);(63). procedure Randomize;(64). function Random: Extended;(65). function ValidInt(cInt: String): Boolean;(66). function ValidFloat(cFlt: String): Boolean;(67). function ValidDate(cDate: String): Boolean;(68). function CreateOleObject(ClassName: String): Variant;(69). function VarArrayCreate(Bounds: Array; Typ: Integer): Variant;(70). function MutualCase(value : string): string;(71). function FirstUpperCase(value : string): string;(72). function SBCCase(value : widestring): string;(73). function DBCCase(value : widestring): string;(74). function StrTrimCtrlChar(value : widestring): string;(75). function StrTrimLineBreak(value : widestring): string;(76). function OemToAnsi(value : AnsiString): AnsiString;(77). function AnsiToOem(value : AnsiString): AnsiString;(78). function Utf7ToAnsi(value : AnsiString): WideString;(79). function AnsiToUtf7(value : WideString): AnsiString;(80). function AnsiToUnicode(value : WideString): AnsiString;(81). function UnicodeToAnsi(value : AnsiString): WideString;(82). function DosToUnix(value : string): string;(83). function UnixToDos(value : string): string;(84). function DecodeMime(value : string): string;(85). function DecodeQP(value : string): string;(86). function DecodeHZ(value : string): string;(87). function StrSimilar(s1, s2: string): Integer;(88). function StrUpset(value : WideString): widestring;(89). function StrCompare(Source, Pattern: String): Boolean;(90). function NumberSwitch(value : WideString; Source, Target : Integer): string;(91). function TabulationSwitch(value : WideString; format : integer): string;(92). function CurrencySwitch(value : string; Format : Integer): string; overload;(93). function CurrencySwitch(value : Real; Format : Integer): string; overload;(94). function ExtractHtml(value :string):string;(95). function ExtractEmail(value, Delimiter : String): string;(96). function TabToSpace(Value: string; TabWidth : Integer = 8): string;(97). function SpaceToTab(value : string; TabWidth : Integer = 8): string;(98). function GetRandomStr(Source : string; StrLen : Integer) : string;(99). function Dec2Bin(value : Integer; MinBit : Integer) : string;(100). function Bin2Dec(const value : string) : Integer;(101). function Hex2Dec(const value : string): Integer;(102). function Hex2Str(const value : String) : String;(103). function Mem2Hex(Buffer: PChar; Size : Longint): string;(104). function Str2Hex(value : string): string;(105). function StrAlignment(const value : string; PageWidth : Integer; Alignment : TAlignment):string; (106). function StrWrap(const Text, LineBreak: string; const Reorder : boolean; const Hanging, FirstLine, LeftSpace, PageWidth : Integer; const Break : String; const BreakMode : Integer): string;(107). function IsBIG5(value: string): Boolean;(108). function IsGBK(value: string): Boolean;(109). function IsGB(value: string): Boolean;(110). function GBToBIG5(value: String): string;(111). function BIG5ToGB(value: String): string;(112). function GBKToTraditional(value : widestring): string;(113). function GBKToSimplified(value : widestring): string;(114). function GBKToSpell(value : widestring): string;(115). function GBKToSpellIndex(value: widestring): string;(116). function ChinesePunctuation(value : widestring): string;(117). function EnglishPunctuation(value : widestring): string;(118). function NumToStr (mNumber: Integer; mScale: Byte; mLength: Integer = 0): string;(119). function StrToNum (mDigit: string; mScale: Byte): Integer;(120). function RomanNumerals(N: Integer): string;(121). function BoolFromStream(Stream: TStream): Boolean;(122). function ByteFromStream(Stream: TStream): Byte;(123). function IntFromStream(Stream: TStream): Integer;(124). function LongIntFromStream(Stream: TStream): LongInt;(125). function FloatFromStream(Stream: TStream): Extended;(126). function ColorFromStream(Stream: TStream): COLORREF;(127). function StringFromStream(Stream: TStream; Size : Integer): string;(128). function DateTimeFromStream(Stream : TStream) : TDateTime;(129). procedure StreamFromStream(Source, SubStream: TStream; Size: Integer);(130). function ObjectFromStream(Stream : TStream; Source: TPersistent) : Boolean;(131). function ComponentFromStream(Stream : TStream; Source: TComponent) : Boolean;(132). procedure BoolToStream(Stream: TStream; Value: Boolean);(133). procedure ByteToStream(Stream: TStream; Value: Byte);(134). procedure IntToStream(Stream: TStream; Value: Integer);(135). procedure LongIntToStream(Stream: TStream; Value: LongInt);(136). procedure FloatToStream(Stream: TStream; Value: Extended);(137). procedure ColorToStream(Stream: TStream; Value: COLORREF);(138). procedure StringToStream(Stream: TStream; Value: string);(139). procedure DateTimeToStram(Stream : TStream; Value : TDateTime);(140). procedure StreamToStream(Stream, SubStream: TStream; Size : Integer); (141). function ObjectToStream(Stream : TStream; Source: TPersistent) : Boolean; (142). function ComponentToStream(Stream : TStream; Source: TComponent) : Boolean;6. Classes1). TShape : class(TGraphicControl)2). TPaintBox : class(TGraphicControl)I.Events(1). OnPaint: TfsNotifyEvent3). TImage : class(TGraphicControl)I.Properties(1). Picture: TPicture r-w;(2). Canvas: TCanvas r;(3). Stretch: Boolean r-w;(4). Transparent: Boolean r-w;(5). Center: Boolean r-w;4). TBevel : class(TGraphicControl)5). TTimer : class(TComponent)I.Events(1). OnTimer: TfsNotifyEvent7). TSplitter : class(TGraphicControl)8). TBitBtn : class(TGraphicControl)I.Methods(1). procedure Click;9). TSpeedButton : class(TGraphicControl)I.Methods(1). procedure Click;10). TCheckListBox : class(TCustomListBox)I.Properties(1). Checked[Integer]: Boolean;11). TTabControl : class(TWinControl)I.Events(1). OnChange: TfsNotifyEvent12). TTabSheet : class(TWinControl)I.Properties(1). PageControl: TPageControl r-w;13). TPageControl : class(TWinControl)I.Properties(1). PageCount: Integer r;(2). Pages[Integer]: TTabSheet;II.Methods(1). procedure SelectNextPage(GoForward: Boolean);15). TStatusPanels : class(TPersistent)I.Properties(1). Items[Integer]: TStatusPanel;II.Methods(1). function Add: TStatusPanel;16). TStatusBar : class(TWinControl)17). TTreeNode : class(TPersistent)I.Properties(1). Count: Integer r;(2). Data: Pointer r-w;(3). Parent: TTreeNode r;(4). ImageIndex: Integer r-w;(5). SelectedIndex: Integer r-w;(6). StateIndex: Integer r-w;(7). Text: String r-w;(8). Expanded: Boolean r-w;(9). Item[Integer]: TTreeNode;II.Methods(1). procedure Delete;(2). function EditText: Boolean;(3). procedure Expand(Recurse: Boolean);(4). procedure Collapse(Recurse: Boolean);18). TTreeNodes : class(TPersistent)I.Properties(1). Count: Integer r;(2). Item[Integer]: TTreeNode;II.Methods(1). function Add(Node: TTreeNode; const S: string): TTreeNode;(2). function AddChild(Node: TTreeNode; const S: string): TTreeNode;(3). procedure BeginUpdate;(4). procedure Clear;(5). procedure Delete(Node: TTreeNode);(6). procedure EndUpdate;19). TTreeView : class(TWinControl)I.Properties(1). Items: TTreeNodes r;(2). Selected: TTreeNode r-w;(3). TopItem: TTreeNode r-w;II.Methods(1). procedure FullCollapse;(2). procedure FullExpand;III.Events(1). OnChange: TfsTVChangedEvent20). TTrackBar : class(TWinControl)21). TProgressBar : class(TWinControl)22). TListColumn : class(TPersistent)23). TListColumns : class(TPersistent)I.Properties(1). Items[Integer]: TListColumn;II.Methods(1). function Add: TListColumn;24). TListItem : class(TPersistent)I.Properties(1). Caption: String r-w;(2). Checked: Boolean r-w;(3). Data: Pointer r-w;(4). ImageIndex: Integer r-w;(5). Selected: Boolean r-w;(6). StateIndex: Integer r-w;(7). SubItems: TStrings r-w;II.Methods(1). procedure Delete;(2). function EditCaption: Boolean;25). TListItems : class(TPersistent)I.Properties(1). Count: Integer r;(2). Item[Integer]: TListItem;II.Methods(1). function Add: TListItem;(2). procedure BeginUpdate;(3). procedure Clear;(4). procedure Delete(Index: Integer);(5). procedure EndUpdate;26). TSP_Scale : class(TPersistent)I.Properties(1). OPos: Integer r;(2). OVal: Double r;(3). SM: Double r;(4). Visible: Boolean r;(5). OX: Integer r;(6). OY: Integer r;(7). Len: Integer r;(8). NoTicks: Boolean r-w;(9). Inversed: Boolean r-w;(10). NoTicksLabel: Boolean r-w;(11). TicksAdjusted: Boolean r-w;(12). TicksLines: Boolean r-w;II.Methods(1). function BandWidth(FntWidth, FntHeight:Integer): Integer;(2). function OrgIndent(FntWidth, FntHeight:Integer): Integer;(3). function EndIndent(FntWidth, FntHeight:Integer): Integer;(4). function CalcDrawBounds(fCanvas:TCanvas):TRecord;(5). procedure DrawLine(fCanvas:TCanvas; odec, einc:Word);(6). procedure DrawTicks(fCanvas:TCanvas);(7). procedure SetLine(oX, oY, lLen:Integer);(8). procedure ChangeMinMax(aMin,aMax:Double);(9). procedure ScrollBy(delta:Integer);(10). function V2P(const V:Double): Integer;(11). function P2V(const V:Integer): Double;27). TSP_CustomLineAttr : class(TPersistent)I.Properties(1). Color: TColor r-w;(2). Style: TPenStyle r-w;(3). Width: Word r-w;(4). Mode: TPenMode r-w;(5). Visible: Boolean r-w;II.Methods(1). procedure SetPenAttr(const APen:TPen);III.Events(1). OnChange: TfsNotifyEvent28). TSP_LineAttr : class(TSP_CustomLineAttr)29). TSP_Axis : class(TSP_Scale)I.Properties(1). Margin: Integer r-w;(2). Caption: string r-w;(3). Min: Double r-w;(4). Max: Double r-w;(5). TicksCount: Byte r-w;(6). LineAttr: TSP_LineAttr r-w;(7). GridAttr: TSP_LineAttr r-w;(8). AutoMin: Boolean r-w;(9). AutoMax: Boolean r-w;(10). LabelAsDataTime: Boolean r-w;(11). LabelFormat: string r-w;(12). SFlags: Integer r-w;(13). fMin: Double r-w;(14). fMax: Double r-w;II.Methods(1). procedure SetMinMax(aMin,aMax:Double);(2). procedure MoveMinMax(aDelta:Double);30). TSP_DataSeries : class(TComponent)I.Properties(1). Active: Boolean r-w;II.Methods(1). procedure Draw;(2). function GetXMin(var V:Double):Boolean;(3). function GetXMax(var V:Double):Boolean;(4). function GetYMin(var V:Double):Boolean;(5). function GetYMax(var V:Double):Boolean;(6). procedure DrawLegendMarker(const LCanvas:TCanvas; MR:TRecord);(7). BringToFront;(8). SendToBack;31). TSP_PlotMarker : class(TComponent)I.Properties(1). XAxisObj: TSP_Axis r;(2). YAxisObj: TSP_Axis r;(3). Plot: TSP_XYPlot r-w;(4). XAxis: TSP_WhatXAxis r-w;(5). YAxis: TSP_WhatYAxis r-w;(6). WhenDraw: TSP_WhenDrawMarker r-w;(7). Visible: Boolean r-w;II.Methods(1). procedure BringToFront;(2). procedure SendToBack;(3). procedure Draw;32). TSP_XYPlot : class(TCustomControl)I.Properties(1). DCanvas: TCanvas r;(2). DWidth: Integer r;(3). DHeight: Integer r;(4). FieldRect: TRecord r;(5). Series[Integer]: TSP_DataSeries;(6). SeriesCount: Integer r;(7). Zoom: TSP_zpDirections r-w;(8). Pan: TSP_zpDirections r-w;(9). ZoomShiftKeys: TSP_ShiftKeys r-w;(10). PanCursor: TCursor r-w;(11). LeftAxis: TSP_Axis r-w;(12). RightAxis: TSP_Axis r-w;(13). BottomAxis: TSP_Axis r-w;(14). TopAxis: TSP_Axis r-w;(15). BorderStyle: TSP_BorderStyle r-w;(16). FieldColor: TColor r-w;(17). BufferedDisplay: Boolean r-w;(18). XCursorOn: Boolean r-w;(19). XCursorVal: Double r-w;II.Methods(1). procedure Invalidate;(2). procedure BufferIsInvalid;(3). procedure DrawPlot(DC:TCanvas; W, H:integer);(4). procedure Paint;(5). procedure CopyToClipboardMetafile;(6). procedure CopyToClipboardBitmap;III.Events。

相关文档
最新文档