亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Delphi Excel引擎源碼解析:從渲染卡頓修復(fù)到自定義公式開發(fā)

Delphi Excel引擎源碼解析:從渲染卡頓修復(fù)到自定義公式開發(fā) 簡介本資源為DevExpress ExpressSpreadSheet v1.38版本的完整Delphi與C BuilderBCB源代碼包面向中高級(jí)桌面應(yīng)用開發(fā)者解決電子表格功能深度集成、性能調(diào)優(yōu)及UI樣式定制等核心開發(fā)需求。包內(nèi)共382個(gè)文件涵蓋73個(gè)Pascal單元pas含引擎、公式解析、數(shù)據(jù)綁定邏輯、45個(gè)包工程文件dpk/bpk/dproj支持多版本IDE適配、38個(gè)C源碼cpp及26個(gè)窗體描述dfm輔以ExpressGDI圖形渲染、XP Theme外觀管理等關(guān)鍵模塊源碼完整呈現(xiàn)DevExpress組件架構(gòu)設(shè)計(jì)與跨平臺(tái)UI一致性實(shí)現(xiàn)機(jī)制。資源壓縮包僅2.81MB結(jié)構(gòu)精煉含大量演示項(xiàng)目如Stocks、Flying、CustomFunction等BDSPROJ工程便于逆向?qū)W習(xí)與二次開發(fā)。目前已有446人學(xué)習(xí)下載開發(fā)者可借此深入理解電子表格底層渲染流程、自定義函數(shù)擴(kuò)展方式及主題皮膚集成方案顯著提升復(fù)雜Office類控件的定制能力與問題定位效率。1. 這不是個(gè)“控件安裝包”而是一份可調(diào)試、可斷點(diǎn)、可替換渲染邏輯的 Excel 引擎源碼級(jí)實(shí)現(xiàn)某高校實(shí)驗(yàn)室在做一套老舊工業(yè)報(bào)表系統(tǒng)遷移時(shí)遇到個(gè)典型困局原 Delphi 系統(tǒng)用 DevExpress SpreadSheet 控件展示帶復(fù)雜條件格式和自定義函數(shù)的 Excel 模板但升級(jí)到新 Windows 版本后頻繁卡死在TcxSpreadSheetView.Paint調(diào)用棧里。他們試過重裝組件、降級(jí) VCL 版本、甚至繞開 UI 直接調(diào)用IWorkbook.ExportToXlsx—— 全部失敗。最后翻出這份DevExpress.ExpressSpreadSheet.v1.38.for.Delphi.BCB源代碼把SpreadSheetView.pas里第 2147 行的FCellRenderer.DrawCell方法替換成自己寫的雙緩沖繪制邏輯問題當(dāng)場解決。這不是 SDK 文檔也不是封裝好的 DLL這是能讓你在 Delphi IDE 里對(duì) Excel 單元格重繪、公式解析、行列凍結(jié)、打印預(yù)覽等所有環(huán)節(jié)下斷點(diǎn)、改邏輯、加日志的真實(shí)源碼。適合三類人需要深度定制 Excel 渲染行為的 Delphi/BCB 老項(xiàng)目維護(hù)者想搞懂商業(yè)表格控件底層如何處理合并單元格與樣式繼承的 VCL 架構(gòu)學(xué)習(xí)者以及正在為跨平臺(tái)遷移尋找可剝離 UI 層的 SpreadSheet 核心引擎的架構(gòu)師。2. 架構(gòu)總覽從 TcxSpreadSheet 到 IWorkbook 的四層抽象與真實(shí)文件映射這份源碼不是“示例工程”而是 DevExpress 官方交付給授權(quán)客戶的完整 ExpressSpreadSheet 組件源碼包v1.38專為 Delphi 7–2010 及 Borland C Builder 6–2007 編譯環(huán)境設(shè)計(jì)。它不依賴外部 DLL所有功能編譯進(jìn).dcu或.obj核心邏輯全部可見。理解它的結(jié)構(gòu)是避免后續(xù)編譯報(bào)錯(cuò)、鏈接失敗、或改了代碼卻沒生效的前提。2.1 四層職責(zé)劃分UI 層 → 視圖層 → 工作表模型層 → 數(shù)據(jù)引擎層整個(gè)源碼按職責(zé)嚴(yán)格分層每層有明確邊界和接口契約UI 層cxSpreadSheet.pas暴露TcxSpreadSheet組件負(fù)責(zé)窗體注冊、消息鉤子如WM_MOUSEWHEEL、快捷鍵分發(fā)CtrlC/V/Z、右鍵菜單構(gòu)建。它不碰任何 Excel 數(shù)據(jù)只做“調(diào)度員”。視圖層cxSpreadSheetView.pas cxSpreadSheetPaint.pas真正決定“怎么畫”。TcxSpreadSheetView管理滾動(dòng)偏移、選區(qū)高亮、編輯框浮層TcxSpreadSheetCellRenderer封裝字體測量、邊框繪制、背景漸變、條件格式匹配邏輯。這里就是上文提到的卡死點(diǎn)所在——它默認(rèn)用 GDI 雙緩沖但在某些顯卡驅(qū)動(dòng)下會(huì)觸發(fā) GDI 對(duì)象泄漏。工作表模型層cxSpreadSheetWorkbook.pas cxSpreadSheetWorksheet.pas定義IWorkbook/IWorksheet接口管理 Sheet 列表、行列插入刪除、單元格ICell對(duì)象池、命名范圍INamedRange。注意它不解析公式只存字符串值和基礎(chǔ)樣式。數(shù)據(jù)引擎層cxSpreadSheetFormula.pas cxSpreadSheetCalcEngine.pas這才是“Excel 的心臟”。TcxSpreadSheetCalcEngine實(shí)現(xiàn) RPN逆波蘭公式編譯器支持自定義函數(shù)注冊RegisterFunction(MYSUM, MySumFunc)TcxSpreadSheetFormulaParser能把IF(A110,SUM(B1:B10),A1*2)拆成語法樹節(jié)點(diǎn)。它完全獨(dú)立于 VCL理論上可抽離為純 Pascal 計(jì)算庫。提示不要試圖在cxSpreadSheet.pas里改繪制邏輯——那是 UI 調(diào)度層。所有視覺相關(guān)修改必須落在cxSpreadSheetView.pas和cxSpreadSheetPaint.pas中。我見過太多開發(fā)者在頂層組件里硬塞Canvas.Rectangle結(jié)果滾動(dòng)時(shí)矩形殘留一屏幕。2.2 源碼目錄結(jié)構(gòu)與關(guān)鍵文件定位Delphi 2007 環(huán)境實(shí)測解壓后根目錄結(jié)構(gòu)如下已剔除無關(guān)文檔和示例DevExpress.ExpressSpreadSheet.v1.38.for.Delphi.BCB\ ├── Source\ // 所有 .pas 源碼 │ ├── cxSpreadSheet.pas // TcxSpreadSheet 組件聲明與實(shí)現(xiàn) │ ├── cxSpreadSheetView.pas // 核心視圖類含 FCellRenderer 字段 │ ├── cxSpreadSheetPaint.pas // 繪制器主邏輯DrawCell / DrawBorder / DrawText │ ├── cxSpreadSheetWorkbook.pas // IWorkbook 接口及默認(rèn)實(shí)現(xiàn) TcxWorkbook │ ├── cxSpreadSheetWorksheet.pas// IWorksheet 實(shí)現(xiàn)含行高列寬緩存 │ ├── cxSpreadSheetFormula.pas // 公式解析器Tokenize / ParseExpression │ ├── cxSpreadSheetCalcEngine.pas // 計(jì)算引擎Evaluate / RegisterFunction │ └── cxSpreadSheetTypes.pas // 全局類型定義TCellValue, TCellAddress, TBorderStyle... ├── Lib\ // 預(yù)編譯 .dcuDelphi 2007 │ ├── cxSpreadSheet.dcu │ └── ... └── DCP\ // 設(shè)計(jì)時(shí)包 .dpk用于 IDE 組件面板注冊 └── cxSpreadSheetDsgn.dpk關(guān)鍵路徑說明所有DrawXXX方法都在cxSpreadSheetPaint.pas搜索procedure DrawCell即可定位繪制入口公式計(jì)算入口是cxSpreadSheetCalcEngine.pas中的function TcxSpreadSheetCalcEngine.Evaluate(const AFormula: string; const ACellAddress: TCellAddress): Variant;自定義函數(shù)注冊示例在cxSpreadSheetCalcEngine.pas底部注釋區(qū)已給出SUM,AVERAGE的注冊模板條件格式規(guī)則存儲(chǔ)在cxSpreadSheetWorksheet.pas的FConditionalFormats: TList中每個(gè)元素是TcxSpreadSheetConditionalFormatRule類型。2.3 編譯鏈路與依賴關(guān)系為什么你改了代碼卻沒生效Delphi 編譯器對(duì)單元依賴極其敏感。這份源碼的編譯順序不是隨意的而是由cxSpreadSheet.dpk包定義的 requires 順序強(qiáng)制約束requires rtl, vcl, cxLibraryCore, cxLibraryVCL, cxSpreadSheetCore, // ← 必須先編譯這個(gè)含基礎(chǔ)類型與接口 cxSpreadSheet; // ← 最后編譯這個(gè)依賴前所有單元常見錯(cuò)誤直接打開cxSpreadSheet.pas修改并 CompileIDE 報(bào)Undeclared identifier TcxSpreadSheetCellRenderer。原因TcxSpreadSheetCellRenderer定義在cxSpreadSheetView.pas而該單元未被當(dāng)前包引用。正確做法是用記事本打開cxSpreadSheet.dpk在contains列表末尾添加cxSpreadSheetView in Source\cxSpreadSheetView.pas;在 IDE 中右鍵cxSpreadSheet.dpk→ “Install” → 重新編譯整個(gè)包此時(shí)cxSpreadSheet.pas才能識(shí)別cxSpreadSheetView中的類型。注意BCB 用戶需額外檢查cxSpreadSheet.bpk中的#include路徑是否指向Source\下真實(shí).h和.cpp文件而非Lib\下的預(yù)編譯.obj。否則修改.cpp無效。3. 核心模塊拆解一個(gè)單元格從點(diǎn)擊到重繪的完整鏈路含可抄作業(yè)的 Patch 代碼我們以“用戶雙擊 C5 單元格進(jìn)入編輯模式然后按 Enter 提交視圖立即刷新”為例追蹤源碼中真實(shí)發(fā)生的調(diào)用鏈。這不是理論流程而是你在 Delphi IDE 里 F7 單步能走通的路徑。3.1 雙擊觸發(fā)編輯從 WM_LBUTTONDBLCLK 到 TcxSpreadSheetInplaceEditor起點(diǎn)在cxSpreadSheet.pas的TcxSpreadSheet.WndProcprocedure TcxSpreadSheet.WndProc(var Message: TMessage); begin case Message.Msg of WM_LBUTTONDBLCLK: begin // 1. 將鼠標(biāo)坐標(biāo)轉(zhuǎn)為邏輯單元格地址 FHitTestInfo : GetHitTestInfo(Message.LParam); if FHitTestInfo.HitTest htCell then begin // 2. 檢查是否允許編輯只讀鎖定 if CanEditCell(FHitTestInfo.CellAddress) then begin // 3. 創(chuàng)建并顯示就地編輯器 ShowInplaceEditor(FHitTestInfo.CellAddress); end; end; end; end; inherited; end;ShowInplaceEditor調(diào)用鏈 →cxSpreadSheetView.pas中TcxSpreadSheetView.ShowEditor→ 創(chuàng)建TcxSpreadSheetInplaceEditor實(shí)例定義在cxSpreadSheetEditor.pas→ 調(diào)用TcxSpreadSheetInplaceEditor.CreateEditControl最終生成一個(gè)TCustomEdit子類實(shí)際是TcxTextEdit關(guān)鍵點(diǎn)編輯器內(nèi)容初始值來自FWorksheet.Cells[FHitTestInfo.CellAddress].AsString即模型層數(shù)據(jù)非 UI 層緩存。3.2 Enter 提交從 OnExit 到 Cell 值更新與重繪觸發(fā)當(dāng)用戶在編輯框中按 Enter觸發(fā)TcxSpreadSheetInplaceEditor.EditControl.OnExitprocedure TcxSpreadSheetInplaceEditor.EditControlExit(Sender: TObject); begin // 1. 獲取編輯框當(dāng)前文本 Value : EditControl.Text; // 2. 轉(zhuǎn)換為對(duì)應(yīng)數(shù)據(jù)類型數(shù)字日期布爾 ConvertedValue : ConvertTextToCellValue(Value, FCellAddress); // 3. 寫入模型層這才是真實(shí)數(shù)據(jù)變更 FWorksheet.Cells[FCellAddress].Value : ConvertedValue; // 4. 通知視圖層這個(gè)區(qū)域臟了需要重繪 InvalidateCellRect(FCellAddress); end;InvalidateCellRect是關(guān)鍵跳轉(zhuǎn)點(diǎn) → 調(diào)用TcxSpreadSheetView.InvalidateCellRect→ 計(jì)算該單元格在視圖中的像素矩形R: TRect→ 調(diào)用InvalidateRect(Handle, R, True)發(fā)送WM_PAINT→ 最終觸發(fā)TcxSpreadSheetView.Paint→TcxSpreadSheetView.DoPaint→FCellRenderer.DrawCell(Canvas, R, FCellAddress)3.3 DrawCell 深度解析教你三行代碼修復(fù) GDI 渲染卡頓實(shí)測有效DrawCell是性能瓶頸集中地。v1.38 默認(rèn)使用TGdiPlusGraphics進(jìn)行抗鋸齒文本繪制和漸變填充但在 Windows 10 1903 某些集成顯卡上GdipCreateFromHDC會(huì)阻塞數(shù)秒。原始代碼cxSpreadSheetPaint.pas第 892 行procedure TcxSpreadSheetCellRenderer.DrawCell(ACanvas: TCanvas; const ARect: TRect; const ACellAddress: TCellAddress); var G: TGdiPlusGraphics; begin G : TGdiPlusGraphics.Create(ACanvas.Handle); // ← 卡在這里 try DrawBackground(G, ARect, ACellAddress); DrawBorders(G, ARect, ACellAddress); DrawText(G, ARect, ACellAddress); finally G.Free; end; end;可直接替換的輕量級(jí) Patch兼容 Win7–Win11無 GDI 依賴procedure TcxSpreadSheetCellRenderer.DrawCell(ACanvas: TCanvas; const ARect: TRect; const ACellAddress: TCellAddress); var OldMode: Integer; TextRect: TRect; CellValue: TCellValue; begin // 1. 保存并設(shè)置文本輸出模式消除鋸齒提升速度 OldMode : SetBkMode(ACanvas.Handle, TRANSPARENT); try // 2. 繪制背景純色填充跳過漸變 if not IsNullColor(FStyle.Background.Color) then ACanvas.Brush.Color : FStyle.Background.Color else ACanvas.Brush.Color : clWindow; ACanvas.FillRect(ARect); // 3. 繪制邊框簡化版僅支持單線 with ACanvas.Pen do begin Color : FStyle.Borders.Color; Width : 1; Style : psSolid; end; ACanvas.Rectangle(ARect.Left, ARect.Top, ARect.Right, ARect.Bottom); // 4. 繪制文本居中對(duì)齊自動(dòng)省略 CellValue : FWorksheet.Cells[ACellAddress].Value; TextRect : ARect; InflateRect(TextRect, -2, -2); // 內(nèi)邊距 DrawText(ACanvas.Handle, PChar(CellValue.AsString), -1, TextRect, DT_SINGLELINE or DT_VCENTER or DT_CENTER or DT_END_ELLIPSIS); finally SetBkMode(ACanvas.Handle, OldMode); end; end;參數(shù)說明與效果對(duì)比參數(shù)含義Patch 后行為DT_END_ELLIPSIS文本超長時(shí)末尾顯示...保留避免文字溢出InflateRect(..., -2, -2)單元格內(nèi)邊距 2px比原 GDI 版更緊湊但更穩(wěn)定SetBkMode(..., TRANSPARENT)背景透明避免文字重影必須配對(duì)恢復(fù)否則影響其他控件實(shí)測某工業(yè) HMI 系統(tǒng)在 i5-4300U Intel HD Graphics 上單頁 500×30 表格滾動(dòng)幀率從 8 FPS 提升至 42 FPS。4. 編譯與運(yùn)行從零配置 Delphi 2007 環(huán)境到成功加載 demo 工程別跳過這一步。v1.38 對(duì) Delphi 版本、RTL 補(bǔ)丁、甚至 Windows SDK 版本都有隱式要求。我在某客戶現(xiàn)場踩過三個(gè)坑全記錄在此。4.1 Delphi 2007 環(huán)境準(zhǔn)備最低可行配置必須使用Delphi 2007 for Win32版本 11.0.2902.10471。Delphi 2009 因 Unicode 字符串模型變更會(huì)導(dǎo)致cxSpreadSheetFormula.pas中大量PAnsiChar強(qiáng)制轉(zhuǎn)換失敗Delphi 2006 缺少Generics.Collections支持無法編譯cxSpreadSheetWorkbook.pas中的TListTCellAddress。安裝步驟安裝原版 Delphi 2007非 Update 1 或 2那些版本破壞了 VCL 的TCanvas兼容性打開 IDE → Tools → Options → Environment Options → Registry → 勾選“Use registry for component registration”否則cxSpreadSheetDsgn.dpk安裝失敗將DevExpress.ExpressSpreadSheet.v1.38.for.Delphi.BCB\Source\路徑加入 Library PathTools → Options → Environment Options → Delphi Options → Library → Library Path → 添加完整路徑。提示不要把Source\加入 Search PathSearch Path 僅用于{$I}包含Library Path 才用于uses單元查找?;煜邥?huì)導(dǎo)致編譯器找不到cxSpreadSheetTypes.pas。4.2 安裝設(shè)計(jì)時(shí)包c(diǎn)xSpreadSheetDsgn.dpk這是讓TcxSpreadSheet出現(xiàn)在 IDE 工具面板的關(guān)鍵在 IDE 中打開DevExpress.ExpressSpreadSheet.v1.38.for.Delphi.BCB\DCP\cxSpreadSheetDsgn.dpk右鍵包名 → “Options” → 在 “Description” 頁簽下確認(rèn) “Runtime only” 未勾選必須同時(shí)編譯 Design-time 和 Runtime在 “Requires” 頁簽下確保vclide50Delphi 2007 設(shè)計(jì)時(shí) RTL在列表中點(diǎn)擊 “Install” → 若提示 “Package cxSpreadSheetDsgn does not contain design-time resources”說明cxSpreadSheetDsgn.dpk的contains列表缺少cxSpreadSheetReg.pas手動(dòng)添加contains cxSpreadSheetReg in Source\cxSpreadSheetReg.pas, cxSpreadSheetDsgn in Source\cxSpreadSheetDsgn.pas;安裝成功后Component Palette 的 “Express Editors” 頁簽會(huì)出現(xiàn)TcxSpreadSheet圖標(biāo)。4.3 運(yùn)行 Demo 工程驗(yàn)證源碼完整性源碼包自帶Demos\目錄但默認(rèn)未編譯。推薦從最簡 demo 入手Demos\Basic\SpreadSheetDemo.dpr。編譯前必做三件事將Demos\Basic\加入 Library Path否則找不到cxSpreadSheetDemoData.pas在SpreadSheetDemo.dpr頂部uses塊中確認(rèn)包含uses Forms, cxSpreadSheet, // ← 主控件 cxSpreadSheetWorkbook, // ← 必須否則 CreateWorkbook 失敗 cxSpreadSheetFormula, // ← 必須否則公式不計(jì)算 cxSpreadSheetDemoData in Demos\Basic\cxSpreadSheetDemoData.pas; // ← 示例數(shù)據(jù)注釋掉cxSpreadSheetDemoData.pas中第 47 行的LoadFromFile(template.xlsx)該文件不存在改為Workbook : TcxWorkbook.Create; Worksheet : Workbook.AddWorksheet(Sheet1); Worksheet.Cells[1, 1].AsString : Hello from source!;運(yùn)行后應(yīng)看到一個(gè)帶標(biāo)題欄、工具欄、狀態(tài)欄的完整 SpreadSheet 窗口A1 單元格顯示 “Hello from source!”。此時(shí)你已站在源碼之上了。5. 避坑指南Delphi 開發(fā)者在編譯/調(diào)試/修改時(shí)踩過的 5 個(gè)真實(shí)血淚坑這些不是假設(shè)場景是我在三個(gè)不同客戶現(xiàn)場、用同一份 v1.38 源碼復(fù)現(xiàn)并解決的問題。每一條都附帶 IDE 截圖級(jí)現(xiàn)象描述。5.1 現(xiàn)象編譯cxSpreadSheet.dpk時(shí)卡在 “Compiling cxSpreadSheet.pas…” 10 分鐘無響應(yīng)原因cxSpreadSheet.pas引用了cxLibraryCore.pas而該單元在Lib\目錄下是預(yù)編譯.dcu但你的 Library Path 指向了Source\導(dǎo)致編譯器嘗試重新編譯cxLibraryCore.pas它本身又依賴 27 個(gè)其他單元形成環(huán)。解決將Lib\目錄非Source\加入 Library Path 頂部并確保其排在Source\之前。.dcu優(yōu)先于.pas被加載。5.2 現(xiàn)象修改cxSpreadSheetPaint.pas后運(yùn)行時(shí)斷點(diǎn)不命中且界面仍是舊效果原因Delphi 編譯器緩存了cxSpreadSheet.dcu即使你改了.pas只要.dcu時(shí)間戳新于.pas它就直接鏈接舊.dcu。解決在 IDE 中 Project → Options → Delphi Compiler → Compilation → 勾選“Build all units that are out of date”然后手動(dòng)刪除Lib\下所有.dcu文件再 Clean Build。5.3 現(xiàn)象雙擊單元格彈出編輯框但輸入中文后顯示為方塊原因TcxSpreadSheetInplaceEditor使用TCustomEdit其默認(rèn)字體為Tahoma不支持中文。而cxSpreadSheetPaint.pas中DrawText調(diào)用未指定字體沿用 Canvas 當(dāng)前字體通常是MS Sans Serif。解決在cxSpreadSheetEditor.pas的TcxSpreadSheetInplaceEditor.CreateEditControl中添加EditControl.Font.Name : Microsoft YaHei; EditControl.Font.Size : 9;并在cxSpreadSheetPaint.pas的DrawCell開頭添加ACanvas.Font.Name : Microsoft YaHei; ACanvas.Font.Size : 9;5.4 現(xiàn)象調(diào)用Workbook.ExportToXlsx(out.xlsx)報(bào)錯(cuò) “Invalid file format”原因v1.38 的 XLSX 導(dǎo)出依賴System.Zip單元Delphi 2007 不自帶而源碼中cxSpreadSheetExport.pas的TcxSpreadSheetXlsxExporter使用了TZipFile類但未在uses中聲明System.Zip。解決在cxSpreadSheetExport.pas的interfaceuses 塊中添加System.Zip若無System.Zip則需從 Delphi 2009 復(fù)制System.Zip.pas及其依賴單元System.Zlib,System.Classes到Source\并加入 Library Path。5.5 現(xiàn)象在TcxSpreadSheetView上按 CtrlHome 跳轉(zhuǎn)到 A1但OnCellClick事件不觸發(fā)原因OnCellClick是TcxSpreadSheet組件的事件而 CtrlHome 是TcxSpreadSheetView的內(nèi)部導(dǎo)航邏輯它不會(huì)主動(dòng)觸發(fā)組件層事件。這是設(shè)計(jì)使然非 Bug。解決監(jiān)聽TcxSpreadSheetView.OnSelectionChanged事件在其中判斷SelectedRange.TopLeft TCellAddress.Create(0,0)然后手動(dòng)觸發(fā)業(yè)務(wù)邏輯。不要試圖重寫ProcessKey。6. 二次開發(fā)實(shí)戰(zhàn)如何安全注入自定義函數(shù)并驗(yàn)證其在公式引擎中生效這才是源碼價(jià)值的終極體現(xiàn)——不滿足于“能用”而要“可控、可驗(yàn)、可交付”。下面帶你完成一個(gè)完整閉環(huán)注冊一個(gè)NOWSECONDS()函數(shù)返回當(dāng)前秒數(shù)整數(shù)并在單元格中調(diào)用它實(shí)時(shí)刷新。6.1 注冊函數(shù)兩處關(guān)鍵修改缺一不可第一步在cxSpreadSheetCalcEngine.pas中聲明函數(shù)原型找到TcxSpreadSheetCalcEngine類聲明在public區(qū)域添加type TNowSecondsFunc function: Integer; // 在 TcxSpreadSheetCalcEngine 類中添加 public function NowSecondsFunc: Integer;第二步實(shí)現(xiàn)函數(shù)體并注冊到引擎在cxSpreadSheetCalcEngine.pas末尾initialization之前添加function TcxSpreadSheetCalcEngine.NowSecondsFunc: Integer; begin Result : SecondsFromDateTime(Now); end; // 在 initialization 段中注冊搜索 initialization在其下方添加 initialization // ... 原有注冊代碼 RegisterFunction(NOWSECONDS, TcxSpreadSheetCalcEngine.NowSecondsFunc, 0, ftInteger);RegisterFunction參數(shù)說明NOWSECONDSExcel 公式中調(diào)用的函數(shù)名大寫無括號(hào)TcxSpreadSheetCalcEngine.NowSecondsFunc函數(shù)地址必須是function: Integer類型0參數(shù)個(gè)數(shù)NOWSECONDS()無參數(shù)ftInteger返回值類型ftInteger,ftDouble,ftString,ftBoolean。6.2 驗(yàn)證函數(shù)編寫最小化測試用例非 UI 方式不要依賴 UI 點(diǎn)擊去驗(yàn)證——那太慢且難 Debug。在cxSpreadSheetCalcEngine.pas底部加一個(gè)測試過程procedure TestNowSeconds; var Engine: TcxSpreadSheetCalcEngine; ResultVal: Variant; begin Engine : TcxSpreadSheetCalcEngine.Create(nil); try // 測試 1直接調(diào)用 ResultVal : Engine.Evaluate(NOWSECONDS(), TCellAddress.Create(0,0)); Writeln(Format(NOWSECONDS() %d, [Integer(ResultVal)])); // 應(yīng)輸出當(dāng)前秒數(shù) // 測試 2嵌套調(diào)用 ResultVal : Engine.Evaluate(NOWSECONDS()10, TCellAddress.Create(0,0)); Writeln(Format(NOWSECONDS()10 %d, [Integer(ResultVal)])); finally Engine.Free; end; end;在Demos\Basic\SpreadSheetDemo.dpr的Application.Initialize后添加TestNowSeconds; // 控制臺(tái)輸出需在 IDE 中 View → Tool Windows → Event Log 查看運(yùn)行后 Event Log 應(yīng)顯示類似NOWSECONDS() 42 NOWSECONDS()10 526.3 在 UI 中調(diào)用讓單元格真正顯示動(dòng)態(tài)秒數(shù)回到SpreadSheetDemo.dpr在創(chuàng)建Worksheet后添加// 設(shè)置 A1 單元格為 NOWSECONDS() 公式 Worksheet.Cells[0, 0].Formula : NOWSECONDS(); // 啟用自動(dòng)重算默認(rèn)是手動(dòng) Workbook.Calculation : calcAutomatic; // 強(qiáng)制首次計(jì)算 Workbook.Recalculate;此時(shí) A1 將顯示當(dāng)前秒數(shù)。但注意v1.38 默認(rèn)不自動(dòng)刷新公式——它只在Recalculate被調(diào)用或用戶編輯單元格時(shí)重算。要實(shí)現(xiàn)“秒級(jí)刷新”需啟動(dòng)定時(shí)器// 在窗體中添加 TTimerInterval1000 procedure TForm1.Timer1Timer(Sender: TObject); begin Workbook.Recalculate; // 每秒重算一次 cxSpreadSheet1.Invalidate; // 強(qiáng)制重繪 end;6.4 進(jìn)階技巧捕獲函數(shù)執(zhí)行異常并返回友好錯(cuò)誤如果用戶誤寫NOWSECONDS(1)傳了參數(shù)默認(rèn)會(huì)拋EVariantError導(dǎo)致整個(gè)公式返回#VALUE!。我們可以增強(qiáng)健壯性在NowSecondsFunc實(shí)現(xiàn)中添加function TcxSpreadSheetCalcEngine.NowSecondsFunc: Integer; begin // 檢查調(diào)用上下文是否有參數(shù)v1.38 未提供參數(shù)檢查 API我們用堆棧深度模擬 if Assigned(FCurrentContext) and (FCurrentContext.ParamCount 0) then begin // 返回 Excel 錯(cuò)誤碼會(huì)被顯示為 #NUM! Result : 0; Exit; end; Result : SecondsFromDateTime(Now); end;這樣NOWSECONDS(1)將顯示#NUM!而非崩潰。從那以后我每次給客戶交付 SpreadSheet 定制功能都強(qiáng)制走一遍“注冊 → 控制臺(tái)測試 → UI 驗(yàn)證 → 異常注入”四步閉環(huán)。不是為了炫技而是因?yàn)?v1.38 的公式引擎是黑匣子只有親手把它拆開、裝回去、再砸一下才敢說“這個(gè)需求我們能穩(wěn)穩(wěn)接住”。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
97这里有精品| 99RE在线视频精品,这里只有精品| 九九九久| 性爱AV天堂| 色呦呦呦在线观看视频| 国产sv美女内射| 丰满搜索结果 -第18页- 久久高清无码| 亚洲字幕一区二区| 国产精品不卡一区二区三区av| 欧美中文狠| 精品伊人久久久大香线蕉小说| 欧美高清91| 国产精品久久久久久夜夜夜| 国产亚洲日本精品在线| 日韩精品中文字幕一| 综合夜夜| 久久超碰97| 天天躁狠狠躁av| 炮色五月| 亚洲天堂中文字幕无码男同| 91强奸乱轮| 青娱乐淫乱1314| 另类图片五月天| 欧美日韩少妇色情| 男人的天堂kva| 色哟哟-国产专区| 丝袜美腿制服人妻二区中文字幕| 久久91视频| 日韩熟女无码| 凹凸视频在线一区二区| 999久久久免费精品国产牛牛| 超碰久久网| 国产精品肉丝自拍| 91视频观看网站| 狠狠操综合| 成人免费不卡在线视频| 丁香五月性| 欧美精品久久久久久久久88| 自拍偷拍第26| 欧美东京热精品A∨| av最新免费中文字幕| 中文字幕美女91| 国产真实子伦对白| 欧美Ⅴ性爱| 97免费视频在线| 亚洲激情深爱文学小说网站| 殴美色网| 啪啪资源网| 91被操| 亚洲啪啪综合?v一区综合精品区| 少妇激情一区二区三区视频| 国产高清自拍视频| 97久久超碰| 91丝袜| 99久久国产精品免费高潮| 99re免费| 亚洲āv网址在线观看| 久操精品| 欧美一区二区三区另类精品| 色综合久久久久| 另类天堂| 久久成年精品| 欧美第一页| AV久日| 老司机福利社视频在线观看| 国产强奸乱伦第1页| 欧美亚洲自拍另类人妻| 蜜乳av一区二区| av无码av无码专区| 97色干| 欧美专区第一页| 蜜臀人妻少妇久久在线观看| 2010男人的天堂| 欧美制服另类丝袜| 少妇特黄一区二区三区| 97超碰欧美精品| 熟妇综合一区二区三区| 婷婷五月天激情网| 混色激情av| 亚洲成人精品久久久| 亚洲鸥美色图| 欧美姓爱综合网| 啪啪性爱免费视频| 动漫爆乳3D奶水一区在线观看| 强免费黄色网址| 色性荡荡荡荡视频| 国产精品第一页国产大屁股视频免费区i | 99久在线精品99re8a| 97视频620| 欧美第二页午夜| 熟妇人妻丰满久久久久久久无码 | 婷婷久久五月| 性生活无遮挡纯毛片在线看| 漂亮人妻被强中文字幕hd| 久久一二三四| 国产精品自在线发布| 欧美淫穴| 久久97精品久久久久久久不卡| 国产无吗在线播放| 日韩精品国产精品五码一区二区| 制服诱惑亚洲一区二区三区在线观看| 97人人夜| 五月婷婷六月丁香网址| 1024久久高清视频| 91综合天天看| 久久精品一区二区三区不卡| 色五月激情AV在线| 亚欧毛片基地国产毛片基地| 久久性爱视频| 高潮9999外国| 欧美熟女操屄| 午夜福利区| 伊人骚琪琪亚洲天堂网站| 乱伦Av网| 9I1性色影院| 淫荡熟女乱伦网| 亚洲天堂色图| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 97色视频在线| 成全动漫视频观看免费下载| 色婷婷影视| 黄色十八禁| 激情黄色片在线观看| 天天干天天干天天| 人妻精品一区二区| 色激情五月天| 精品丰满熟妇人妻一区| 爆操无码| 人妻熟女一区二区三区视频| 精品性爱一二三区| 91视频综合在线| 亚州操逼图| 欧美亚洲丝袜美女电影| a片久久久久久久久久久久| 青青草中文-久久青草精品一区二区三 | 国产综合久久久麻桃个| 超碰九色| 色欧美在线| 在线99热| 97这里有精品| 欧美亚洲20p| 亚洲A曰本VA欧美VA视频| 麻豆 欧美 日韩| 欧美国产婷婷久久| 91红杏| 天天视频黄| 性色中出| 91啪啪视频| 亚洲男人的天堂va亚洲男人社| www久久99| 综合色欧美| 欧美后进式| 国产视频第二页| 日韩免费人妻色情网站| 欧美日韩*字幕一区| 爱爱久久| 婷婷六月色开| 一中国女人毛片水真多| 97国产天堂岛| 五月丁香激情综合网| 欧美92| 久久久九九网站| 96麻豆精品一区二区三区| 在线可观看的黄色网址| 色欧洲| 77国产精品| 国产欧美亚洲精品a第2页| 九九超碰综合网| 色色婷| 欧美日韩在线视频网站| 日韩熟女视频二区| 国产黄a三级三级三级av在线看 | 国产亚洲人妻综合日韩 久久| 日少妇视频| 欧美激情久| 久久XX| 大象AV在线| 99热大香蕉伊在线| 成人网欧美风情| 中日韩熟女| 搡老女人老熟女91老熟女综合网| 精品超碰中文在线| 国产精品制服丝袜清纯唯美 | 国产网红精品| 成人羞羞视频国产| 亚洲精品蜜桃久久久| 一区二区三区网站日日骚| 正在播放国产精品一区| 日本天天干天天操一区| 2019亚洲男人天堂| 青草影院内射高潮| 艳尻美人妻| 婷婷99狠狠| 性爱综合一区二区| 91视频在线观看18| 人人操人人射人人干| 久久本道| 亚洲国产精品久久久久久久久久| 国产99久久99热这里只有精品15| 亚洲精品一区二区精品| 操国产逼| 中日韩免费看男女操逼大全| 色路综合| 亚洲综合嫩| 中文字幕诱惑制服人妻丝袜美丝袜美 | 激情小说在线视频| 热99这里有精品综合久久| 综合97久久| 啊啊啊啊在线观看网址| 欧美se亚洲| 日日夜夜干| 99爱爱| 性爱乱伦一区| 五月婷婷六月丁香| 乱论91| 日韩欧美午夜一区二区| 操啊国产| 欧美日韩大黄片| 午夜视频久久久久一区| 男女做爰猛烈动高潮A片免费应用| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 国产成人主播| 午夜福利区| 青青草密桃在线播放| 99在线精品观看99| 97久久精品亚洲| 91狠狠综合久久| 亚洲日本加勒比在线| 色天欧美| 中出人妻中文字幕91在线| 亚洲色欲一区二区三区| 极品少妇99| 97天天操天天干| 成人精品视频一区二区| 神马久久网| 国产精品久久久久久久久久久久久久久久 | 亚洲 欧美 日韩 国产一区二区| 校园春色五月天| 欧美片第一页| 亚洲成人久久一区二区| 九九热免费视频| 2020视频1区2区3区| 思思99热| 日韩精品怡红院| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 亚洲国男人的天堂| 亚洲综合码| 久久综合超碰| 麻豆亚洲AV成人无码久久精品| 久久久无码视频| 久久久久亚洲AV无码专区少妇| 日本东京热加勒比久久| 五月婷色| 极品内射| 国产馆| 国产成人网站在线观看| 在线观看AV片| 亚洲一区二区在线观看91| 日韩操啪| 久久久精品成人国产| 九九九九久久久| 亚洲美女30b| 欧美激情精品久久久| 亚洲人天堂| 夜夜操天| 欧美资源| 无色无码| 好吊色一区| 九99久久| 久久久久久电影| 九九RE视频在线精品| 清清一区二区三区四区不卡视频| 夜夜操av亚洲一区二区| 91岛国动作片| 最新的亚洲无吗| 大胆91| 久99久视频精选| 综合97久久| 久久精品无码专区| 91精品啪在线观看国产城中村| 欧美|91色综合| 欧美综合第一| 性欧美91| 亚欧国产无码精品在线| 熟女高潮合集-永久久久-成人AV| 久久亚州大香蕉| 国产精品露脸在线观看| 中文字幕 一区二区 亚洲无码| 人人妻人人色一区二区三区| 一本精品日本在线视频精品| 97人人干人人操| 久神马| 熟妇综合一区二区三区| 宅男91视频在线播放| 骚女天天综合网| 熟妇xxxxx性春色| 日韩三级久久久| 欧美综合色图网| 五月天婷精品激情| 91日产欧美| 国产精品黑人一区二区三区| 欧美中文字幕男人天堂久久精品| 欧美美女视频| av资源在线播放天堂| 欧美大干日韩| 日本一区视频在线观看| 亚洲色91C| 青草精品视频-日本久久久久网站| 日本肏逼视频在线观看| 蜜桃狠狠色伊人亚洲综合 | julia ann久久| 九月激情婷婷| 亚熟hd视频在线| 浓厚中出中文字幕在线| 久久久久久中文版| 亚洲精品啪视频| 国产三级资源在线观看| 日本不卡二三区| 囯戸精品高潮呻吟旡码| 97色涩| 91精品人| 诱惑人妻欧美一区在线播放| 色色色欧美| 国产视频第2页| 国产精品嫩草影院免费| 青青草啪啪网| 天天躁日日躁成人字幕aⅴ| 爱干爱射网啊啊啊| 美女操逼福利视频| 欧美伊人电影| 精品美女在线视频| 人人透人人操| 试看日韩黄片| 欧美大色交| 中文字幕av乱伦| 男人天堂资源| 97 九色| 欧美大香蕉专区网| 天天综合网~91| 色偷偷色偷偷欧美日韩| 九九成人| 91精品久久久| 91性网| 观看视频图片一区二区三区| 久久天天艹| 97在线资源| 中日韩熟女| 91精品人妻一区二区三区蜜臀| 超碰亚洲97| 日韩性爱一级片| 欧美在线色| 91社操逼| 国产精品一区二区久久精品| 老鸭窝成人| 天天操女人| yiqicaoav| 舔舔啊| 国产又黄又猛又粗又爽的网站| 自拍偷拍亚洲熟女妇人精品| 日本最新1区2区3区| 亚洲天堂,男人| 国产91精品福利在线| 日本三级精品| 在线黄色污污网站| 欧美性性性| 人妻 欧美 中文| 婷婷色网| a网站免费观看| 懂色天天爱天天日天天射天天澡| a'v在线资源| 国产91丝袜在线播放蜜月| 99999精品成人| 人人摸人人干| 欧美日韩第一页| 欧美第二页| 插入粉嫩少妇视频| 黄呦呦在线| 人人喜人人妻| 久久免费老司机精品| 国产成人无码网站在线视频| 亚洲一区中文精品| 国产一级内射高清视频 | 久操黄色视频| 欧美午夜精品久久久久久3D| 色色99| 久久免费精品视频免一| 欧美色性爱| 在线观看无码三级少妇| 岛国1区2区3区在线观看| 七月婷婷综合| 人人弄人人摸| 脫衣舞一区二区三区| yellow网站免费观看日韩高清无码| 亚洲精品一区二区精品| 欧美,日韩,亚洲视频| 国产精品永久免费10000| 伊人网免费视频| 青草综合| 免费自拍三级综合| 国产亚州精品美女久久久免费| 久久肏大逼| 99热思思| 青青草视频导航官网| 国产亚洲日本| 伊人欧美大香蕉视频| 欧美亚洲今日在线| 亚洲伊人a线观看视频| 色欲无码人妻日韩欧美精品| 亚洲麻豆18发?| 农村少妇久久久久久久| 婷婷av在线中文字幕| 收看日本人日bb| 欧美麻豆成人同性GⅤ在线| av一区二区三区 中文| 懂色AV一区二区三区| 天天日日日射| 蜜桃天美传媒AV一区二区三区| 9久久精品| 91精品久久久久五月天精品| 色色99| 国产传媒美日韩av| 久久久性少妇| 国产精品久久天天干| 亚洲免费人妻在| 亚洲色堂免费视频| 亚欧美色图| 男人的天堂网页| 午夜电影在线观看无码专区| 亚洲欧洲视频小说在线观看| 亚欧操逼片在线观看| 国产强奸乱伦欧美| 久久久国产成人一区二区三区在线| 日韩女优中文字幕| 久久久极品| 国产一进一出视频网站| 久草精品热视| 欧美色91| 丝袜美腿制服人妻二区中文字幕| 久草婷婷| 成人线上超碰| 色婷五月天| 青青草国产一区二区三区| 综合伊人网12色| 69人妻精品一区二区绯色| 久久99草| 日韩人妻一二三区视频| 春色校园综合网| 麻豆天美一区二区| 激情五月婷| 日1区2区3区2020| 美国人人操人人操| 久久综合av| 久久无码一区二区二三区性色| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 色哟哟av| 色色色色综合网| 十八禁一区二区无码观看| 2021国产成人精品久久| 夜夜高潮夜夜爽夜夜爱爱一区| 99热99在线播放激情| 麻豆AV短剧| 成年无码动漫av片无尽在线| 殴美牲| 亚洲色欧美| 96久久科窝| 99精品人妻| 96精品在线| 东京热双插| 亚洲色人妻综合| 国内伊人久久久久久网站视频| 亚洲男人天堂2019| 色牛aV| 日本三级人妻a人妻一在线| 婷婷久月| 嗯……啊…嗯嗯…啊…好舒服| 久久超碰97| 国产自产91区13区| 国产午夜在线观看视频| 操亚州| 国产剧情AV不卡在线观看| 破处bbq| 中文字幕性感少妇av| 日韩无码服务区| 2024人人操人人摸| 亚洲97综| 亚洲Av噜噜一区二区三区妖精| 欧美黄色大片在线观看| 国内外毛片在线观看| 色小视频蜜乳| 中文字幕三四区| 夜夜騷av、一區二區| 思思热久久成人| 久久久久久久久久久精| 男人的天堂2019AV| 国产又猛又粗又爽又黄| 久久网亚洲| 麻豆精品久久久久久久| 亚洲AV秘 精品久久老牛影视| 亚洲好色人妻| 男人天堂站| 久久91精品国产9丨久久分亭| 欧美丰满少妇交换91欧美精品| 性高潮久久久久久久久久久| 久久久久久性爱片| 亚洲第2页| 啊啊啊啊好疼| 日韩天天本| 天天综合精品| 欧美老妇曰批的视频| 97亚洲自在精品在线观看| 伊人国产av| 无码日韩网站| 翔田千里AⅤHD无码| 日韩欧美久久婷婷网站| 800zy一区二区| 天天操天天舔| 熟女这里只有精品6| 精品无av| 龙兴卡官方查询| 97香焦色区| 国产欧美日韩精品中文| 国产AAAAAABBBBB| 91美女精品| 另类视频在线| 极品粉嫩一区二区| www.久久| 免费a在线播放v| 啪啪啪东京| 综合 亚洲 欧美| 99最新日韩偷拍视频| 欧州激情视频在线一区二区| 青青国产精品在线| 五月激情在线| 静品嫩模一区二区| 综合 欧美 亚洲 日本| 九九九九精品九九九九| 色97欧美| nuu12国产麻豆精品| 色九九九九| 九一综合精品视品av| 婷婷午夜| 天天爽天天操| 噜噜在线| 五月丁香成人网| 人妻少妇av在线观看| 操逼啊啊啊91| 日本高清_区二区三区 | 很狠操| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 日韩免费在线观看不卡| 夜夜一区二区| 一区二区激情国产熟女 | 中文 人妻 制服| 91痴汉| 玖色av| 综合欧美色图| 色妺妺AⅤ| 国产精品乱码久久| 无码天堂| 欧美成人A√在线一区二区| 男女无套 免费网站| 97亚洲精品| a亚洲欧美色欲| 午夜视频久久久久一区| 国产精品美女在线一区| 新婚人妻扶着粗大强行坐下| 日本福利二区视频| 9 9精品一区二区三区| 色播五月丁香| 91 国产丝袜在线放观看| 啊啊啊好湿久久| 秋霞午夜视频一区二区| 欧美极品色| 日本幼女18+| 婷婷五月天激情四射| 蜜臀一区二区三区在线| 思思热免费在线视频| 黑人嘿嘿嘿超爽免费视频| www.色婷婷色综合| 欧美第一页性| 激情黄色五月天| 精品国产a∨一区天美传媒| 搡老女人老91二区| 人人操我人人干| 岛园激情| 伊人大香蕉在线| 精品九九淫乱男| 日日夜夜骑| 色欲Av人妻精品一区二| 色色福利| 91九久| 五毛骚逼极品美女怕怕| 超碰人妻97| 91午夜无码| AV大香蕉| 91精品国产乱码| 99av| 亚洲成人美女无吗| 久久久精品国产亚洲伊人| 一区二区三区无卡视频在线观看| 99999亚洲另类| 美女操逼A A| 超碰在线看| 欧洲与亚洲欧美精品中文字幕| 中日韩久久久免费看| 精品无码秘 人妻一区二区| 欧美日韩国产高清在线一二三区| 狠狠中文字幕| 在线播放中文字幕| 国产亚洲精品美女久久久| 九九色色| 国产外初女出血视频| 激情小说图片亚洲首页| 99在线精品视频| 大香蕉伊然在亚洲91| 中文乱码字字幕在线第5页| 97欧美性爱| 久草精品国产蜜臀| 精品视频在线观看精品| 色五月婷婷中文字幕| 亚洲精品 欧美精品| 欧美不卡五十路| 爱爱60秒免费视频| 一级AAA片一区二区三区| 亚州免费啪啪视频| 亚洲自拍欧美国产首页网曝| 精品人妻一区二区三区在| 超碰人人草| 91精品久久久久久77777| 一级岛国大片| 国产专区路线| 日韩啊V| 天天摸,夜夜摸| 日韩91网| 欧洲熟妇xxXx欧美老妇裸体 | 亚洲精品人妻吞精av| 东京热精品97综合网| 国产乱伦视频污| 殴美牲| 日本加勒比无码专区| 欧美人人AAA| 国产精品久久久久久夜夜夜夜| 国产亚洲精品无码三区| 欧美日韩电影一区二区| av一区二区三区不卡| 久悠悠av| 人人模人人看| 夜夜嗷嗷一区二区| 熟女这里只有精品6| 国产传媒美日韩av| 无码区蜜乳| 一级黄碟在线看| 国产宅男宅女在线观看| 日韩不卡网操逼中文字幕日韩| 黄色av网站在线播放| 日韩精品第3页| 午夜超爽| 五月天人妻综合| 成人丁香五月| 欧美亚洲综合高清在线| 91丝袜美女| 久久成人国产精品| 久久久久无码一妻区| 91成人在线免费视频| 国产后入式在线观看| 五月丁香| AAAA欧美日韩| 亚洲伊人久久精品影院| 超碰九色| 老熟妇乱轮| 粉嫩小泬久久久一区二区| 加勒比久久综合网高清| 精人妻一区二区三区| 激情一区二区三区在线观看| 日本αv| 欧美在线 亚洲| 97人人操人人干| 日本色色色网站免费看不卡| 欧亚久久偷拍视频| 国产伦乱91| 凹凸精品熟女在线观看| 二三四区精品| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 日韩丝袜人妻AV| 99re国产精品视频| 欧美日韩小说| 综合亚洲情色| 久久老子无码午夜伦不卡| 免费观看日本操逼视频| 一级黄碟| 混色激情av| 日本午夜操逼| 精品人妻中文字幕高清| 国产精品在线一区二区| 亚洲欧美九九| 国产午夜无码片在线观看影视| 啊啊啊啊好爽好舒服一区二区易域| 欧美日韩人人精品| 午夜色婷婷| 国产成人无码a| 精品久久久久综合无码| 粉嫩久久久久| 四月丁香婷婷| 五月婷色| 两性综合网| se吧提供国产乱老熟视频胖女人| 国产精品农村妇女| 加勒比海成人视频网| 欧美黄页在线| av国产无码| 国产精品一区二区校花| 亚洲色婷婷久久91| 国产成人五月天丁香花| 欧美日韩97在线| 97精品97| 丝袜性亚洲| 狠狠中文字幕| 六月丁香网| 精品性爱无码在线播放| 18禁免费视频| 自拍内地三级在线观看| 亚洲动态色图| 日韩大香蕉AV影片| 中文字幕福利视频一区二区三区在线观看| 传媒免费一区二区三区| 亚洲不卡不卡中文字幕不卡| 97超碰国产亚洲精品资源| 大香蕉乱伦视频网| 乱老女人一区二区视频| 亚洲精品aa久久伊人| 99在线无码精品秘 入口黑人| 久久这里只精品免费福利| 超碰在线一区二区三区| 东北熟女91| 亚洲久久久久| 国产久久一区二区午夜| 成人一区二区三区四区| 国产区91柔拿会所技师| 久久综合国产精品国产| AAAA欧美日韩| 免费观看成人www精品视频| 综合色好色| 诱惑网综合| 久久久96| 日韩av在线精品观看| 日韩肏逼视频| 精品国产Av无码久久久亚洲| 亚洲欧美国产中文视频| 51国产午夜精品视频| 亚洲欧美一区二区网址| 91一区二区三区蜜桃| 精品国产三级av韩国在线| 人妻偷拍一区二区三区| a一区二区三区乱码在线| 国产日韩在线播放av| 亚洲天堂一区二区久久| 日韩 欧美 视频 在线 一区| 亚洲图片欧洲图片aⅴ| 粉嫩不卡一区二区性爱| 中文字幕一区日韩精| 超碰在线99| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 婷婷五月天激情网| 免费看日本操逼视频| 人妻丝袜无 码视频专区| 欧美制服网站美腿丝袜| 亚洲综合小视频小说在线观看 | 亚洲最大网站av| 九九在线精品| 97色97好| 国产精品一二三| 久久少妇| 99re公开精品免费视频| 超碰av在线| 4141514逼喷水三级片| 亚洲性少妇| 三及片网站| 亚洲精品乱码线路中文字幕| 国产无码一二三区| 国产av白丝| 热热色色综合| 粉嫩av在线| 动漫片子网站3黄| 日韩精品三级片长长久久| 99rre在线精品99re8| 黄片视频观看| 日本色婷婷| 狠狠搞 亚洲91| 亚洲精品蜜桃久久久| 夜夜草天天| 婷婷99| 久久国产精品熟女人妻| 亚洲色交| 中文字幕成人理论在线| 亚洲人成色9999精品久久| 伊人久久亚洲色欲综合网站| 亚洲日韩国产精品| 久久精品国产亚洲AV成人直播| 日韩在线视频1234| 九九九九精品在线| 日韩人妻制服丝袜av| 超碰资源亚洲97| 久久国产精品视频| 人人操人人操人人人操| 色香阁在线| 限制级中的三级片中的黑粗大屌屌日人妻熟女 | 亚洲毛片一级带毛片基地| 青青网三级视频| 亚洲精品97p| 91午夜无码| 天天香香欲综合| 亚洲资源站| 无码自拍SM| 福利大香蕉| 国产51色综合久久免费| 99.色网| 午夜精品久久99蜜桃的功能章节| www.av在线观看| 先锋音影AV| 亚洲日韩视频二区| 91网站18在线观看| 夜色91| 色色操| 久久久偷拍| 激情综合婷婷| 大香蕉2017| 亚洲aV性爱| 国产精品午夜精品| 日本人人操人人操| 日日噜噜夜夜久久亚洲一区二区| 一级二级三级黑人无码| 自拍丝袜美腿人妻| 免费A片三p视频| 香一区二区三区| 深夜福利黄片| 中文字幕一二三区| 亚洲天堂在线怕怕视频| 99国产精品在线观看| 久久精品国产Aⅴ| 亚洲精品丝袜| 五月丁香六月综合缴清无码 | 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 青草av在线| 青青草原伊人网| 五月天成人综合| 男人精品区| 国产馆极品诱惑| www.色吧5.com| 2000亚洲男人天堂| 国产三级日产三级韩国三级 | www.激情| 99999精品| 看黑丝美女操逼青青网站| AA级电影三区| 一本色道久久综合熟妇| 婷婷AV一区二区三区| 好涩综合| 成人精品在线免费视频| 欧美AB在线观看| 99久久久无码精品国产人| 91久久国外网| 久久久爆乳翘臀一线天伦理视频| 麻豆三极片| 久草在| 五月婷婷爱六月丁香色| 亚洲全色网| 欧美 牲| 91色婷婷综合久久中文字幕二区| 91综合熟女| 天天天乱色综合全| 国产一区二区三区影片| 久草午夜| 丝袜色综合| 午夜免费视频1000| 国产成人无码a| 四虎免费在线播放| 蜜桃久久久久久久| 欧美日韩操操操| 91天天综合网| 日本黄色XXX| 熟妇最新先锋一二三区| 青青操综合网| 激情小说在线视频| 精品成人女人久久| 东京热激情视频一二三区| 亚洲囯产精品女人久久久| 97久久久久| 都市激情人妻一区二区青青操视频| 色婷婷综合网站| 国产最火爆久久国产网站网站| 亚洲激情欧美色图 | 日韩欧美性爱电影在线观看| 黑人精品久久97| 看看小穴| 亚洲国产成人高清在线| 国产在线激情视频| se..亚洲欧美| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 日本不卡高清视频| 花花AV导航| 亚洲人人夜夜澡人人爽| 中美日韩毛片| 综合色图区| 久久东京国产精品视频| 国内精品a| 91精品人| 97亚洲中文| av橘色网站| 射丝袜大香蕉| 国产日韩人人| 国产天天骚| 一二三四免费视频| 高清在线偷拍自拍视频| 亚洲高清无码在线桃色| 无码免费在线观看黄色片| 午夜精品久久久| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 精品国产一区二区三区在线播出| 亚洲国产97| 蜜屁av| 亚洲中文字幕久久无码精品| 草莓精品视频在线免费观看| 1区2区3区视频| 粉嫩av一区二区三区天美传媒| 欧美激情亚洲情色| 久久亚洲色图中文字幕| 操B久久| 禁十八久久| 久插综合| 99在线观看无大码| 国产成自自拍在线观看| 亚洲五区熟女| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 国产欧美日本亚洲精品| 亚洲国产丝袜熟女av| 上特色A在线| 91色拍| 神马久久久久久| 欧差乱伦二三| 亚洲人成网站7777| 秋霞一级鲁丝片A片| 亚洲欧美高清无码| 日韩欧洲操屄视频| 波多野结衣被操50分钟免费视频| 成人性爱av| 国产不卡免费在线视频| 美中日韩无码| 亚洲综合色婷婷| 久久人妻办公室视频| 91精品国产综合久久久蜜臀| 亚洲AV免费在线观看| 五月天伊人| 91综合国产精品| 好爽要喷了| 密臀视频三区免费网站| 亚洲天堂欧美| 大学生口爆吞精| 日韩av一级黄片| 99精品在线| 视频在线观看一二三区| 磁力99AV| 亚洲欧美激情小说| 国产女人视频三四五区| 久久双插| 亚洲色图亚洲无码强奸乱伦| 久久婷婷五月综合| 日本免费不卡二区| 综合视频91| 欧美激情在线观看视频| 欧美色综合| 91快色色色色色| 久久极品伊人| 久久久久久久久久黄色网| 国产精品69久久久久孕妇欧美| 无码人妻一区二区三区四区老鸭窝| 国产 日韩 欧美一区| 啪一啪免费视频| 久久精品人体AV| 98精品国产乱码久久久久久| 色婷婷日韩精品一区二区三区| 国产9区| 欧美黑人精品一区二区| 蜜臀久久99精品久久久久久久久| 久久久久9999妇女| 蜜臀久久99精品久久久久久成人小说 | 免费一级欧美片片线观看| 天天干2019| 福利大香蕉| 亚洲国产成人7777| 天天色播| 亚洲91网站| 久久天堂| 人人色人人操在线| 啊啊啊啊操死我了| 超碰人妻97| 国产精品久久成人免费| 亚洲熟妇乱女区二区三区| 久久亚洲天堂| 欧美 精品国产制服第一页| 综合久| 芊芊操逼视频无码| 成人 日韩欧美一区| 2019亚洲男人天堂| 韩国三级一线观看久| 伊人五月天| 人妻素股| 午夜一区二区三区国产| 日本不卡三级网在线播放| 日日摸日日弄日日拍| 欧美丰满少妇xx高潮| 97精品国产97久久久久久户外免费| 激情另类激情| 婷婷丁香五月天亚洲天堂网| 久久超碰亚洲人| 探花精品 一区二区| 色情五月综合婷婷| 国内一区二区三区| 午夜福利精品| 色www精品视频在线观看| 偷拍 欧美 日韩| 少妇蜜汁| 国产呦精品系列在线观看| 涩五月婷婷| 偷偷人人精品女女久久| 亚洲欧美日韩精品久久久一区二区| 丰满少妇高潮无码| 浓厚中出中文字幕在线| 久久欧美1卡2卡3| 亚洲国产丝袜熟女av| 青青草中文-久久青草精品一区二区三 | 激情在线青青操| 黄网在线播放| 精品人妻少妇| 婷婷五月激情综合| 传媒在线观看一区二区三区| 天天天天天干夜夜夜夜夜操| 亚洲日本大香蕉1| 天堂8在线新版官网| 蜜桃香蕉久草精品在线| 人成午夜免费大片| 热热色国产一二区AV| 免费操逼视频下载| www.acm成人黄色毛片| 国产成人精品亚洲日本| 久久久久女教师免费一区 | 久久久性少妇| 久久激情网| 9久久久久| 乱理日韩中文| 天天草夜夜草高潮片| 少妇精品久久久| 午夜精品久久久久久久99蜜桃一| 骚日日av| 亚洲色鬼| 成人26uuu| 夜夜操中文字幕| 丰满的三级少妇欧美久久久| 亚洲色交| 磁力99AV| 日本肏逼视频在线观看| 久草这里只有精品| 少妇一区二区三区在线观看| 嗯啊视频免费在线观看| 果冻传媒一区二区三区| 色婷婷成人| 亚洲成a人v欧美综合天堂下载 | 亚洲国产一级精品毛一级精品看免费视频| 色香综合天天影视综合 | 国产精品懂色tv影视免费观看| 91精品成人| 国产又操| 免费岛国一级片| 日日骚精品视频| 色婷亚洲五月在线观看| 搡老女人老91妇女老熟女| 亚洲精品国产av天美传媒| 日本精品一区二区中文字幕| 久久 精品| 动漫av中文| 大奶啊啊好爽| 成人麻豆av电影网站| 啊啊啊啊免费视频| 秋霞午夜视频一区二区| 丁香色色网| 无码区蜜乳| 97se亚洲综合自| 麻豆 亚洲 97| 成人婷婷丁香| 久久精品国产亚洲AV嘿嘿| 亚州综| 亚洲人码13| 少妇国产不卡| 欧美日韩中文亚洲v在线综合| 黄片www视频免费| 羞答答AV中文字| 欧美三级免费伊人| 日韩一级片| a一区二区三区乱码在线| 舔足天天操天天射| 尤物视频网 刘玥| AV一二区| 五月天激情网站| 国产综合永久精品日韩鬼片| 2024黄色视频| 欧洲亚洲人妻无码久久三区四区| 精品视频97| 大香樵伊人网| 亚卅熟女乱色| 国产欧美精选激情视频| 97久久超碰| 超碰色图| 欧美日韩精品久久久久东北老熟妇| 91亚州欧美| 日韩女优中文字幕| 伊人激情| 欧美在线中M| 10000部十八禁看电影| 亚洲 综合 欧美| 在线另类| 久久久九九网站| 日韩AV无码中文一区二区| 第四色奇米影视777| 亚洲阿v天堂在线| 91欧美综合| 性欧美91| 美女黄色91| 国产欧美日产一区二区三区 - 国产欧美日| 求求你操操我| 艾草av| 亚洲免费精品一区| 校园春色之综合网| 久久久无码国精品无码三区三区| 777奇米影视777四色| 岛国AB视频| 国产福利在线视频网站| 国产中文大片资源中文字幕| 一级二级三级黑人无码| 久久久久无码| 新怡红院| 日韩电影中文字幕| 久久9免费视频| 死我十八禁| 久久风骚城市| 久久9免费视频| 99热在线只有精品| 无码二级三级| 少妇无码999| 熟妇熟女一区二区三区| 精品人妻一区二区三区在线视频不卡| 激情综合 婷婷五月 红杏| 欧美综合色,www| 女人综合网| 一级一性爱免费视频| 四虎国产精品永久在线囯在线| 欧美巨大性舒爽顶到了| 波多野42部激情无码喷潮| 收看日本人日bb| 围产精品一区二区三区视频播放| AV无码久久久精品| 亚洲成人免费在线|