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

Delphi中预想不到的代码

 
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-12 10:45:13 IP:218.15.xxx.xxx 未訂閱
(*// 标题:Delphi中预想不到的代 整理:Zswang, 连接:http://www.csdn.net/Expert/TopicView1.asp?id=727243 日期:2002-06-22 支持:wjhu111@21cn.com //*)    { No.1 Delphi中的Include文件 } begin   ShowMessage({$I File1.txt}; //有错吗?   ShowMessage(UpperCase({$I File1.txt}); end; //新建一个文本文件“File1.txt”、内容填写为:“'Hello Word')”看看    { No.2 可爱的强制转换 } var B: Byte begin   Char(B) := 'A'; //我们通常写 B := Byte('A'); end;    { No.3 常量表达式的下标 } Caption := '你'[1] + '好'[2]; //是什么?    { No.4 脱字号表达的字符 } Caption := ^:^3^7^!^.^'; //这句可以没有写错 //参考:http://www.csdn.net/Expert/TopicView1.asp?id=658958    { No.5 非整数类型作下标 } var A: array[Char] of Byte; //估计很多人都知道    { No.6 Inc()不只处理整数加一 } var C: Char; begin  C := 'A';  Inc(C); //没错吧 end;    { No.7 "X[:X]"格式 } > Text = '是'Text = '是'Text = ''Text = ''
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-12 14:43:27 IP:218.160.xxx.xxx 未訂閱
各位先進大家好: 這真是篇令我大開眼界的文章, 可能是我的基本功不太夠, 以下兩個問題提出
var B: Boolean;
begin
  B := Boolean(2);
  if B = True then ShowMessage('B = True'); 
  //測試結果B為True但為何沒執行, 若第一行改為B := Boolean(1)就會執行這要如何解釋
  if B then ShowMessage('B'); 
end;
以下這段不清楚的是一開始QueryTemp.Close這沒錯吧, 第二段省略這一行算是合法的寫法嗎??
begin
  QueryTemp.Close;
  QueryTemp.SQL.Text := 'SELECT SUM(金额) AS 合计 FROM 销售表';
  QueryTemp.Open; //不建议//数据没有关闭造成资源浪费
  ShowMessage(Query1.FieldByName('合计').AsString);
  /////
  QueryTemp.SQL.Text := 'SELECT SUM(金额) AS 合计 FROM 销售表';
  QueryTemp.Open;
  ShowMessage(Query1.FieldByName('合计').AsString);
  QueryTemp.Close; //建议用//使用完就关闭
end;
以上請各位大大幫我解惑一下, 感謝 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-11-06 14:40:49 IP:59.125.xxx.xxx 訂閱
因為 Boolean 其實是一個 Integer,0 代表 False,其他都代表 True
而「True」這個「系統內建常數」的值是 1,「False」這個「系統內建常數」的值是 0
你可以試試看:
ShowMessage(IntTostr(Integer(True)));
ShowMessage(IntTostr(Integer(False)));

所以 Boolean(2) 當然不等於 True 咯

===================引 用 Miles 文 章===================
各位先進大家好:
這真是篇令我大開眼界的文章, 可能是我的基本功不太夠, 以下兩個問題提出
var B: Boolean;
begin
  B := Boolean(2);
  if B = True then ShowMessage('B = True'); 
  //測試結果B為True但為何沒執行, 若第一行改為B := Boolean(1)就會執行這要如何解釋   if B then ShowMessage('B');  end;

第二段之前不應省略 QueryTmp.Close; 的

===================引 用 Miles 文 章===================
以下這段不清楚的是一開始QueryTemp.Close這沒錯吧, 第二段省略這一行算是合法的寫法嗎??
begin
  QueryTemp.Close;
  QueryTemp.SQL.Text := 'SELECT SUM(金) AS 合 FROM 售表';
  QueryTemp.Open; //不建//p据有s造成D源浪9
  ShowMessage(Query1.FieldByName('合').AsString);
  /////
  QueryTemp.SQL.Text := 'SELECT SUM(金) AS 合 FROM 售表';
  QueryTemp.Open;
  ShowMessage(Query1.FieldByName('合').AsString);
  QueryTemp.Close; //建用//使用完就s
end;
以上請各位大大幫我解惑一下, 感謝 我不是高手, 高手是正在銀幕前微笑的人.
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
christie
資深會員


發表:30
回覆:299
積分:475
註冊:2005-03-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-01-11 08:47:38 IP:203.73.xxx.xxx 未訂閱
{ 怎麼下 SQL }
//TQuery建議
Query1.SQL.Text:='INSERT INTO TAB1 VALUES(:V1,:V2)';
Query1.Params.ParamValues['V1'] :='A';
Query1.Params.ParamValues['V2'] :='AAA';
Query1.ExecSQL;
//TADOQuery建議
ADOQuery1.SQL.Text:='INSERT INTO Tab1 VALUES(:V1,:V2)';
ADOQuery1.Parameters.ParamValues['V1']:='N';
ADOQuery1.Parameters.ParamValues['V2']:='NNN';
ADOQuery1.ExecSQL;
=================引用 Diety 文章========================
(*//
标题:Delphi中预想不到的代碼
整理:Zswang,
连接:http://www.csdn.net/Expert/TopicView1.asp?id=727243
日期:2002-06-22
支持:wjhu111@21cn.com
//*)
. . .
{ No.4 字段赋值 }
begin
Table1.Edit;
Table1.FieldByName('姓名').AsString := Edit1.Text; //不建议
Table1.FieldByName('日期').AsDateTime := Date;
/////
Table1['姓名'] := Edit1.Text; //建议//简短、扩充性好
//Table1.Fieldvalues['姓名'] := Edit1.Text; //Borland建议的方法。以及Paramvalues[]
Table1['日期'] := Date;
end;
. . .
------
What do we live for if not to make life less difficult for each other?
系統時間:2024-05-07 2:59:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!