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

StringGirdDrawCell 如何寫只執行一次就好

缺席
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-08-27 10:46:39 IP:122.116.xxx.xxx 訂閱
小弟有段程式碼
是在起始的時候
先把TadvStringGrid的一行字給刪除
但是小弟按照下方寫法
變成..我事後不斷在StrinGrid作Refresh的動作
資料會被減到一行
有沒有什麼辦法可以讓只有一開始執行就好
事後我不管怎樣ReFresh 都不要執行到我下列這行


[code delphi]
procedure TForm1.AdvStringGrid7DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
iRate, iRate2, i, j: Integer;
begin
if arow = AdvStringGrid6.RowCount - 1
then AdvStringGrid6.RowHeights[arow] := 0;
if arow = AdvStringGrid7.RowCount - 1
then AdvStringGrid7.RowHeights[arow] := 0;
[/code]
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
老大仔
尊榮會員


發表:78
回覆:837
積分:1088
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-08-27 12:51:04 IP:120.107.xxx.xxx 未訂閱
你可以設個boolean值
判斷是否為True時再執行也行

供參考~
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-08-27 14:22:50 IP:122.116.xxx.xxx 訂閱
我這樣說好了

TadvStringGrid 試用版會有各版本顯示遮住
那網路上搜尋解法如我上述source 一樣
但是資料refresh 之後也會被砍掉一行
有沒有不砍掉那一行的方法 又可以讓版本顯示清除掉呢??
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-08-27 14:48:24 IP:122.116.xxx.xxx 訂閱
我想到 如果把這段改放在 FormShow裡面呢??
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-08-27 22:02:35 IP:122.116.xxx.xxx 未訂閱
您好,

我給你拍拍手


===================引 用 lovemari 文 章===================
我想到 如果把這段改放在 FormShow裡面呢??
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
chenyk
高階會員


發表:14
回覆:95
積分:171
註冊:2002-07-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-08-28 12:09:31 IP:125.230.xxx.xxx 訂閱
OnFormShow 在程式最小化後再打開視窗,會再被呼叫.
建議如老大仔大大所言,加個 boolean 變數於程式執行過一次後
下次執行時忽略此段程式,比較保險。
===================引 用 lovemari 文 章===================
我想到 如果把這段改放在 FormShow裡面呢??
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-08-28 14:10:14 IP:122.116.xxx.xxx 未訂閱

老大仔大大所言是保險的沒錯.

不過,
OnFormShow 在程式最小化後再打開視窗,會再被呼叫
這句好像有待商榷

tform 的 show event :
Occurs when the form is shown (that is, when its Visible property is set to True).



===================引 用 chenyk 文 章===================
OnFormShow 在程式最小化後再打開視窗,會再被呼叫.
建議如老大仔大大所言,加個 boolean 變數於程式執行過一次後
下次執行時忽略此段程式,比較保險。
===================引 用 lovemari 文 章===================
我想到 如果把這段改放在 FormShow裡面呢??
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
編輯記錄
st33chen 重新編輯於 2009-08-28 14:11:02, 註解 無‧
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-08-28 17:33:36 IP:122.116.xxx.xxx 訂閱
FormCreate 呢= =

我有加入一段簡單判斷
If AdvStringGrid7.Cells[1, Arow] = '' then begin
if arow = AdvStringGrid6.RowCount - 1
then AdvStringGrid6.RowHeights[arow] := 0;
if arow = AdvStringGrid7.RowCount - 1
then AdvStringGrid7.RowHeights[arow] := 0;
end;

但是還是不能解決@_@
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#9 引用回覆 回覆 發表時間:2009-08-29 12:06:24 IP:211.75.xxx.xxx 未訂閱
在FormCreate時
資料都已經加到StringGrid裡了嗎?

為何要把資料加入到StringGrid後
又要在一開始把它刪除?
一開始就不要加入那筆資料不行嗎?
------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#10 引用回覆 回覆 發表時間:2009-08-31 15:15:03 IP:122.116.xxx.xxx 訂閱
我說明一下
TadvStringGrid 的 試用版 會在StringGrid中會有多一行版本顯示來遮住你要看的資料
這是試用版的限制

那小弟是預設程式開啟的時候要自動刪除那一行版本顯示
只是小弟的程式是隻自動化報表
變成 ...每次重新跑一次StringGrid的時候 會自動的把我要的資料給刪去
而無法正確顯示
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#11 引用回覆 回覆 發表時間:2009-08-31 15:25:12 IP:122.116.xxx.xxx 訂閱
我真是笨...
剛想到只要每跑一次StringGrid
最後再幫它加上 RowCount 1
就好了阿= =

剛剛test 可以了

我真笨 那麼晚才想到
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
編輯記錄
lovemari 重新編輯於 2009-08-31 15:47:28, 註解 無‧
系統時間:2024-04-30 4:22:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!