




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1 串口接收程序使用: int i,j; String s; unsigned char *ReadBuffer=(char *)malloc(BufferLength); memcpy(ReadBuffer,Buffer,BufferLength);/C語言基礎(chǔ)性東西 for(i=0;i<BufferLength;i+) s = s + IntToHex(*ReadBuffer+,2)+ ' '存 Memo1->Text = Memo1->Text + s; Memo1->SelStart = Memo1->Text.Length(); Memo
2、1-> SelLength = 0; / free(ReadBuffer);/因為使用了ReadBuffer計算故不能釋放內(nèi)2 將Edit中的內(nèi)容輸入十六進制轉(zhuǎn)換(其實是字符串轉(zhuǎn)換為十六進制發(fā)送)AnsiString HexValue= "0x "+Edit1-> Text; int DecValue=StrToInt(HexValue); 再進化一下TestCmdi+ = StrToInt("0x"+Edit2->Text);2 Read txtvoid _fastcall TForm1:Button1Click(TObject *S
3、ender) StringGrid1-> Align=alClient; StringGrid1-> ColCount=5; StringGrid1-> Cells00= "城市 " StringGrid1-> Cells10= "天氣 " StringGrid1-> Cells20= "最低氣溫 " StringGrid1-> Cells30= "最高氣溫 " StringGrid1-> Cells40= "風力 " char const *Path
4、= "aaa.txt " if(!FileExists(Path)return; TStringList * thelist=new TStringList(); thelist-> LoadFromFile(Path); int rowCount; rowCount=thelist-> Count; StringGrid1-> RowCount=rowCount; TStringList * list2=new TStringList(); for(int k=0;k <rowCount-1;k+) String s; s=thelist->
5、 Stringsk; s=AnsiReplaceStr(s, ", ", "nr "); list2-> Clear(); list2-> DelimitedText=s; StringGrid1-> Cells0k+1=list2-> Strings0; StringGrid1-> Cells1k+1=list2-> Strings1; StringGrid1-> Cells2k+1=list2-> Strings2; StringGrid1-> Cells3k+1=list2-> Strin
6、gs3; StringGrid1-> Cells4k+1=list2-> Strings4; delete list2; list2=0; delete thelist; thelist=0; 3 循環(huán)時響應外部事件在循環(huán)的時候,操作窗口不能動作,可在循環(huán)中加入: Application->ProcessMessages(); this->Update();注意不是在程序剛開始加入就OK,而是要在每次循環(huán)中加入才能起作用4 增加換行String + char(13)+char(10) 5同一事件共用代碼如何在CB中用Sender實現(xiàn)代碼重用?答:面向?qū)ο蟮木幊坦ぞ叩奶攸c
7、之一就是要提高代碼重用性(Reuse),寶蘭的BCB當然可以實現(xiàn)這一功能。我們都知道,在BCB中,大部分程序代碼都直接或間接的對應著一個事件,此程序稱為事件處理句柄,它實際上就是一個過程。從應用程序的工程到窗口、組件和程序,BCB強調(diào)的是其開發(fā)過程中每一層次的重用性,可以充分利用已編寫過的代碼來減少工作量,更會使你的程序變得優(yōu)美。代碼段間的共享都跟發(fā)生該事件的控件有關(guān)有關(guān),需要根據(jù)控件類型做出相應的處理,這時就要用到Sender參數(shù)。每個函數(shù)的開頭都有形如:void _fastcall TForm1:Button1Click(TObject *Sender)其中的Sender是一個TObjec
8、t類型的參數(shù),它告訴BCB哪個控件接收到這個事件并調(diào)用相應的處理過程。我們可以編寫一個單一的事件處理句柄,通過Sender參數(shù)和if語句或者case語句配合,來處理多個組件。在Delphi中可以用IS來測試Sender類型,或者用AS進行類型轉(zhuǎn)換,BCB我們只在用dynamic_cast來進行上面兩個工作。1進行判斷我們用dynamic_case來測試Sender,以便找到調(diào)用這個事件的處理句柄或組件的類型。如,我們將窗口中的編輯框和標簽的Click事件的處理句柄都指向窗口的xxx函數(shù)(其實你只要先把一個控件的Click事件命名為xxx,并在其中寫上共享代碼,其它控件的Click事件都指向xx
9、x就行了),本例中的編輯框和標簽對Click事件將有不同的反應,代碼如下:void _fastcall TForm1:xxx(TObject *Sender) if(dynamic_cast<TEdit *>(Sender) ShowMessage("This is a editbox"); if(dynamic_cast<TLabel *>(Sender) ShowMessage("This is a label");當然若是多個同類組件,只是想共用一個事件,那要比這簡單多了。舉個例子,若你的很多編輯框(Edit),你想在輸入某
10、一項的時候先把這一項清空,你只要寫一個OnEnter事件就可以了:void _fastcall TForm1:Edit1Enter(TObject *Sender) TEdit *Edittemp=(TEdit*)(Sender);/把不同的編輯框統(tǒng)一起來 Edittemp->Text="" 其它的Edit組件的OnEnter事件都指向Edit1Enter,這樣就行了,試一下,是不是鼠標放在編輯框里一點就清空了J其實這里只是把不同的編輯框(Sender清楚是那一個編輯框)統(tǒng)一起來,好用一個共同的事件來處理。你在同一組件共用同一事件時一定要注意這一點。printf的格式
11、控制的完整格式:% - 0 m.n l或h 格式字符下面對組成格式說明的各項加以說明:%:表示格式說明的起始符號,不可缺少。-:有-表示左對齊輸出,如省略表示右對齊輸出。0:有0表示指定空位填0,如省略表示指定空位不填。m.n:m指域?qū)?,即對應的輸出項在輸出設(shè)備上所占的字符數(shù)。N指精度。用于說明輸出的實型數(shù)的小數(shù)位數(shù)。為指定n時,隱含的精度為n=6位。l或h:l對整型指long型,對實型指double型。h用于將整型的格式字符修正為short型。格式字符格式字符用以指定輸出項的數(shù)據(jù)類型和輸出格式。 d格式:用來輸出十進制整數(shù)。有以下幾種用法:%d:按整型數(shù)據(jù)的實際長度輸出。%md:m為指定的輸
12、出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左端補以空格,若大于m,則按實際位數(shù)輸出。%ld:輸出長整型數(shù)據(jù)。o格式:以無符號八進制形式輸出整數(shù)。對長整型可以用"%lo"格式輸出。同樣也可以指定字段寬度用“%mo”格式輸出。例: main() int a = -1; printf("%d, %o", a, a); 運行結(jié)果:-1,177777 程序解析:-1在內(nèi)存單元中(以補碼形式存放)為(1111111111111111)2,轉(zhuǎn)換為八進制數(shù)為(177777)8。x格式:以無符號十六進制形式輸出整數(shù)。對長整型可以用"%lx"格式輸出。同樣也
13、可以指定字段寬度用"%mx"格式輸出。u格式:以無符號十進制形式輸出整數(shù)。對長整型可以用"%lu"格式輸出。同樣也可以指定字段寬度用“%mu”格式輸出。c格式:輸出一個字符。s格式:用來輸出一個串。有幾中用法%s:例如:printf("%s", "CHINA")輸出"CHINA"字符串(不包括雙引號)。%ms:輸出的字符串占m列,如字符串本身長度大于m,則突破獲m的限制,將字符串全部輸出。若串長小于m,則左補空格。%-ms:如果串長小于m,則在m列范圍內(nèi),字符串向左靠,右補空格。%m.ns:輸出
14、占m列,但只取字符串中左端n個字符。這n個字符輸出在m列的右側(cè),左補空格。%-m.ns:其中m、n含義同上,n個字符輸出在m列范圍的左側(cè),右補空格。如果n>m,則自動取n值,即保證n個字符正常輸出。f格式:用來輸出實數(shù)(包括單、雙精度),以小數(shù)形式輸出。有以下幾種用法:%f:不指定寬度,整數(shù)部分全部輸出并輸出6位小數(shù)。%m.nf:輸出共占m列,其中有n位小數(shù),如數(shù)值寬度小于m左端補空格。 %-m.nf:輸出共占n列,其中有n位小數(shù),如數(shù)值寬度小于m右端補空格。e格式:以指數(shù)形式輸出實數(shù)??捎靡韵滦问剑?e:數(shù)字部分(又稱尾數(shù))輸出6位小數(shù),指數(shù)部分占5位或4位。%m.ne和%-m.ne:
15、m、n和”-”字符含義與前相同。此處n指數(shù)據(jù)的數(shù)字部分的小數(shù)位數(shù),m表示整個輸出數(shù)據(jù)所占的寬度。g格式:自動選f格式或e格式中較短的一種輸出,且不輸出無意義的零。關(guān)于printf函數(shù)的進一步說明:如果想輸出字符"%",則應該在“格式控制”字符串中用連續(xù)兩個%表示,如:-printf("%f%", 1.0/3);輸出0.333333%。對于單精度數(shù),使用%f格式符輸出時,僅前7位是有效數(shù)字,小數(shù)6位對于雙精度數(shù),使用%lf格式符輸出時,前16位是有效數(shù)字,小數(shù)6位由高手指點對于m.n的格式還可以用如下方法表示(例)char ch20;printf(&quo
16、t;%*.*s/n",m,n,ch);前邊的*定義的是總的寬度,后邊的定義的是輸出的個數(shù)。分別對應外面的參數(shù)m和n 。我想這種方法的好處是可以在語句之外對參數(shù)m和n賦值,從而控制輸出格式。6 十六進制顯示處理方法要求:顯示十六進制 0A先定義一個中間為unsigned char的變量處理:將十六進制轉(zhuǎn)換為十進制做加減法,函數(shù)i = StrToIntDef("0x"+Editx->Text,2);處理完后回顯示:Editx->Text = IntToHex(i);Memo1->Text="String"是顯示開頭內(nèi)容(如果內(nèi)容超
17、出Memo1的范圍的話) Memo1->Lines->Add("String");是顯示結(jié)尾內(nèi)容(如果內(nèi)容超出Memo1的范圍的話) Memo1->Text=IdHTTP1->Get(" Memo1->Lines->Add("結(jié)束"); Text.Length();Memo1->Lines->Add(IntToStr(AnsiPos("a",a); Memo1->Lines->Add(a.SubString(1,2); c_str char *_fastcall c
18、_str() const 返回字符串數(shù)據(jù)的指針 Delete void _fastcall Delete(int index,int count) 由index處開始刪除count個字符 Insert void _fastcall Insert(const AnsiString& str,int index) 由index處開始插入字符str到原字符串中 IsEmpty bool _fastcall IsEmpty() const 返回字符串是否為空,true表示空字符串 Length int _fastcall Length() const 返回字符串長度 LowerCase Ans
19、iString _fastcall LowerCase() const 將字符串中的大寫字母改寫成小寫 UpperCase AnsiString _fastcall UpperCase() const 將字符串中的小寫字母改寫成大寫 Pos int _fastcall Pos(cont AnsiString& substr)const; 找出子字符串在原字符串中由第幾個位置開始 SubString AnsiString _fastcall SubString(int index,int count)const 返回由index處向后取count個字符 ToDouble double _
20、fastcall ToDouble() const 將字符轉(zhuǎn)成雙精度數(shù)值 ToInt int _fastcall ToInt() const 將字符轉(zhuǎn)成整形 IntToStr AnsiString _fastcall IntToStr(int Value) 將整形轉(zhuǎn)成字符串 Trim AnstString _fastcall Trim() const 返回一個新的字符串,它會將原字符串前后空白或控制字符清除后再返回 WideChar wchar_t fastcall WideChar(wchart* dest,int destsize)const 轉(zhuǎn)換AnsiString到一個寬字符數(shù)組(CO
21、M中常用) AnsiString成員函數(shù) 功能 傳統(tǒng)字符串函數(shù) = 字符串拷貝 strcpy += 字符串合并 strcat + 字符串連接 無 =,!+=,>= 字符串比較 strcmp c_str() 相互轉(zhuǎn)換 無,但可以利用指針實現(xiàn) Delete 刪除子字符串 無 Insert 插入子字符串 無 Length 求字符串長度 strlen LowerCase 字母轉(zhuǎn)成小寫 strlwr Pos 找出子字符串 strstr SetLength 設(shè)置字符串長度 無 ToInt 轉(zhuǎn)成整形 無 ToDouble 轉(zhuǎn)成雙精度 sprintf UpperCase 字母轉(zhuǎn)成大寫 struprn使用
22、SPCOMM和Memo顯示時,之間以為是Memo太小不能接收太多數(shù)據(jù),其它是自己定義循環(huán)變量i時將16位字節(jié),定義成8位字長引起的n浮點數(shù)轉(zhuǎn)換設(shè)置顯示幾位的方法Edit23->Text = FormatFloat("0.00",Rx)n使用iPlot時,波形不刷新,修改nBCB使用victo串口控件時設(shè)置波特率一定要和它的頭文件一樣nBCB2010設(shè)置編譯為發(fā)布文件方法project->Options->C+Compiler->Build Configuration 選擇 Releaseproject->Options->C+Linker
23、中取消Use dynamic RTL前的對鉤在project->Options->Packages中取消Builder with runtime packages的對鉤project-Configuration Manager->Configuration 選擇 Release由於中間上方箭頭朝右的按鈕時灰色的所以鼠標點擊一下左邊列表的行;然後中間上方的灰色的箭頭朝右的箭頭變成綠色,這時候可以點擊了,點擊綠色按鈕,再重新編譯即可;工程目錄下產(chǎn)生了Release目錄 nBCB6 ADO操作 access數(shù)據(jù)庫總結(jié)1 使用ADOConnection控件和ADOTable Data
24、Sours控件實現(xiàn) DBGrid用于顯示 ADOConnection 實現(xiàn)在數(shù)據(jù)庫建立連接ADOTable 實現(xiàn)對數(shù)據(jù)庫的操作增加 刪除 排序DataSours建立ADOTable 和DBGrid顯示的連接數(shù)據(jù)表刪除所有記錄 ADOTable1->First(); while(!ADOTable1->Eof) ADOTable1->Delete(); ADOTable1->Refresh();數(shù)據(jù)庫排序ADOTable1->Sort = "NO DESC" 按NO索引 降序ADOTable1->Sort = "NO ASC" 按NO索引 升序ADOTable1->Insert 插入提取某個單元格內(nèi)容 i = DBGrid1->Fields3->AsString;修改背景顏色DBGrid1->Canvas-&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安徽省合肥四十二中中考物理一模試卷(含解析)
- 浙江省余杭區(qū)普通高中第二共同體2024-2025學年高考最后沖刺模擬(一)英語試題含解析
- 華南農(nóng)業(yè)大學珠江學院《食品研發(fā)專題》2023-2024學年第二學期期末試卷
- 湖北省孝感市孝南區(qū)十校聯(lián)誼2025年第二學期初三教學質(zhì)量檢測試題生物試題試卷含解析
- 山東省鄒平縣黃山中學2025年高三年級4月聯(lián)考數(shù)學試題含解析
- 拉薩市堆龍德慶縣2024-2025學年數(shù)學四年級第二學期期末學業(yè)質(zhì)量監(jiān)測試題含解析
- 遼寧地質(zhì)工程職業(yè)學院《建筑給排水工程》2023-2024學年第二學期期末試卷
- 河南藝術(shù)職業(yè)學院《印度文化遺產(chǎn)賞析》2023-2024學年第一學期期末試卷
- 四川省遂寧市安居育才中學2024-2025學年初三5月考前適應性考試英語試題試卷含答案
- 周口理工職業(yè)學院《自然科學基礎(chǔ)(4)》2023-2024學年第一學期期末試卷
- 鴻門宴-課本劇-課件
- 我是家里的小幫手課件
- 2023年江蘇安東控股集團有限公司招聘筆試題庫及答案解析
- 雙減下小學數(shù)學低段作業(yè)設(shè)計與布置課件
- 一年級數(shù)學下冊課件-1. 補磚問題4-人教版(共10張PPT)
- 螺桿泵工作原理和工況診斷方法
- 醫(yī)患溝通技巧(PPT)課件
- 真理誕生于一百個問號之后(優(yōu)秀)(課堂PPT)
- 污水處理廠防汛應急演練方案
- 2020最新八年級下冊《道德與法治》知識點總結(jié)(最全版)
- 慢性阻塞性肺疾病(COPD)的藥物治療
評論
0/150
提交評論