特急,編程時遇到三個問題,想了很久,時間實在不行了希望各位大哥賜教啊!小弟感恩不盡! (30分)

S

sydan

Unregistered / Unconfirmed
GUEST, unregistred user!
1.ADO中如何利用緩存技術呢?我設了CacheSize屬性,但是還是不行啊,第一我不會怎樣
將結果保存起來!第二我也不清楚還要設什麼沒有!!
***************************************
2.Win32頁中pageControl控件如何使其它頁面無效!但要看得到頁標題!
(我不要這樣 Tabsheet1.tabVisible:=True/False ) 我需要設他的Enabled.但我不會!
****************************************
3.如何設置浮點型字段的格式如下
輸入 12.123 想要達到光標離開時 12.123 而實際時 12.123
12 12.000 [在這時自動補上三個零] 12

都快把我給急死了,懇求各位大哥相助啊!!
第二個問題至今還沒有讓我得到一個滿意的答案,望各位仁兄幫忙!多謝.
 
2、
TabSheet1.TabVisible:=False
 
设置浮点字段的DisplayFormat为:#0.000,似乎就应该可以。
 
TO:yzhshi
TabSheet1.TabVisible:=False 是不讓見了,但我只想讓它的標遷,(頁標頭無效而以啊)
你能有更好的方法嗎?
 
你的问题不算简单。 看你的分不少吗?为什么还这么吝啬呢?
 
要使用A D O的B a t c h U p d a t e功能,程序员必须在A D O E x p r e s s组件中进行一些
必要的设定,才能够让A D O进入B a t c h U p d a t e的模式。下面就是进入B a t c h U p d a t e模
式的必要设定:
• 设定C u r s o r Ty p e为K e y S e t或S t a t i c。
• 设定L o c k Ty p e为B a t c h O p t i m i s t i c。
• 执行的S Q L命令必须是S e l e c t。
除此之外,C u r s o r L o c a t i o n也是程序员必须考虑的设定。虽然在M i c r o s o f t的文
件中说明, B a t c h U p d a t e可以使用S e r v e r-Side Cursor或Client-Side Cursor。但是,
如果使用B a t c h U p d a t e再搭配S e r v e r-Side Cursor ,那么不但无法使用稍后介绍的
B r i e f c a s e模型,在执行效率上也不好。这在第4章中会详细讨论。因此建议各位,
如果要使用B a t c h U p d a t e模式,那么最好使用Client-Side Cursor。
A D O D a t a S e t 1 . U p d a t e B a t c h ;
A D O D a t a S e t 1 . C a n c e l B a t c h ;

 
TO:sjf6957000
分不是問題,因為有時候我發了一個大分的貼子,而問題沒能達到我想要的結果,但分
又不能收回來!所以我提問題時相對分就發得少了,如果您能夠令我非常滿意的完成所有問
題那麼您要多少都不是問題了!
當然,如果你不相信我就沒辦法了!
 
第1个问题,vine的回答是正确的,不清楚的话可以看看李维的书,网上也该书的前四章,
足够解决你的问题。

第2个问题,只须将页的Enabled=False即可。
 
TO:SunnyZheng
李維的書哪里有得下載,我現在手頭上沒一本是他的書!!
控制某些頁不能點選我也試過Enabled,但是也好像沒有用哦!不知你有沒有試過呢.煩請
測測,因為他太怪了.多謝.
 
2、我看你的问题的时候你写的似乎不是TabVisible,否则我不会重新写一下的。
(我不要這樣 Tabsheet1.tabVisible:=True/False ) 我需要設他的Enabled.但我不會!

如果你叫真不用 TabVisible,那么你可以在PageControl的OnChanging里面设置AllowChange:=False,就可以了。
 
TO:yzhshi
因為我是一個初學Delphi的.但我想靈活的控制那個頁面控件.那我該如何做呢,我試了
你的答案是OK了.那我又想,如果我按下某個控鈕后就不可以到當前頁以外的其它頁了,而
當我按下另一個按鈕后就可以跳到其它頁了.應該如何做呢?麻煩你了.多謝!!
 
設置AllowChange為true
再設置PageControl的ActivePage或ActivePageIndex來控制頁的跳轉
 
1、PageControl1.ActivePageIndex:=1
2、TabSheet2.Show
3、PageControl1.ActivePage:=TabSheet2
这些都可以。
但是如果你在OnChangeing里面加了代码,就不好说了。
 
TO:yzhshi
我想你可能還沒有完全理解我的意思,是這樣的,我想呢當用戶在TabSheet2中按下某個
鍵時,用戶使不可以再選擇其它的TabSheet頁了,直到用戶按下另一個解除鍵后才恢復正常
使用.也就是在用戶沒有按下第一個鍵時是可以隨便跳到任何頁面的,但是一旦用戶按了就
不行了!!
 
我知道。
比如,你要处于修改状态,那么列表页就不能显示,当点击了保存或者取消的时候,就允许进行切换。
其实,最好的是设置TabVisible,也可以使用OnChanging事件
{-最-简-单-的-办-法-}
{在第二页修改,隐藏第一页}
procedure TForm1.btnEditClick(Sender: TObject);
begin
TabSheet1.TabVisible := False;
end;

{修改完成,显示第一页}
procedure TForm1.btnSaveClick(Sender: TObject);
begin
TabSheet1.TabVisible := True;
end;

{※使用OnChanging事件的,需要一个全局变量配合※}
var
CurState: Integer; {0:正常 1:修改 2:……}


procedure TForm1.btnEditClick(Sender: TObject);
begin
CurState := 1; {设置处于修改状态}
TabSheet2.Show;
end;

{修改完成,显示第一页}
procedure TForm1.btnSaveClick(Sender: TObject);
begin
CurState := 0; {设置处于修改状态}
end;

procedure TForm1.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
if CurState <> 0 then
AllowChange := False;
end;
 
来自:vine, 时间:2002-9-9 9:27:00, ID:1314229
要使用A D O的B a t c h U p d a t e功能,程序员必须在A D O E x p r e s s组件中进行一些
必要的设定,才能够让A D O进入B a t c h U p d a t e的模式。下面就是进入B a t c h U p d a t e模
式的必要设定:
• 设定C u r s o r Ty p e为K e y S e t或S t a t i c。
• 设定L o c k Ty p e为B a t c h O p t i m i s t i c。
• 执行的S Q L命令必须是S e l e c t。
除此之外,C u r s o r L o c a t i o n也是程序员必须考虑的设定。虽然在M i c r o s o f t的文
件中说明, B a t c h U p d a t e可以使用S e r v e r-Side Cursor或Client-Side Cursor。但是,
如果使用B a t c h U p d a t e再搭配S e r v e r-Side Cursor ,那么不但无法使用稍后介绍的
B r i e f c a s e模型,在执行效率上也不好。这在第4章中会详细讨论。因此建议各位,
如果要使用B a t c h U p d a t e模式,那么最好使用Client-Side Cursor。
A D O D a t a S e t 1 . U p d a t e B a t c h ;
A D O D a t a S e t 1 . C a n c e l B a t c h ;

 
只需要在你的Pagecontrol的onchanging事件中进行限制就可以了,没有必要去设什么
enable.
 
同意楼上的意见。
还有,以后提问题不要用繁体,这样看着辛苦。
 
谢谢各位仁兄的参与。第二个问题看来要达到我所想的目的也许不太可能了。现在就把分先分给各仁兄吧!谢谢。
 
顶部