2010年7月10日 星期六
Delphi 建立Form的事件順序
OnCreate指示正在建立Form.
OnShow指示正在顯示Form,除了主窗體外,該事件還在將窗體的Visible設置為True或調用Show及ShowModal對象方法之後發生。如果窗體被隱藏,然後又顯示出來,也會觸發該事件。
OnActivate指定窗體成為了應用程序中的活動窗體。每當用戶從應用程序的一個窗體移到當前窗體時就會觸發該事件。
OnResize, OnPaint指定操作總發生在啟動時,但之後可能會重複很多次。
還有一個向窗體添加初始化代碼的方法:覆蓋構造器,通常做法如下所示:
constructor TForm1.Create(AOWner:TComponent);
begin
inherited Create(AOWner);
//extra initialization code
end;
在調用基類的Create對象方法之前,窗體的屬性還沒有裝載,而且內部組件還不能使用,為此,標準的方法是首先調用基類構造器,然後再進行定制操作。
OnCloseQuery.
OnClose: action參數 caNon--不允許窗體關閉。該值相當於設置OnCloseQuery事件的CanClose參數為False.
caHide--窗體沒有關閉,只是隱藏起來。
caFree--窗體被關閉,並釋放它所佔用的內存;如果是主窗體,應用程序將終止。
caMinimize--窗體沒有關閉,而是最小化。這是MDI子窗體的默認行為。
OnDestroy
2010年4月28日 星期三
BT 搜索器
hdclub--tracker.hdclub.com.ua 俄羅斯藍光倉
asiatorrents--www.asiatorrents.com 泰國倉搵亞洲種
d-addicts--www.d-addicts.com/forum/torrents.php 日韓劇基地
thepiratebay--torrentsearchget.com 軟件BT基地
2010年3月29日 星期一
C語言學習
scanf (“格式控制符 ”,地址表列);
格式化輸入函數,其中最後的為地址列表.
canf函数的格式说明:
格式说明 | 输入数据格式 |
%d | 输入十进制整型数 |
%i | 输入整型数,可以是带前导0的八进制数整数和带前导0x的十六进制整数 |
%c | 输入一个字符 |
%o | 输入八进制整型数 |
%x | 输入十六进制整型数 |
%u | 输入无符号的十进制整型数 |
%f | 以带小数点的形式或指数形式输入单精度数或双精度数 |
3 注意事项:
1) “格式控制符号” 与 “地址表列” 例: int x,y,z;
scanf(“%d%d%d”,&x,&y,&z)
输入数据之间有三种分隔方式:(假设分别是10 20 30)
a. 10(空格) 20空格30
b. 10(回车)20(回车)30(回车)
c. 10(tab)20(tab)30回车
例:int x,y,z;
scanf(“%d,%d,%d”,&x,&y,&z)
输入数据的方式是:
(1)10,20 ,30
(2)10,20,(回车)30(回车)
(3)10,(回车)20,(回车)30(回车)等
例:int x,y,z;
scanf(“x=%d,y=%d,z=%d”,&x,&y,&z)
输入数据的方式是: a=10,b=20 ,c=30
3) 在输入控制中,格式说明的类型与输入项的类型应该一一对应匹配。如果类型不匹配,系统并不给出出错信息,但不能得到正确的输入数据。当输入长整型数据时, 必须使用%ld格式,输入双精度时,必须使用%lf或%le,否则不能得到正确数据
例:double x,y,z;
scanf(“x=%d,y=%d,z=%d”,&x,&y,&z)
printf(“%f %f %f”,x,y,z)
输入数据的方式是:a=10,b=20 ,c=30
输出结果是:0.000000 1.345901533 0.000000
虽然没有错误提示,但结果不正确
例:double x,y,z
scanf(“x=%f,y=%f,z=%f”,&x,&y,&z)
printf(“%f %f %f”,x,y,z)
输入数据的方式是: a=10,b=20 ,c=30
输出结果是:0.000000 1.570157 0.000000
但结果是无效数据
例:double x,y,z
scanf(“x=%lf,y=%lf,z=%lf”,&x,&y,&z)
printf(“%f %f %f”,x,y,z)
输入数据的方式是: a=10,b=20 ,c=30
输出结果是:10.000000 20.000000 30.000000
4) 与printf相似,在scanf函数中的格式字符前可以用一个整数指定输入数据所占的宽度,但对实数据不能指定小数的位置
例:执行scanf(“%2d%2d”,&a,&b); 的输入是123456, 则a值为( 12 ),b值为(34 )
例:scanf (“%4.2f”,&f);
5) 跳过输入数据的方法。可以在格式字符与%之间加入一个“*”使输入过程跳过输入的数据。
例:int x,y,z;
scanf(“%d%*d%d%d”,&x,&y,&z)
输入数据的方式是: 10 20 30 40
则系统会把10赋给变量x,跳过数据20,把30赋给变量y,把40赋值给变量z
6) 在输入控制中,格式说明的个数与输入项的个数应该相同。如果格式说明的个数少于输入项的个数,系统自动结束输入,多余的数据没有被读入,但可以作为下一个 输入操作的输入数据,如果格式说明的个数多余输入项的个数,系统同样自动结束输入。
例 int a,b,c;
scanf(“%d%d”,&a,&b,&c);
输入数据形式:10 20 30回车,由于输入控制中只有两个格式说明%d,则只能对a 和b变量分别输入10和20,而30不能被读入,只能作为以后其输入数据。
若后面加一条:scanf(“%d”,&z),那么就自动的把30赋给z
7) 关于 “%c”格式
scanf(“%c%c%c”, &x, &y, &z);
输入方式:abc <回车> x的值是a,y的值是b,z的值是c
若输入方式是:a b c <回车> x的值是a, y的值是空隔,z的值是b因此,对于字符型在输入数据时不能随意加其他字符
要加地址符号& |
main()
{ char ch[5]; int i;
for(i=0;i<4;i++)>
不加入地址符号& |
{ char ch[5]; int i;
scanf(“%s”, ch);
数组名代表该数组的首地址 |
}