全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3141
推到 Plurk!
推到 Facebook!

Drawgrid 中如何在特定的cell中動態加入image,richedit元件?

答題得分者是:cmf
sbt
一般會員


發表:16
回覆:15
積分:6
註冊:2003-01-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-10 01:41:35 IP:203.204.xxx.xxx 未訂閱
大家好: 動態形成image 需指定parent;在drawgrid中如何操作? 我的目地是: 設計一個popupmenu 含兩個itmes--[加入圖形]及[加入文字] 當滑鼠到某一cell中,選擇items執行 在drawgrid 中的某一Cell動態加入一個image,或richedit 是否可行? grid元件中再加入元件好像很難?
banson1716
高階會員


發表:55
回覆:182
積分:167
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-10 02:45:25 IP:61.223.xxx.xxx 未訂閱
引言: 設計一個popupmenu 含兩個itmes--[加入圖形]及[加入文字] 當滑鼠到某一cell中,選擇items執行 在drawgrid 中的某一Cell動態加入一個image,或richedit
煩請將引言的部份再詳細說明嗎???????
懷舊的人
高階會員


發表:28
回覆:152
積分:141
註冊:2003-01-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-10 11:05:48 IP:152.104.xxx.xxx 未訂閱
引言: 不難,請參考Delphi Master 6,內有範例教你使用,它是以DBGrid為範例, 需要自己運用,謝謝,請加油!可以等油價降了再加!
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-10 11:16:39 IP:147.8.xxx.xxx 未訂閱
You may want to pay particular attention to TInplaceEdit. As 懷舊的人 already pointed out, DBGrid is an excellent example of using inplace editing. 
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-01-10 12:18:42 IP:61.218.xxx.xxx 未訂閱
引言: 大家好: 動態形成image 需指定parent;在drawgrid中如何操作? 我的目地是: 設計一個popupmenu 含兩個itmes--[加入圖形]及[加入文字] 當滑鼠到某一cell中,選擇items執行 在drawgrid 中的某一Cell動態加入一個image,或richedit 是否可行? grid元件中再加入元件好像很難?
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, Grids, ExtDlgs; type TForm1 = class(TForm) DrawGrid1: TDrawGrid; PopupMenu1: TPopupMenu; ADDIMAGE: TMenuItem; ADDTEXT: TMenuItem; OpenPictureDialog1: TOpenPictureDialog; procedure ADDIMAGEClick(Sender: TObject); procedure ADDTEXTClick(Sender: TObject); procedure DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); procedure DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); procedure FormCreate(Sender: TObject); private { Private declarations } texts:TStringList; Images:Timagelist; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ADDIMAGEClick(Sender: TObject); var i:integer; bmp:TBitmap; begin if OpenPictureDialog1.Execute then begin i:=DrawGrid1.Row*DrawGrid1.ColCount DrawGrid1.Col; Images.GetBitmap(i,bmp); bmp.LoadFromFile(OpenPictureDialog1.FileName); end; end; procedure TForm1.ADDTEXTClick(Sender: TObject); var InputString: string; i:integer; begin InputString:= InputBox('Input Box', 'Prompt', ''); i:=DrawGrid1.Row*DrawGrid1.ColCount DrawGrid1.Col; texts.Strings[i]:=InputString; end; procedure TForm1.DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); var pt:TPoint; r:TRECT; begin if (ACol>1) and (ARow>1) then begin CanSelect:=TRUE; r:=DrawGrid1.CellRect(ACol, ARow); pt.X:=r.Left; pt.Y:=r.Top; DrawGrid1.ClientToScreen(pt); PopupMenu1.Popup(p1.x.pt.y); end else begin CanSelect:=FALSE; end; end; procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var i:integer; s:string; bmp:string; begin i:=ARow*DrawGrid1.ColCount ACol; s:=texts.Strings[i]; bmp:=Images.GetBitmap(i,bmp); DrawGrid1.Canvas.Draw(RECT.x,RECT.Y,bmp); DrawGrid1.Canvas.TextOut(RECT.x,RECT.Y,s); if State then DrawGrid1.Canvas.FrameRect(RECT); end; procedure TForm1.FormCreate(Sender: TObject); var i,count:integer; bmp:TBitmap; begin count:=DrawGrid1.RowCount*DrawGrid1.ColCount; texts:=TStringList.Create; Images:=Timagelist.Create(self); for i:=0 to count-1 do begin texts.Add(' '); bmp:=TBitmap.Create; Images.Add(bmp,nil); end; end; end.
------
︿︿
sbt
一般會員


發表:16
回覆:15
積分:6
註冊:2003-01-01

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-01-12 01:54:35 IP:203.204.xxx.xxx 未訂閱
引言:
引言: 設計一個popupmenu 含兩個itmes--[加入圖形]及[加入文字] 當滑鼠到某一cell中,選擇items執行 在drawgrid 中的某一Cell動態加入一個image,或richedit
煩請將引言的部份再詳細說明嗎???????
若能在drawgrid中動態加入imagem元件,則我就會用滑鼠拖圖到這個cell中 若能在drawgrid中動態加入richedit元件,則我就可讓user輸入多行文字 動態形成元件需指定parent,在drawgrid 的 cell中如何完成˙ 我的狀況如下: 畫面上方我用pagecontrol的tabsheet1~3 各放了5 張圖 我要在下方讓使用者自訂drawgrid的欄數及列數 1.讓user直接用滑鼠拖圖到任何一個cell中 2.讓user直接在某cell中輸入多行文字 發表人 - sbt 於 2003/01/12 02:05:13
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-01-12 15:27:39 IP:61.70.xxx.xxx 未訂閱
引言: 若能在drawgrid中動態加入imagem元件,則我就會用滑鼠拖圖到這個cell中 若能在drawgrid中動態加入richedit元件,則我就可讓user輸入多行文字 動態形成元件需指定parent,在drawgrid 的 cell中如何完成˙ 我的狀況如下: 畫面上方我用pagecontrol的tabsheet1~3 各放了5 張圖 我要在下方讓使用者自訂drawgrid的欄數及列數 1.讓user直接用滑鼠拖圖到任何一個cell中 2.讓user直接在某cell中輸入多行文字 發表人 - sbt 於 2003/01/12 02:05:13
我的建議是 自製一元件 繼承自 Tdrawgrid 如: DELPHI->Component menu-> New Component Ancestor Type = Tdrawgrid Class Name = TSBT_Grid Palette Page = SBT Unit File Name = SBT_Grid.PAS 然候到 SBT_GRID.PAS 開始編輯 你要的功能 你可以參考 grids.pas source file 看 stringgrid 是如何寫的
------
︿︿
系統時間:2024-04-29 11:47:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!