掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的に作成したMaskEditのTextをDBへ登録する際のエラーについて (ID:24328)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
DL6Pro,Xp、DBはInterBaseを利用、IBDataSetを利用しています Tag等を利用して固有の名前を付けたMsakEdit,CheckBox,LabeledEditを動的に作成し、各項目に入力後、データを更新するため、以下のコードを作成しました。 試行錯誤の結果、以下のコードで、最終的には期待どうりの結果は得られたのですが、何故、DBに書き込む前にMaskEdit LabeledEditコンポーネントのTextの値を以下のように変換する必要があるのか理解できません。 S1,S2の値をTmaskEdit(Find・・・・)で直接置き換えるとアドレス違反のエラーが発生します。 よろしくお願いします。 procedure TFrmIndSchedule.Button3Click(Sender: TObject); var I : Integer ; S,S1,S2 : String; const ItemName = 'Item'; //LabeledEdit共通部の名称 const DonDayName = 'DonDay' ; //MaskEdit共通部の名称 Const DonCheckSche = 'CBDon'; //CheckBox共通部の名称 begin for I := 0 to ItemNum -1 do //ItemNumは動的に作成したコンポーネントの数 begin case TCheckBox(FindComponent(DonCheckSche + IntToStr(I))).state of cbUnchecked : S := '0'; cbChecked : S := '1'; end; S1 := TLabeledEdit(FindComponent(ItemName + IntToStr(I))).Text; S2 := TMaskEdit(FindComponent(DonDayName + IntToStr(I))).Text; with DMAnshin.IBDSetScheduleMas do begin Locate('DoId',HSLDoId.Strings[I],[loCaseInsensitive]); Edit; FieldByName('DonDay').AsString := S1; //この部分へ上のコードTLabeledEdit(FindComponent(ItemName + IntToStr(I))).Textを直接記入するとエラーとなる。TLabeledEditも同様 FieldByName('CheckedDay').AsString := S2; FieldByName('DonCheck').AsString := S; Post; end; end; if Application.MessageBox('変更を保存しますか?','変更登録確認',MB_OKCANCEL,) = MB_OK then DMAnshin.IBDBKanri.ApplyUpdates([DMAnshin.IBDSetScheduleMas]); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.