お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"設計時に書き込めるStringGrid"

この発言に対し以下のコメントが寄せられています
#00989 TN さん 設計時に書き込めるStringGrid

StringGridの内容を設計時に書き込めるグリッドです. D4でしか確認していませんが,他のバージョンでも動くでしょう. CellStrings property にCSV形式であらかじめ設計時に文字列を書き込んで 置けば実行時に再現されます. TN(CQJ01721) unit ClientStringGrid; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids; type TClientStringGrid = class(TStringGrid) protected FCellStrings: TStringList; procedure SetCellStrings(St: TStrings); function GetCellStrings: TStrings; procedure CopyCellStringsToCell; procedure Loaded; override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property CellStrings: TStrings read GetCellStrings write SetCellStrings; end; procedure Register; implementation procedure Register; begin RegisterComponents('Samples', [TClientStringGrid]); end; { TClientStringGrid } procedure TClientStringGrid.CopyCellStringsToCell; var i: integer; Line: TStringList; begin Line := TStringList.Create; try RowCount := FCellStrings.Count; Line.CommaText := FCellStrings[0]; ColCount := Line.Count; for i := 0 to FCellStrings.Count -1 do begin Rows[i].CommaText := FCellStrings[i]; end; finally Line.Free; end; end; constructor TClientStringGrid.Create(AOwner: TComponent); begin inherited Create(AOwner); FCellStrings := TStringList.Create; end; destructor TClientStringGrid.Destroy; begin FCellStrings.Free; inherited Destroy; end; function TClientStringGrid.GetCellStrings: TStrings; var i: integer; begin if not (csLoading in ComponentState) then begin FCellStrings.Clear; for i := 0 to RowCount -1 do begin FCellStrings.Add( Rows[i].CommaText ); end; end; Result := FCellStrings; end; procedure TClientStringGrid.Loaded; begin inherited Loaded; CopyCellStringsToCell; end; procedure TClientStringGrid.SetCellStrings(St: TStrings); begin FCellStrings.Assign(ST); if St.Count < 1 then Exit; CopyCellStringsToCell; end; end. Original document by TN 氏 ID:(CQJ01721)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum