線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1821
推到 Plurk!
推到 Facebook!

29DelphiMicrosoft Excel往寫上時的應用常例

 
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-29 14:25:04 IP:61.221.xxx.xxx 未訂閱
此為轉貼資料 http://trans.myany.com/Trans/tw/Trans.asp?ToLanguage=0&url=http://www.souyanet.ne.jp/~iskouzi/delphi.htm    -------------------------------------------------------------------------------- 2001/05/29DelphiMicrosoft Excel往寫上時的應用常例。 構造事務工作Excel數據必要腹足類裡因為記內部與方便。 平時、Delphi奔使用TableParadox辦法也是有因為、這樣的程序必要的。 這種東西說、Excel直接被讀的裡、不被改變象﹒﹒﹒。 另外、最後的國標碼清晰的一定寫上象請。 必要部分水色    procedure TTougouForm.SpeedButton2Click(Sender: TObject); var   TestNum, i, CalcNum : integer;   Zei : double;   SM : string;   K_Code : integer;   Excel, WorkBook, WorkSheet : variant;   j, RowNo : integer;   WorkDir : string; begin    //Excel座編制   CopyFile(PChar(GetCurrentDir + '\DATA\Init_YAT.XLS'), PChar  (GetCurrentDir + '\WORK\' + GetCode.Text + '_YAT.XLS'), True);   WorkDir := GetCurrentDir + '\WORK\' + GetCode.Text + '_YAT.XLS';   Excel := CreateOleObject('Excel.Application');   Excel.Visible := False;                                  //Excel不表示   Excel.WorkBooks.Open(WorkDir);   WorkBook := Excel.ActiveWorkBook;   WorkSheet := WorkBook.Sheets['Sheet1'];   YatyouTable.First;   RowNo := 1;   for j := 0 to YatyouTable.FieldCount - 1 do     WorkSheet.Cells[RowNo, j + 1].Value := YatyouTable.Fields[j].FieldName;     YatyouTable.First;     while not YatyouTable.Eof do       begin         PBar.Position := PBar.Position + 1;         RowNo := RowNo + 1;         for j := 0 to YatyouTable.FieldCount - 1 do           WorkSheet.Cells[RowNo, j + 1].Value := YatyouTable.Fields[j].AsString;         YatyouTable.Next;       end;     Excel.ActiveWorkBook.Saved := True;           //保存偶爾確認不表示     Excel.ActiveWorkBook.Save;                       //Excel數據保存     Excel.Quit;                                              //Excel終了     Excel := Unassigned;                                 //國標碼的清晰的     WorkBook := Unassigned;                           //國標碼的清晰的     WorkSheet := Unassigned;                         //國標碼的清晰的 end;   2001.04.14 程序編制上乘怎麼也huro?棒球往的數據移動﹒保管必要腹足類裡、怎麼也容量確切無理討厭因為記載在下邊的元件使用看正下面。 元件內在的理解不能的記述多□有啊使用上乘沒關系討厭。   >> 【作品通稱】統一a一個Iba元件 for Delphi v1.28  >> 【書庫通稱】CMARC128.LZH  >> 【書庫Size】73,470 Byte  >> 【作者姓名】米田 昌司 ( NORG1964 )  >> 【MAIL】norg1964@ceres.dti.ne.jp  >> 【作者 URL】http://www.ceres.dti.ne.jp/~norg1964    以下上述元件利用底下我編制的程序的部分介紹。    procedure TForm.SpeedButtonClick(Sender: TObject); var   ArchiveFile : TArchiveFile;   FileList : TStringList;   cond : integer; begin   Beep;   if MessageDlg('huro?棒球往壓縮備份使安靜下來。確認請。', mtInformation, [mbCancel, mbOk], 0) = mrOk then begin   Refresh;   if not DirectoryExists('A:') then     begin       Beep;       MessageDlg('軟盤被插入沒有嗎、格式化還未做huro?棒球的表面。 確認請。', mtError, [mbOk], 0);     end   else     begin       ArchiveFile := TArchiveFile.Create(Self);       FileList := TStringList.Create;       try       ArchiveFile.FileName := 'A:\Data.LZH';       ArchiveFile.ArchiverType := atLha;       FileList.Add(GetCurrentDir + '\DATA\*.*');       cond := ArchiveFile.PackFiles(Handle, nil, '', FileList);       finally         ArchiveFile.Free;         FileList.Free;       end;       ArchiveFile := TArchiveFile.Create(Self);       FileList := TStringList.Create;       try       ArchiveFile.FileName := 'A:\Work.LZH';       ArchiveFile.ArchiverType := atLha;       FileList.Add(GetCurrentDir + '\WORK\*.*');       cond := ArchiveFile.PackFiles(Handle, nil, '', FileList);       finally         ArchiveFile.Free;         FileList.Free;       end;       Beep;       MessageDlg('huro?棒球往壓縮備份完畢了。', mtInformation, [mbOk], 0);     end;   end;   Refresh; end;    上述取樣程序其中兩種類的文件壓縮有因為認真地看請給我。      2000.10.29 桌子的物理排序Ⅱ (復數的字段對應) uses Db, DBTables, Bde; procedure TableSortItSelf(Table: TTable; nFields: Integer; pFields, pCases, pOrders: Pointer); var   hTable: TTable;   nRecord: LongInt;   Actived: Boolean; begin   with Table do     begin       Actived := Active;       Open;       hTable := DBHandle;       Close;       nRecord := High(Integer);       try         Check(DbiSortTable(hTable, PChar(TableName), nil, nil, nil, nil, nil, nFields, pFields, pCases, nil, False, nil, nRecord));       finally         if Actived then           Open;       end;     end; end;    [使用常例] procedure TForm1.DBGrid1TitleCleck(Column: TColumn); const   bASCEND: Boolean = False;   ORDER: array[Boolean] of SORTOrder = (sortDESCEND, sortASCEND); var   i: Integer;   SortFields: array[0..2] of Word; 三種類的字段排序對象也是有   SortCases: array[0..2] of Bool;   SortOrders: array[0..2] of SORTOrder; begin     bASCEND := not bASCEND;     for i := 0 to 2 do       begin         SortFields[i] := i + 1;         SortCases[i] := False;         SortOrders[i] := ORDER[bASCEND];       end;     TableSortItself(Column, Field.DataSet as TTable, 3, @SortFields, @SortCases, @SortOrders); end;  2000.10.01  桌子的物理的排序的方法物議、『Delphi工具』幫助參照解決了。  桌子排序,輸出桌子臍的結果輸出使安靜下來。叫出來手續其次能登有。    fDbiSortTable(CustomerTbl, CustomerTbl2, CustomerTbl.FieldByName('COMPANY'));    function fDbiSortTable(SrcTbl, DestTbl: TTable; SortField: TField): longint; var       Field: Word;   CaseIns: boolean;   Recs: longint;    begin   Recs := SrcTbl.RecordCount;   CaseIns := True;   Field := SortField.Index + 1;      if DestTbl.Active = False then   raise EDatabaseError.Create('Cannot complete operation with destination table closed');      Check(DbiSortTable(SrcTbl.DBHandle, nil, nil, SrcTbl.Handle, nil, nil,   DestTbl.Handle, 1, @Field, @CaseIns, nil, nil, False, nil, Recs));   Result := Recs; end;    因此排序與寫上完畢麻煩,但是、排序做了數據元(原來)的數據的其次往寫上鄰因為不方便因為排序前的數據計數寫上後面刪除方法寅不?傻的裡籬笆。   1999.12.30 美觀隻追趕於是、不起眼的陷阱在……中真豐島卯年事有。 這時木桶部分處理的速度。 、這次EXCEL或LOTUS畫面的更新彎曲宏刑警結的量的數據的工作特別的事情認真地有喲。 捆與同樣使煮事能是…  AbcdTable.DisableControls;          try           各數據處理          finally          AbcdTable.EnableControls;          end;     因此、相當厲害以上處理速度抬事能。 正在理解人對不起但是忍耐請   1999.11.27 終於Delphi也版本5.0鄰正下面。 我方的HDD同樣表面好容易5.0安裝?正下面。 這次的升級的額現在到的3加倍程度與?井感覺討厭。 可是、過去的版本的不快的部分很沒現在底下因為好方向往向與想。  1999.09.08 Delphi 5.0…月摟出來正下面、不愧是INPRISE。 全抬升級底下表面、不愧是向上倒退使……有。 哪一方面5.0跟前進入不?傻的裡籬笆、稍微強烈價格構成。  1999.05.23 全HP更新青花魚這種東西PRG做埋頭私邸正下面、EVariantError被使哭泣正在繼續。 但、Delphi的描操縱懂正下面因為構造進展正下面。 自己專用的PRG假如是這樣苦惱漢字撫養也好但是、別人面貌事情在……中稍微思考(想法)不?傻的裡籬笆者。 誠實喜悅國君也過去Variant麻點麻點說現在底下。  1999.05.07  以下PHOTO MAEDA先生(小姐)事情制定了圖片程序庫管理數據庫的主要的菜單。 得了弟子?。 這裡一切高等的代碼沒。 真、菜單畫面所以。  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 捆…情況之下的代碼其他實際看了Window狀態。 unit MainMenu; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls; type TMainForm = class(TForm) Bevel1: TBevel; Image1: TImage; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; Bevel2: TBevel; BitBtn4: TBitBtn; procedure Image1Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var MainForm: TMainForm; implementation uses Prg, PhotoSee, BirdSee, FlowerSee; {$R *.DFM} procedure TMainForm.Image1Click(Sender: TObject); begin Top := 0; Left := 0; Enabled := False; PrgForm.Show; end; procedure TMainForm.BitBtn1Click(Sender: TObject); begin Top := 0; Left := 0; PhotoForm.Show; PhotoForm.PhotoTable.TableName := GetCurrentDir '\DATA\PHOTO.DB'; PhotoForm.PhotoTable.Active := True; PhotoForm.PHO_CodeTable.TableName := GetCurrentDir '\DATA\PHO_CODE.DB'; PhotoForm.PHO_CodeTable.Active := True; PhotoForm.Label11.Caption := FormatFloat('#,###', PhotoForm.PhotoTable.RecordCount); PhotoForm.DBGrid1.Color := clYellow; PhotoForm.PhotoTable.Edit; BitBtn1.Enabled := False; BitBtn2.Enabled := False; BitBtn3.Enabled := False; BitBtn4.Enabled := False; Enabled := False; end; procedure TMainForm.BitBtn2Click(Sender: TObject); begin Top := 0; Left := 0; BirdForm.Show; BirdForm.BirdTable.TableName := GetCurrentDir '\DATA\BIRD.DB'; BirdForm.BirdTable.Active := True; BirdForm.BID_CodeTable.TableName := GetCurrentDir '\DATA\BIR_CODE.DB'; BirdForm.BID_CodeTable.Active := True; BirdForm.Label15.Caption := FormatFloat('#,###', BirdForm.BirdTable.RecordCount); BirdForm.DBGrid1.Color := clYellow; BirdForm.BirdTable.Edit; BitBtn1.Enabled := False; BitBtn2.Enabled := False; BitBtn3.Enabled := False; BitBtn4.Enabled := False; Enabled := False; end; procedure TMainForm.BitBtn3Click(Sender: TObject); begin Top := 0; Left := 0; FlowerForm.Show; FlowerForm.FlowerTable.TableName := GetCurrentDir '\DATA\FLOWER.DB'; FlowerForm.FlowerTable.Active := True; FlowerForm.FLW_CodeTable.TableName := GetCurrentDir '\DATA\FLW_CODE.DB'; FlowerForm.FLW_CodeTable.Active := True; FlowerForm.Label9.Caption := FormatFloat('#,###', FlowerForm.FlowerTable.RecordCount); FlowerForm.DBGrid1.Color := clYellow; FlowerForm.FlowerTable.Edit; BitBtn1.Enabled := False; BitBtn2.Enabled := False; BitBtn3.Enabled := False; BitBtn4.Enabled := False; Enabled := False; end; procedure TMainForm.BitBtn4Click(Sender: TObject); begin Close; end; end. 1999. 4. 2 粗枝大葉的程序構造做爐缸象結、對外確切也編制三增稻田。 但、比較頭的公允計劃了感覺實現在……中、過去使用數據庫軟件(dBXL)的概念?邪魔勞苦。 Windows辦法的程序編制開始做完了以上沒有辦法因為自己從既熟悉又嗎張羅飛螞蟻籬笆。 1999. 2. 21 本日也假日退還?!Delphi三昧使……現在底下。 腰完全凝固做完正下面、構造的學習特別的戴正下面。 這次Lotus或Excel的種種箭頭鍵DBEdit間縱橫無限移動省會說辦法編制挑戰看正下面。 想辦法成果正下面。 順便移動以前的Color也變更方法拿看正下面們構造看平靜事情氣息…月到。(^^;)> 我方至今仍然Delphi的服務包跟前還未放入。 誰一 Help me !! 1998.11. 7 構造與Delphi4.0的寫法理解能下次正下面、還深處深表面。 仍然數據庫的處理標準麻煩。 現在到的操縱可靠性搓感覺但是這種東西事情吧。 1998.10.13 表面好容易、Delphi 4.0往的3.1從的形象方法懂正下面。 又、新手冊在……中還未上討厭、想辦法初學者努力正下面。 3.1制定了工程項目文件刪除之後、4.0新工程項目文件編制3.1制定了*.PAS文件追加行為了們、想辦法編譯黃昏。 、余還未擺弄程序假如是、就那樣但4.0編譯能表面。 一時(一點)支持中心往到對方家去大吵大鬧扣上過渡、稍微沒有大人氣概氣息餓死停正下面。 1998. 9. 8 字符串命令?編制實行特別的事『SINYESU』國君不能與被說、頗著急做完正下面。 DOS版的DBXL實現成果稻田操縱但是。。。。( _ _ ;)????!! 徐娘底下。 怎麼也使熟悉了方法選擇做完的是、頭硬釀不弄清。 忙工作的間隙利用的編制頭完全uni狀態。 1998. 8. 2 快的報告的編制格式紙的大小習慣設置底下時、預覽表示印刷商設置的表示出做完。 捆在……中hotohoto有鄭重的感覺。 1998. 8. 1 AsVariant 改變函數這種東西的是方便的函數。 數據庫的字段往數值或文字代入時留下辦完使用能表面。 改正、其他的改變函數使用能時有、編譯成功即使……、不符合使用錯誤挑做完因為、比較深處深。 1998. 7.20 粗枝大葉程序被做象搓下次正下面。 是什麼、Visual Basic同樣正在像、真實全體出動花陰鬱。 If ... Then 的時在……中If色彩真正的時其次的一行被實行。 因為復數行對應特別的因此begin 與end歸納實行特別的。 捆啊假名嗎理解成果關系?蓼沙灘。 手冊初學者完全無視因為。 這樣那樣、Windows事情的程序編制實行。 比較難這種東西說嗎、糾纏難。 帕斯卡首都內說翹難正在做氣息餓死。 Sinyetu國君教戴第一子彈Delphi稱霸術 1. 桌子 2. 數據源 3. 網格 4. 航海者 、決不新電視節目評論員的暗語不是、Delphi數據庫程序編制上乘絕對必要而且短路工作進度。 與、定居 這頁有意義的程序發表特別的戴。 -------------------------------------------------------------------------------- 看中文翻譯 ── 超越語言的溝通! www.ccSee.com Ver: 1.2.17 新地址: 語言: 看中文 中日對照 看原文 常見問題 修改配置 繁體簡體 -------------------------------------------------------------------------------- 2001/05/29DelphiMicrosoft Excel往寫上時的應用常例。 構造事務工作Excel數據必要腹足類裡因為記內部與方便。 平時、Delphi奔使用TableParadox辦法也是有因為、這樣的程序必要的。 這種東西說、Excel直接被讀的裡、不被改變象﹒﹒﹒。 另外、最後的國標碼清晰的一定寫上象請。 必要部分水色 procedure TTougouForm.SpeedButton2Click(Sender: TObject); var TestNum, i, CalcNum : integer; Zei : double; SM : string; K_Code : integer; Excel, WorkBook, WorkSheet : variant; j, RowNo : integer; WorkDir : string; begin //Excel座編制 CopyFile(PChar(GetCurrentDir '\DATA\Init_YAT.XLS'), PChar (GetCurrentDir '\WORK\' GetCode.Text '_YAT.XLS'), True); WorkDir := GetCurrentDir '\WORK\' GetCode.Text '_YAT.XLS'; Excel := CreateOleObject('Excel.Application'); Excel.Visible := False; //Excel不表示 Excel.WorkBooks.Open(WorkDir); WorkBook := Excel.ActiveWorkBook; WorkSheet := WorkBook.Sheets['Sheet1']; YatyouTable.First; RowNo := 1; for j := 0 to YatyouTable.FieldCount - 1 do WorkSheet.Cells[RowNo, j 1].Value := YatyouTable.Fields[j].FieldName; YatyouTable.First; while not YatyouTable.Eof do begin PBar.Position := PBar.Position 1; RowNo := RowNo 1; for j := 0 to YatyouTable.FieldCount - 1 do WorkSheet.Cells[RowNo, j 1].Value := YatyouTable.Fields[j].AsString; YatyouTable.Next; end; Excel.ActiveWorkBook.Saved := True; //保存偶爾確認不表示 Excel.ActiveWorkBook.Save; //Excel數據保存 Excel.Quit; //Excel終了 Excel := Unassigned; //國標碼的清晰的 WorkBook := Unassigned; //國標碼的清晰的 WorkSheet := Unassigned; //國標碼的清晰的 end; 2001.04.14 程序編制上乘怎麼也huro?棒球往的數據移動﹒保管必要腹足類裡、怎麼也容量確切無理討厭因為記載在下邊的元件使用看正下面。 元件內在的理解不能的記述多□有啊使用上乘沒關系討厭。 >> 【作品通稱】統一a一個Iba元件 for Delphi v1.28 >> 【書庫通稱】CMARC128.LZH >> 【書庫Size】73,470 Byte >> 【作者姓名】米田 昌司 ( NORG1964 ) >> 【MAIL】norg1964@ceres.dti.ne.jp >> 【作者 URL】http://www.ceres.dti.ne.jp/~norg1964 以下上述元件利用底下我編制的程序的部分介紹。 procedure TForm.SpeedButtonClick(Sender: TObject); var ArchiveFile : TArchiveFile; FileList : TStringList; cond : integer; begin Beep; if MessageDlg('huro?棒球往壓縮備份使安靜下來。確認請。', mtInformation, [mbCancel, mbOk], 0) = mrOk then begin Refresh; if not DirectoryExists('A:') then begin Beep; MessageDlg('軟盤被插入沒有嗎、格式化還未做huro?棒球的表面。 確認請。', mtError, [mbOk], 0); end else begin ArchiveFile := TArchiveFile.Create(Self); FileList := TStringList.Create; try ArchiveFile.FileName := 'A:\Data.LZH'; ArchiveFile.ArchiverType := atLha; FileList.Add(GetCurrentDir '\DATA\*.*'); cond := ArchiveFile.PackFiles(Handle, nil, '', FileList); finally ArchiveFile.Free; FileList.Free; end; ArchiveFile := TArchiveFile.Create(Self); FileList := TStringList.Create; try ArchiveFile.FileName := 'A:\Work.LZH'; ArchiveFile.ArchiverType := atLha; FileList.Add(GetCurrentDir '\WORK\*.*'); cond := ArchiveFile.PackFiles(Handle, nil, '', FileList); finally ArchiveFile.Free; FileList.Free; end; Beep; MessageDlg('huro?棒球往壓縮備份完畢了。', mtInformation, [mbOk], 0); end; end; Refresh; end; 上述取樣程序其中兩種類的文件壓縮有因為認真地看請給我。 2000.10.29 桌子的物理排序Ⅱ (復數的字段對應) uses Db, DBTables, Bde; procedure TableSortItSelf(Table: TTable; nFields: Integer; pFields, pCases, pOrders: Pointer); var hTable: TTable; nRecord: LongInt; Actived: Boolean; begin with Table do begin Actived := Active; Open; hTable := DBHandle; Close; nRecord := High(Integer); try Check(DbiSortTable(hTable, PChar(TableName), nil, nil, nil, nil, nil, nFields, pFields, pCases, nil, False, nil, nRecord)); finally if Actived then Open; end; end; end; [使用常例] procedure TForm1.DBGrid1TitleCleck(Column: TColumn); const bASCEND: Boolean = False; ORDER: array[Boolean] of SORTOrder = (sortDESCEND, sortASCEND); var i: Integer; SortFields: array[0..2] of Word; 三種類的字段排序對象也是有 SortCases: array[0..2] of Bool; SortOrders: array[0..2] of SORTOrder; begin bASCEND := not bASCEND; for i := 0 to 2 do begin SortFields[i] := i 1; SortCases[i] := False; SortOrders[i] := ORDER[bASCEND]; end; TableSortItself(Column, Field.DataSet as TTable, 3, @SortFields, @SortCases, @SortOrders); end; 2000.10.01 桌子的物理的排序的方法物議、『Delphi工具』幫助參照解決了。 桌子排序,輸出桌子臍的結果輸出使安靜下來。叫出來手續其次能登有。 fDbiSortTable(CustomerTbl, CustomerTbl2, CustomerTbl.FieldByName('COMPANY')); function fDbiSortTable(SrcTbl, DestTbl: TTable; SortField: TField): longint; var Field: Word; CaseIns: boolean; Recs: longint; begin Recs := SrcTbl.RecordCount; CaseIns := True; Field := SortField.Index 1; if DestTbl.Active = False then raise EDatabaseError.Create('Cannot complete operation with destination table closed'); Check(DbiSortTable(SrcTbl.DBHandle, nil, nil, SrcTbl.Handle, nil, nil, DestTbl.Handle, 1, @Field, @CaseIns, nil, nil, False, nil, Recs)); Result := Recs; end; 因此排序與寫上完畢麻煩,但是、排序做了數據元(原來)的數據的其次往寫上鄰因為不方便因為排序前的數據計數寫上後面刪除方法寅不?傻的裡籬笆。 1999.12.30 美觀隻追趕於是、不起眼的陷阱在……中真豐島卯年事有。 這時木桶部分處理的速度。 、這次EXCEL或LOTUS畫面的更新彎曲宏刑警結的量的數據的工作特別的事情認真地有喲。 捆與同樣使煮事能是… AbcdTable.DisableControls; try 各數據處理 finally AbcdTable.EnableControls; end; 因此、相當厲害以上處理速度抬事能。 正在理解人對不起但是忍耐請 1999.11.27 終於Delphi也版本5.0鄰正下面。 我方的HDD同樣表面好容易5.0安裝?正下面。 這次的升級的額現在到的3加倍程度與?井感覺討厭。 可是、過去的版本的不快的部分很沒現在底下因為好方向往向與想。 1999.09.08 Delphi 5.0…月摟出來正下面、不愧是INPRISE。 全抬升級底下表面、不愧是向上倒退使……有。 哪一方面5.0跟前進入不?傻的裡籬笆、稍微強烈價格構成。 1999.05.23 全HP更新青花魚這種東西PRG做埋頭私邸正下面、EVariantError被使哭泣正在繼續。 但、Delphi的描操縱懂正下面因為構造進展正下面。 自己專用的PRG假如是這樣苦惱漢字撫養也好但是、別人面貌事情在……中稍微思考(想法)不?傻的裡籬笆者。 誠實喜悅國君也過去Variant麻點麻點說現在底下。 1999.05.07 以下PHOTO MAEDA先生(小姐)事情制定了圖片程序庫管理數據庫的主要的菜單。 得了弟子?。 這裡一切高等的代碼沒。 真、菜單畫面所以。 捆…情況之下的代碼其他實際看了Window狀態。 unit MainMenu; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls; type TMainForm = class(TForm) Bevel1: TBevel; Image1: TImage; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; Bevel2: TBevel; BitBtn4: TBitBtn; procedure Image1Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var MainForm: TMainForm; implementation uses Prg, PhotoSee, BirdSee, FlowerSee; {$R *.DFM} procedure TMainForm.Image1Click(Sender: TObject); begin Top := 0; Left := 0; Enabled := False; PrgForm.Show; end; procedure TMainForm.BitBtn1Click(Sender: TObject); begin Top := 0; Left := 0; PhotoForm.Show; PhotoForm.PhotoTable.TableName := GetCurrentDir '\DATA\PHOTO.DB'; PhotoForm.PhotoTable.Active := True; PhotoForm.PHO_CodeTable.TableName := GetCurrentDir '\DATA\PHO_CODE.DB'; PhotoForm.PHO_CodeTable.Active := True; PhotoForm.Label11.Caption := FormatFloat('#,###', PhotoForm.PhotoTable.RecordCount); PhotoForm.DBGrid1.Color := clYellow; PhotoForm.PhotoTable.Edit; BitBtn1.Enabled := False; BitBtn2.Enabled := False; BitBtn3.Enabled := False; BitBtn4.Enabled := False; Enabled := False; end; procedure TMainForm.BitBtn2Click(Sender: TObject); begin Top := 0; Left := 0; BirdForm.Show; BirdForm.BirdTable.TableName := GetCurrentDir '\DATA\BIRD.DB'; BirdForm.BirdTable.Active := True; BirdForm.BID_CodeTable.TableName := GetCurrentDir '\DATA\BIR_CODE.DB'; BirdForm.BID_CodeTable.Active := True; BirdForm.Label15.Caption := FormatFloat('#,###', BirdForm.BirdTable.RecordCount); BirdForm.DBGrid1.Color := clYellow; BirdForm.BirdTable.Edit; BitBtn1.Enabled := False; BitBtn2.Enabled := False; BitBtn3.Enabled := False; BitBtn4.Enabled := False; Enabled := False; end; procedure TMainForm.BitBtn3Click(Sender: TObject); begin Top := 0; Left := 0; FlowerForm.Show; FlowerForm.FlowerTable.TableName := GetCurrentDir '\DATA\FLOWER.DB'; FlowerForm.FlowerTable.Active := True; FlowerForm.FLW_CodeTable.TableName := GetCurrentDir '\DATA\FLW_CODE.DB'; FlowerForm.FLW_CodeTable.Active := True; FlowerForm.Label9.Caption := FormatFloat('#,###', FlowerForm.FlowerTable.RecordCount); FlowerForm.DBGrid1.Color := clYellow; FlowerForm.FlowerTable.Edit; BitBtn1.Enabled := False; BitBtn2.Enabled := False; BitBtn3.Enabled := False; BitBtn4.Enabled := False; Enabled := False; end; procedure TMainForm.BitBtn4Click(Sender: TObject); begin Close; end; end. 1999. 4. 2 粗枝大葉的程序構造做爐缸象結、對外確切也編制三增稻田。 但、比較頭的公允計劃了感覺實現在……中、過去使用數據庫軟件(dBXL)的概念?邪魔勞苦。 Windows辦法的程序編制開始做完了以上沒有辦法因為自己從既熟悉又嗎張羅飛螞蟻籬笆。 1999. 2. 21 本日也假日退還?!Delphi三昧使……現在底下。 腰完全凝固做完正下面、構造的學習特別的戴正下面。 這次Lotus或Excel的種種箭頭鍵DBEdit間縱橫無限移動省會說辦法編制挑戰看正下面。 想辦法成果正下面。 順便移動以前的Color也變更方法拿看正下面們構造看平靜事情氣息…月到。(^^;)> 我方至今仍然Delphi的服務包跟前還未放入。 誰一 Help me !! 1998.11. 7 構造與Delphi4.0的寫法理解能下次正下面、還深處深表面。 仍然數據庫的處理標準麻煩。 現在到的操縱可靠性搓感覺但是這種東西事情吧。 1998.10.13 表面好容易、Delphi 4.0往的3.1從的形象方法懂正下面。 又、新手冊在……中還未上討厭、想辦法初學者努力正下面。 3.1制定了工程項目文件刪除之後、4.0新工程項目文件編制3.1制定了*.PAS文件追加行為了們、想辦法編譯黃昏。 、余還未擺弄程序假如是、就那樣但4.0編譯能表面。 一時(一點)支持中心往到對方家去大吵大鬧扣上過渡、稍微沒有大人氣概氣息餓死停正下面。 1998. 9. 8 字符串命令?編制實行特別的事『SINYESU』國君不能與被說、頗著急做完正下面。 DOS版的DBXL實現成果稻田操縱但是。。。。( _ _ ;)????!! 徐娘底下。 怎麼也使熟悉了方法選擇做完的是、頭硬釀不弄清。 忙工作的間隙利用的編制頭完全uni狀態。 1998. 8. 2 快的報告的編制格式紙的大小習慣設置底下時、預覽表示印刷商設置的表示出做完。 捆在……中hotohoto有鄭重的感覺。 1998. 8. 1 AsVariant 改變函數這種東西的是方便的函數。 數據庫的字段往數值或文字代入時留下辦完使用能表面。 改正、其他的改變函數使用能時有、編譯成功即使……、不符合使用錯誤挑做完因為、比較深處深。 1998. 7.20 粗枝大葉程序被做象搓下次正下面。 是什麼、Visual Basic同樣正在像、真實全體出動花陰鬱。 If ... Then 的時在……中If色彩真正的時其次的一行被實行。 因為復數行對應特別的因此begin 與end歸納實行特別的。 捆啊假名嗎理解成果關系?蓼沙灘。 手冊初學者完全無視因為。 這樣那樣、Windows事情的程序編制實行。 比較難這種東西說嗎、糾纏難。 帕斯卡首都內說翹難正在做氣息餓死。 Sinyetu國君教戴第一子彈Delphi稱霸術 1. 桌子 2. 數據源 3. 網格 4. 航海者 、決不新電視節目評論員的暗語不是、Delphi數據庫程序編制上乘絕對必要而且短路工作進度。 與、定居 這頁有意義的程序發表特別的戴。 -------------------------------------------------------------------------------- 看中文翻譯 ── 超越語言的溝通! www.ccSee.com Ver: 1.2.17 新地址: 語言: 看中文 中日對照 看原文 常見問題 修改配置 繁體簡體 -------------------------------------------------------------------------------- 2001/05/29DelphiMicrosoft Excel往寫上時的應用常例。 構造事務工作Excel數據必要腹足類裡因為記內部與方便。 平時、Delphi奔使用TableParadox辦法也是有因為、這樣的程序必要的。 這種東西說、Excel直接被讀的裡、不被改變象﹒﹒﹒。 另外、最後的國標碼清晰的一定寫上象請。 必要部分水色 procedure TTougouForm.SpeedButton2Click(Sender: TObject); var TestNum, i, CalcNum : integer; Zei : double; SM : string; K_Code : integer; Excel, WorkBook, WorkSheet : variant; j, RowNo : integer; WorkDir : string; begin //Excel座編制 CopyFile(PChar(GetCurrentDir '\DATA\Init_YAT.XLS'), PChar (GetCurrentDir '\WORK\' GetCode.Text '_YAT.XLS'), True); WorkDir := GetCurrentDir '\WORK\' GetCode.Text '_YAT.XLS'; Excel := CreateOleObject('Excel.Application'); Excel.Visible := False; //Excel不表示 Excel.WorkBooks.Open(WorkDir); WorkBook := Excel.ActiveWorkBook; WorkSheet := WorkBook.Sheets['Sheet1']; YatyouTable.First; RowNo := 1; for j := 0 to YatyouTable.FieldCount - 1 do WorkSheet.Cells[RowNo, j 1].Value := YatyouTable.Fields[j].FieldName; YatyouTable.First; while not YatyouTable.Eof do begin PBar.Position := PBar.Position 1; RowNo := RowNo 1; for j := 0 to YatyouTable.FieldCount - 1 do WorkSheet.Cells[RowNo, j 1].Value := YatyouTable.Fields[j].AsString; YatyouTable.Next; end; Excel.ActiveWorkBook.Saved := True; //保存偶爾確認不表示 Excel.ActiveWorkBook.Save; //Excel數據保存 Excel.Quit; //Excel終了 Excel := Unassigned; //國標碼的清晰的 WorkBook := Unassigned; //國標碼的清晰的 WorkSheet := Unassigned; //國標碼的清晰的 end; 2001.04.14 程序編制上乘怎麼也huro?棒球往的數據移動﹒保管必要腹足類裡、怎麼也容量確切無理討厭因為記載在下邊的元件使用看正下面。 元件內在的理解不能的記述多□有啊使用上乘沒關系討厭。 >> 【作品通稱】統一a一個Iba元件 for Delphi v1.28 >> 【書庫通稱】CMARC128.LZH >> 【書庫Size】73,470 Byte >> 【作者姓名】米田 昌司 ( NORG1964 ) >> 【MAIL】norg1964@ceres.dti.ne.jp >> 【作者 URL】http://www.ceres.dti.ne.jp/~norg1964 以下上述元件利用底下我編制的程序的部分介紹。 procedure TForm.SpeedButtonClick(Sender: TObject); var ArchiveFile : TArchiveFile; FileList : TStringList; cond : integer; begin Beep; if MessageDlg('huro?棒球往壓縮備份使安靜下來。確認請。', mtInformation, [mbCancel, mbOk], 0) = mrOk then begin Refresh; if not DirectoryExists('A:') then begin Beep; MessageDlg('軟盤被插入沒有嗎、格式化還未做huro?棒球的表面。 確認請。', mtError, [mbOk], 0); end else begin ArchiveFile := TArchiveFile.Create(Self); FileList := TStringList.Create; try ArchiveFile.FileName := 'A:\Data.LZH'; ArchiveFile.ArchiverType := atLha; FileList.Add(GetCurrentDir '\DATA\*.*'); cond := ArchiveFile.PackFiles(Handle, nil, '', FileList); finally ArchiveFile.Free; FileList.Free; end; ArchiveFile := TArchiveFile.Create(Self); FileList := TStringList.Create; try ArchiveFile.FileName := 'A:\Work.LZH'; ArchiveFile.ArchiverType := atLha; FileList.Add(GetCurrentDir '\WORK\*.*'); cond := ArchiveFile.PackFiles(Handle, nil, '', FileList); finally ArchiveFile.Free; FileList.Free; end; Beep; MessageDlg('huro?棒球往壓縮備份完畢了。', mtInformation, [mbOk], 0); end; end; Refresh; end; 上述取樣程序其中兩種類的文件壓縮有因為認真地看請給我。 2000.10.29 桌子的物理排序Ⅱ (復數的字段對應) uses Db, DBTables, Bde; procedure TableSortItSelf(Table: TTable; nFields: Integer; pFields, pCases, pOrders: Pointer); var hTable: TTable; nRecord: LongInt; Actived: Boolean; begin with Table do begin Actived := Active; Open; hTable := DBHandle; Close; nRecord := High(Integer); try Check(DbiSortTable(hTable, PChar(TableName), nil, nil, nil, nil, nil, nFields, pFields, pCases, nil, False, nil, nRecord)); finally if Actived then Open; end; end; end; [使用常例] procedure TForm1.DBGrid1TitleCleck(Column: TColumn); const bASCEND: Boolean = False; ORDER: array[Boolean] of SORTOrder = (sortDESCEND, sortASCEND); var i: Integer; SortFields: array[0..2] of Word; 三種類的字段排序對象也是有 SortCases: array[0..2] of Bool; SortOrders: array[0..2] of SORTOrder; begin bASCEND := not bASCEND; for i := 0 to 2 do begin SortFields[i] := i 1; SortCases[i] := False; SortOrders[i] := ORDER[bASCEND]; end; TableSortItself(Column, Field.DataSet as TTable, 3, @SortFields, @SortCases, @SortOrders); end; 2000.10.01 桌子的物理的排序的方法物議、『Delphi工具』幫助參照解決了。 桌子排序,輸出桌子臍的結果輸出使安靜下來。叫出來手續其次能登有。 fDbiSortTable(CustomerTbl, CustomerTbl2, CustomerTbl.FieldByName('COMPANY')); function fDbiSortTable(SrcTbl, DestTbl: TTable; SortField: TField): longint; var Field: Word; CaseIns: boolean; Recs: longint; begin Recs := SrcTbl.RecordCount; CaseIns := True; Field := SortField.Index 1; if DestTbl.Active = False then raise EDatabaseError.Create('Cannot complete operation with destination table closed'); Check(DbiSortTable(SrcTbl.DBHandle, nil, nil, SrcTbl.Handle, nil, nil, DestTbl.Handle, 1, @Field, @CaseIns, nil, nil, False, nil, Recs)); Result := Recs; end; 因此排序與寫上完畢麻煩,但是、排序做了數據元(原來)的數據的其次往寫上鄰因為不方便因為排序前的數據計數寫上後面刪除方法寅不?傻的裡籬笆。 1999.12.30 美觀隻追趕於是、不起眼的陷阱在……中真豐島卯年事有。 這時木桶部分處理的速度。 、這次EXCEL或LOTUS畫面的更新彎曲宏刑警結的量的數據的工作特別的事情認真地有喲。 捆與同樣使煮事能是… AbcdTable.DisableControls; try 各數據處理 finally AbcdTable.EnableControls; end; 因此、相當厲害以上處理速度抬事能。 正在理解人對不起但是忍耐請 1999.11.27 終於Delphi也版本5.0鄰正下面。 我方的HDD同樣表面好容易5.0安裝?正下面。 這次的升級的額現在到的3加倍程度與?井感覺討厭。 可是、過去的版本的不快的部分很沒現在底下因為好方向往向與想。 1999.09.08 Delphi 5.0…月摟出來正下面、不愧是INPRISE。 全抬升級底下表面、不愧是向上倒退使……有。 哪一方面5.0跟前進入不?傻的裡籬笆、稍微強烈價格構成。
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
系統時間:2024-11-25 23:55:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!