お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





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

"RE:StringGridからの表引関数作成支援"

この発言は
#00590 ワカシ さんのStringGridからの表引関数作成支援
に対するコメントです

不具合があったので訂正いたしますm(_ _)m くだらないUPで申し訳ないです。表を引くような関数を作るときにCase文を 書いていくのが面倒だったのでStringGridから表引き関数を所定のTextFileに おとしこむだけのものです(^^;) (給与) (扶養家族)  0 1 2 3 ---------------------------------------------------------------- 205000 9750 6590 3420 250 207000 9890 6730 3560 390 209000 10030 6870 3700 530 上記のような表から関数を作るときにCase文で書くと大変なのでStringGridの 内容を関数化してDelphiで使えるユニットファイルにします。 Form上には[Edit][StringGrid][Button]を配置します。 StringGridはFixedColsとFixedRowsは0にして、goEditingをTrueに設定します。 procedure TForm1.Button1Click(Sender: TObject); var F: TextFile; i, j : Integer; Filen: String; //関数名&保存するFile名 Temp : String; begin Filen := Edit1.Text; AssignFile( F, Filen +'.pas' );  //ユニットファイルとして保存 Rewrite( F ); try Writeln(F,'Unit '+ Filen + ';'); Writeln(F,''); Writeln(F,'interface'); Writeln(F,''); Writeln(F, 'function ' + Filen + '( ColData, RowData: Integer ):Integer;' ); Writeln(F,''); Writeln(F,'implementation'); Writeln( F, 'function ' + Filen + '( ColData, RowData: Integer ):Integer;' ); Writeln( F, 'begin' ); Writeln( F, ' Result := 0;' ); Writeln( F, ' case ColData of' ); with StringGrid1 do begin for i := 1 to RowCount - 1 do begin if i = RowCount - 1 then begin Temp := ' else'; end else begin Temp := ' ' + Cells[ 0, i ] + '..' + IntToStr( StrToInt( Cells[ 0, i + 1 ] ) - 1 ) + ':'; end; Writeln( F, Temp ); Temp := ' case RowData of'; Writeln( F, Temp ); for j := 1 to ColCount - 1 do begin Temp := ' ' + StringGrid1.Cells[ j, 0 ] + ': Result := ' + StringGrid1.Cells[ j, i ] + ';' ; Writeln( F, Temp ); end;{for j := 1 to RowCount - 1 do} Writeln( F, ' end;{case RowData of}' ); end;{for i := 1 to ColCount - 1 do} Writeln( F, ' end;{case ColData of}' ); Writeln( F, 'end;' ); end;{with StringGrid1 do} finally CloseFile( F ); end; end; 98/6/24(Wed)  QZE02267 ワカシ            Flying with AirCraft 97 V2.07A GATEWAY 改ASUS TE97E with MMX233  Original document by ワカシ 氏 ID:(QZE02267)



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

Copyright 1996-2002 Delphi Users' Forum