




已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
FastScript腳本使用白皮書(Ver1.0)作者:袁鋒QQ:11442361Email:1. 可以使用的對(duì)象如下:1.1. 原始類: Tobject, TPersistent ,TList, TStrings, TStringList, TStream, TFileStream, TMemoryStream, TComponent, TfsXMLItem, TfsXMLDocument.A) Tobject: 方法: constructor Create Free function ClassName: StringB) TPersistent :class(Tobject);方法: procedure Assign(Source: TPersistent)C) TList :class (TObject)方法: function Add(Item: TObject): Integer procedure Clear, CallMethod); procedure Delete(Index: Integer) function IndexOf(Item: TObject) procedure Insert(Index: Integer; Item: TObject) function Remove(Item: TObject): Integer 屬性: Count: Integer Itemsi: Integer: TObjectD) TStrings: class(TPersistent) function Add(const S: string): Integer function AddObject(const S: string; AObject: TObject): Integer procedure Clear, CallMethod); procedure Delete(Index: Integer), CallMethod); function IndexOf(const S: string): Integer, CallMethod); function IndexOfName(const Name: string): Integer function IndexOfObject(AObject: TObject): Integer procedure Insert(Index: Integer; const S: string) procedure InsertObject(Index: Integer; const S: string; AObject: TObject) procedure LoadFromFile(const FileName: string) procedure LoadFromStream(Stream: TStream) procedure SaveToFile(const FileName: string) procedure SaveToStream(Stream: TStream) 屬性: CommaText:stringCount:Integer Names, Integer, string, CallMethod, True); Objects, Integer, TObject,; Values, String, string,; Stringsi: Integer, string, Text, string, GetProp, SetProp);end;E) TStringList: class(TStrings)方法: function Find(s: String; var Index: Integer): Boolean procedure Sort, CallMethod) 屬性: Duplicates: TDuplicates Sorted:BooleanF) TStream:class(TObject) 方法:function Read(Buffer: string; Count: Longint): Longint function Write(Buffer: string; Count: Longint): Longint function Seek(Offset: Longint; Origin: Word): Longint function CopyFrom(Source: TStream; Count: Longint): Longint 屬性: Position:Longint Size:LongintG) TFileStream:class(TStream) constructor Create(Filename: String; Mode: Word)H) TMemoryStream:class(TStream) procedure Clear, CallMethod); procedure LoadFromStream(Stream: TStream) procedure LoadFromFile(Filename: String) procedure SaveToStream(Stream: TStream) procedure SaveToFile(Filename: String)I) TComponent:class(TPersistent) 方法:constructor Create(AOwner: TComponent) 屬性:Owner:ComponentJ) TfsXMLItem:=class(TObject) 方法: constructor Create procedure AddItem(Item: TfsXMLItem) procedure Clear, CallMethod) procedure InsertItem(Index: Integer; Item: TfsXMLItem) function Add: TfsXMLItem function Find(const Name: String): Integer function FindItem(const Name: String): function Prop(const Name: String): String function Root: TfsXMLItem 屬性: Data:Integer Count:Integer Itemsi: Integer: TfsXMLItem Name:String Parent:TfsXMLItem Text:String K) TfsXMLDocument:=class(TObject)方法: constructor Create procedure SaveToStream(Stream: TStream) procedure LoadFromStream(Stream: TStream) procedure SaveToFile(const FileName: String) procedure LoadFromFile(const FileName: String) 屬性:Root:fsXMLItem-1.2. 常用類:(如果需要使用此類控件需要加fsFormsRTTI1控件) 控件:TWinControl類(TWinControl: Class(Tcontrol))TEdit,TMemo,Tmaskedit,TCombobox,TCheckBox,TRadioButton,TBitbtn, TListBox,TForm, TTScrollBox TControl類(TControl: Class(TComponent))TSpeedbutton ,Ttoolbar ,Tpanel ,Tbitbtn,TLabel ,TGroupBox ,TImage,TShape,TToolbarTComponent 類 TDataModule -說明:對(duì)于TControl有方法:procedure Hide procedure Show procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer), CallMethod); 事件: OnCanResize OnClick OnDblClick OnMouseDown OnMouseMove OnMouseUp OnResize對(duì)于TWinControl除了有上面TControl的方法和事件外,還有:方法: procedure SetFocus 事件:OnEnter OnExit OnKeyDown OnKeyPress OnKeyUp對(duì)于TCombobox還有如下事件:OnChange OnDropDown OnCloseUp 除了有Published屬性外還有如下屬性: DroppedDown:Boolean ItemIndex:Integer對(duì)于TEdit,TMemo還有如下方法: procedure CopyToClipboard procedure CutToClipboard procedure PasteFromClipboard 對(duì)于TlistBox除了有Published屬性外還有如下屬性: ItemIndex:Integer SelCount:integer SelectedIndex: Integer: Boolean 對(duì)于Form類還有: 方法:procedure Close procedure Hide procedure Show function ShowModal: Integer事件: OnActivate OnClose OnCloseQuery OnCreate OnDestroy OnDeactivate OnHide OnPaint OnShow 除了有Published屬性外還有如下屬性:Canvas ModalResult -1.3. 數(shù)據(jù)敏感類:(如果需要使用此類控件需要加fsDBCtrlRTTI1控件) 控件: TWinControl類TDBEdit,TDBComboBox,TDBImage,TDBCheckBox,TDBListBox,TDBMemo,TDBNavigator,TDBRadioGroup,TDBLookupControl,TDBLookupListBox,TDBLookupComboBox,TDBGridTGraphicControl(在fsFormsRTTI1里定義 AddClass(TGraphicControl, TControl)TDBTextTPersistent類:TColumnTitle,TColumn,TDBGridColumns 說明:對(duì)于TDBCheckBox除了有Published屬性外還有如下屬性: Checked:Boolean對(duì)于TDBComboBox除了有Published屬性外還有如下屬性: Text:String DroppedDown:Boolean ItemIndex:Integer除了Twincontrol事件外,還有如下事件: OnChange OnDropDown OnCloseUp對(duì)于TDBListBox除了有Published屬性外還有如下屬性: ItemIndex:Integer SelCount:integer SelectedIndex: Integer: Boolean 對(duì)于TDBRadioGroup除了有Published屬性外還有如下屬性: ItemIndex:Integer Value:String對(duì)于TDBLookupListBox除了有Published屬性外還有如下屬性: KeyValue:Variant SelectedItem:String對(duì)于TDBLookupComboBox除了有Published屬性外還有如下屬性: KeyValue:Variant Text:String對(duì)于TDBGridColumns除了有Published屬性外還有如下屬性: Itemsi:Integer:Tcolumn 方法: function Add: TColumn function Count: Integer procedure RebuildColumns procedure RestoreDefaults1.4. 字段和數(shù)據(jù)集類:( 如果需要使用此類控件需要加fsDBRTTI1控件)A) TField: class(TComponent)屬性: AsBoolean:Boolean AsCurrency:Currency AsDateTime:TDateTime AsFloat:Double AsInteger:Integer AsString:String AsVariant:Variant DataType:TFieldType DisplayName:String DisplayText:String IsNull:Boolean Size:Integer Value:VariantB) TFields:class(TObject)屬性:Fieldsi: Integer:TFieldC) TStringField: class(TField)D) TNumericField: class(TField)E) TIntegerField: class(TNumericField)F) TSmallIntField: class(TIntegerField)G) TWordField: class(TIntegerField)H) TAutoIncField: class(TIntegerField)I) TFloatField: class(TNumericField)J) TCurrencyField: class(TFloatField)K) TBooleanField: class(TField)L) TDateTimeField: class(TField)M) TDateField: class(TDateTimeField)N) TTimeField: class(TDateTimeField)O) TBinaryField: class(TField)P) TBytesField : class(TBinaryField)Q) TVarBytesField: class(TBinaryField)R) TBCDField: class(TNumericField)S) TBlobField: class(TField) 方法: procedure LoadFromFile(const FileName: String) procedure LoadFromStream(Stream: TStream) procedure SaveToFile(const FileName: String) procedure SaveToStream(Stream: TStream)T) TMemoField:class(TBlobField)U) TGraphicField: (TBlobField)V) TFieldDef: class(TPersistent)W) TFieldDefs: class(TObject) function AddFieldDef: TFieldDef, CallMethod); function Find(const Name: string): TFieldDef, CallMethod); procedure Add(const Name: string; DataType: TFieldType; Size: Word; Required: Boolean) procedure Clear procedure Update屬性: Itemsi:Integer :TFieldDefX) TDataSource: class(TComponent)Y) TDataSet: TComponent 方法: procedure Open procedure Close procedure First procedure Last procedure Next procedure Prior procedure Cancel procedure Delete procedure Post procedure Append procedure Insert procedure Editfunction FieldByName(const FieldName: string): TField procedure GetFieldNames(List: TStrings) function FindFirst: Boolean function FindLast: Boolean function FindNext: Boolean function FindPrior: Boolean, CallMethod); procedure FreeBookmark(Bookmark: TBookmark) function GetBookmark: TBookmark procedure GotoBookmark(Bookmark: TBookmark), CallMethod); function Locate(const KeyFields: string; const KeyValues: Variant; + Options: TLocateOptions): Boolean function IsEmpty: Boolean 屬性: Bof:Boolean Eof:Boolean fieldCount:Integer RecordCount:Integer FieldDefs:TFieldDefs Fields:TFields Filter:string Filtered:Boolean FilterOptions:TFilterOptions Active:Boolean事件:BeforeOpen AfterOpen; BeforeClose AfterClose BeforeInsert AfterInsert BeforeEdit AfterEdit BeforePost AfterPost BeforeCancel AfterCancel BeforeDelete AfterDelete BeforeScroll AfterScroll OnCalcFields OnFilterRecord OnNewRecordZ) TParam:class(TPersistent)方法: procedure Clear 屬性: AsBoolean:Boolean AsCurrency:Currency AsDateTime:TDateTime AsFloat:Double AsInteger:Integer AsDate:TDate AsTime:TTime AsString:String Bound:Boolean IsNull:Boolean Text:StringAA) TParams:class(TPersistent) 方法:function ParamByName(const Value: string): TParam事件:function FindParam(const Value: string): TParam屬性:Itemi: Integer:TParam1.5. ADO類:( 如果需要使用此類控件需要加fsADORTTI1控件)TDataBase,TDataSource,TDataSet,TAdoconnection,TAdoDataSet,TAdoquery,TAdoTable,TAdoStoredProc,TClientDataSetA) TADOConnection:TComponentB) TParameter:TPersistent 屬性:Itemsi:Integer:TParameterC) TCustomADODataSet: class(TDataSet)D) TADODataSet:class(TCustomADODataSet)E) TCustomClientDataSet:class(TDataSet) F) TADOTable:class(TCustomADODataSet);G) TADOQuery:class(TCustomADODataSet) do 方法:procedure ExecSQLH) TADOStoredProc:TCustomADODataSet 方法:procedure ExecProcI) TClientDataSet: class(TCustomClientDataSet 方法: procedure Excute1.6. BDE類:(如果需要使用此類控件需要加fsBDERTTI1控件) TTable,Tquery,TDataBase,TStoreProc,TSession對(duì)于TDataBase可以使用如下方法: procedure Open 對(duì)于TTable可以使用如下方法: procedure CreateTable procedure DeleteTable; procedure EmptyTable; function FindKey(const KeyValues: array): Boolean; procedure FindNearest(const KeyValues: array); procedure RenameTable(const NewTableName: string); 對(duì)于TQuery可以使用如下方法: procedure ExecSQL function ParamByName(const Value: string): TParam procedure Prepare ParamCount 對(duì)于TStoredProc可以使用如下方法: procedure ExecProc function ParamByName(const Value: string): TParam procedure Prepare ParamCount1.7. 對(duì)話類:(如果需要使用此類控件需要加fsDialogRTTI1控件)TOpenDialog、TSaveDialog、TColorDialog 、TFontDialog、TPrintDialog、TPrinterSetupDialog function InputBox(ACaption, APrompt, ADefault: string): string function InputQuery(ACaption, APrompt: string; var Value: string): Boolean1.8. 圖像類:控件:TFont,TPen,TBrush,TCanvas,TGraphic,TMetafile,Timage,TMetafileCanvas,TBitmap對(duì)于TCanvas: TPersistent,除了TPersistent的方法外還有如下方法:procedure Draw(X, Y: Integer; Graphic: TGraphic) procedure Ellipse(X1, Y1, X2, Y2: Integer) procedure LineTo(X, Y: Integer) procedure MoveTo(X, Y: Integer) procedure Rectangle(X1, Y1, X2, Y2: Integer) procedure RoundRect(X1, Y1, X2, Y2, X3, Y3: Integer) procedure StretchDraw(X1, Y1, X2, Y2: Integer; Graphic: TGraphic) function TextHeight(const Text: string):Integer procedure TextOut(X, Y: Integer; const Text: string) function TextWidth(const Text: string):Integer Pixels(X, Y: Integer;):TColor對(duì)于TGraphic= class(TPersistent)除了TPersistent的方法外,還有如下方法: procedure LoadFromFile(const Filename: string), CallMethod); procedure SaveToFile(const Filename: string), CallMethod);屬性:Height:Integer Width:Integer對(duì)于TBitmap: TGraphic 除了TPersistent的屬性外,還有如下屬性: Canvas: TCanvas2. 常用函數(shù):(系統(tǒng)默認(rèn)可以使用下列函數(shù))轉(zhuǎn)換類: IntToStr(i: Integer): StringFloatToStr(e: Extended): StringDateToStr(e: Extended): StringTimeToStr(e: Extended): StringDateTimeToStr(e: Extended): StringVarToStr(v: variant): StringStrToInt(s: String): IntegerStrToFloat(s : String): FloatStrToDate(s: String): TDateStrToTime(s: String): TTimeStrToDateTime(s:String): TDateTime格式化類: Format(Fmt: String; Args: array): String FormatFloat(Fmt: String; Value: Extended): String FormatDateTime(Fmt: String; DateTime: TDateTime): String FormatMaskText(EditMask: String; Value: String): String時(shí)間類: function EncodeDate(Year, Month, Day: Word): TDateTime procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word) function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word) function Date: TDateTimefunction Time: TDateTimefunction Now: TDateTime function DayOfWeek(aDate: DateTime): Integer function IsLeapYear(Year: Word): Booleanfunction DaysInMonth(nYear, nMonth: Integer): Integer字符串類:function Length(s: String): Integer function Copy(s: String; from, count: Integer): String function Pos(substr, s: String): Integer procedure Delete(var s: String; from, count: Integer): String procedure Insert(s: String; var s2: String; pos: Integer): String function Uppercase(s: String): String function Lowercase(s: String): String function Trim(s: String): String function NameCase(s: String): String function CompareText(s, s1: String): Integer function Chr(i: Integer): Char function Ord(ch: Char): Integerprocedure SetLength(var S: String; L: Integer)數(shù)學(xué)類:function Round(e: Extended): Integer function Trunc(e: Extended): Integer function Int(e: Extended): Integer function Frac(X: Extended): Extended function Sqrt(e: Extended): Extended function Abs(e: Extended): Extended function Sin(e: Extended): Extended function Cos(e: Extended): Extended function ArcTan(X: Extended): Extended function Tan(X: Extended): Extended function Exp(X: Extended): Extended function Ln(X: Extended): Extendedfunction Pi: Extended其他:procedure Inc(var i: Integer; incr: Integer = 1) procedure Dec(var i: Integer; decr: Integer = 1) procedure RaiseException(Param: String) procedure ShowMessage(Msg: Variant) procedure Randomize function Random: Extended function ValidInt(cInt: String): Boolean function ValidFloat(cFlt: String): Booleanfunction ValidDate(cDate: String): Boolean說明:由于FastScript解釋執(zhí)行腳本,所以很多對(duì)象或者對(duì)象的屬性都沒有包括,也就是在Delphi中有的對(duì)象或?qū)傩浴⒎椒ǖ仍谀_本里面可能不能用,以上面所述為準(zhǔn)。但是對(duì)于大多數(shù)情況下,F(xiàn)astScript能滿足,且能較方便地進(jìn)行擴(kuò)展。1在FastScript中,任何類都能用屬于Published的屬性,如果又加了屬性,則也可以用。2子類繼承父類的所有方法和屬性。也就是子類可以使用父類的所有方法和屬性。如果有加了方法和事件,也一樣可以用編者:袁鋒日期:2004-06-05附:A關(guān)于如何使用第三方控件,增加方法、屬性、事件)舉例如下: 如:有一控件為edtbutton:TedtButton,我們需要在動(dòng)態(tài)腳本中使用該控件。我們采用如下方法:我們可以把該控件申明在fs_iformsrtti單元里面(當(dāng)然也可以申明在其他的單元如fs_idbrtti里面,但是遵守一個(gè)原則是盡量使得功能相似的控件放在同一個(gè)單元里面,這樣只需要把該單元所對(duì)應(yīng)的控件拖動(dòng)到form上即可,提高系統(tǒng)運(yùn)行效率)如:fs_iformsrtti單元對(duì)應(yīng)控件板上的fsiformsrtti。以此類推 AddClass(TedtButton, TControl); 對(duì)于增加方法:請(qǐng)看如下例子:如需要增加Tedit類的CopyToClipboard、CutToClipboard、PasteFromClipboard方法。則代碼如下所示:with AddClass(TEdit, TWinControl) do begin AddMethod(procedure CopyToClipboard, CallMethod); AddMethod(procedure CutToClipboard, CallMethod); AddMethod(procedure PasteFromClipboard, CallMethod); end;在 CallMethod中需要增加相應(yīng)方法的實(shí)現(xiàn)。function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; const MethodName: String; var Params: Variant): Variant;var Form: TCustomForm;begin Result := 0; if ClassType = TControl then begin if MethodName = HIDE then TControl(Instance).Hide else if MethodName = SHOW then TControl(Instance).Show else if MethodName = SETBOUNDS then TControl(Instance).SetBounds(Params0, Params1, Params2, Params3) end else if ClassType = TWinControl then begin if MethodName = SETFOCUS then TWinControl(Instance).SetFocus end else if ClassType = TEdit then /需要增加的實(shí)現(xiàn)(只是對(duì)于Tedit); begin if MethodName = uppercase(CopyToClipboard) then Tedit(Instance).CopyToClipboard ; if MethodName = uppercase(CutToClipboard) then Tedit(Instance).CutToClipboard ; if MethodName = uppercase(PasteFromClipboard) then Tedit(Instance).PasteFromClipboard ; end End對(duì)于增加屬性:請(qǐng)看如下例子:如需要增加TdataSet的RecordCount屬性,則代碼如下所示: with AddClass(TDataSet, TComponent) do begin AddMethod(procedure Open, CallMethod); AddProperty(FieldCount, Integer, GetProp, nil); AddProperty(RecordCount, Integer,GetProp,nil); 因?yàn)镽
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度教育培訓(xùn)檔口租賃合同
- T-ZJCX 0046-2024 簾子線直捻機(jī)
- 二零二五年度公車私用行為規(guī)范與責(zé)任追究協(xié)議
- 二零二五年度全新碼頭租賃協(xié)議及倉(cāng)儲(chǔ)服務(wù)合作協(xié)議
- 2025年度果園租賃與農(nóng)業(yè)科技研發(fā)合同
- 二零二五年度廣告代理合同解除與權(quán)益調(diào)整協(xié)議
- 2025年度高科技企業(yè)計(jì)件工資勞動(dòng)合同
- 2025年度智能合同履約跟蹤與風(fēng)險(xiǎn)控制管理辦法
- 2025年度消防設(shè)施定期維護(hù)與消防通道清理合同
- 二零二五年度美發(fā)店員工勞動(dòng)健康保險(xiǎn)與意外傷害合同
- 學(xué)校食品安全長(zhǎng)效管理制度
- 滋補(bǔ)品項(xiàng)目效益評(píng)估報(bào)告
- 提綱作文(解析版)- 2025年天津高考英語熱點(diǎn)題型專項(xiàng)復(fù)習(xí)
- 2025年南京機(jī)電職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 2025年春新人教版歷史七年級(jí)下冊(cè)全冊(cè)課件
- 2025年浙江臺(tái)州機(jī)場(chǎng)管理有限公司招聘筆試參考題庫(kù)含答案解析
- 《中式風(fēng)格陳設(shè)》課件
- 《汽車空調(diào)工作原理》課件
- 2024年鄭州黃河護(hù)理職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及解析答案
- 2025屆廣東省佛山一中石門中學(xué)高考沖刺押題(最后一卷)數(shù)學(xué)試卷含解析
- 2024-2030年中國(guó)氣象服務(wù)行業(yè)深度調(diào)查及投資戰(zhàn)略建議報(bào)告
評(píng)論
0/150
提交評(píng)論