Drawgrid 中如何在特定的cell中動態加入image,richedit元件? |
答題得分者是:cmf
|
sbt
一般會員 發表:16 回覆:15 積分:6 註冊:2003-01-01 發送簡訊給我 |
|
banson1716
高階會員 發表:55 回覆:182 積分:167 註冊:2002-04-14 發送簡訊給我 |
|
懷舊的人
高階會員 發表:28 回覆:152 積分:141 註冊:2003-01-08 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
引言: 大家好: 動態形成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 發送簡訊給我 |
引言:若能在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引言: 設計一個popupmenu 含兩個itmes--[加入圖形]及[加入文字] 當滑鼠到某一cell中,選擇items執行 在drawgrid 中的某一Cell動態加入一個image,或richedit煩請將引言的部份再詳細說明嗎??????? |
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
引言: 若能在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 是如何寫的
------
︿︿ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |