BeforePost(DocSysMainForm.EditEmployee.text,'DOC01',
DocSysMainForm.EditTerminal.text)というソースがあります。
()の中が何をしめそうとしているのかわかりません。
わかる方教えてください。
謎ときですね。
なぞは解けた!
その答えは、このソースを書いた人が一番よく知っている!
作成した人が今はいなくなってしまって聞けないのです。
とりあえず、
DocSysMainForm.EditEmployee.textは
DocSysMainフォームのEditEmployeeコンポーネントに書かれている文字
DocSysMainForm.EditTerminal.textは上記と同じ
'DOC01'は微妙?
やっぱりわからないっすかねぇ^^;
BeforePostの構文のかなとも思ったのですが、わかる人いてくれ〜!
お願いします。
困ってるのはわかるけど、構文って言ったって、パラメータの中身を説明できませんよ。世間の人たちはBeforePostは、TDataSetのプロパティであるくらいしか知らないのですから。あなたは、「僕のおかーちゃんの名前、お父さんの仕事、おばーちゃんの年齢」を知っていますかと聞いているわけですよ。
なんと言えばいいか、とりあえず、BeforePostの意味はわかるんですが、
()の中身がどういう決まりで書かれているのかがわからないんです。
たとえば、(検索するもの、挿入する場所、挿入するもの)見たいな感じで
その場所に書いたものはどういう働きをしようとしているものなのかを
教えてほしいんです。
もとのソースがあって、IDEで編集中の場合、Ctrlを押しながらそのBeforePostの出てくる部分をクリックすれば、定義なりが出てくると思いますのでまずはそれを試されるべきですね。
BeforePostでブレークポイントつけて実行。
止まったら、トレース実行したら?
作成した人がいなくても、ソースを追いかけることはできるんじゃないの?
BeforePostが定義されているユニットが存在し、{$D-} オプションが
ついていなければ、メソッド内部に飛ぶでしょう。
ふむ 氏の言うとおり、我々には BeforePost=TDataSet(及びその継承クラス)の
イベントでしかありません。
そういうものについて教えて欲しいと言われても「わかりません」としか
答えようがないでしょう。
質問の意図と異なる解釈でしたらすみません。
どうもこのメソッドはTDataSetのイベントでは無いように思えます。
この部分だけをあげられても解りません。
'DOC01'は文字通り定数でしょう。
肝心のこのメソッド一式がないと解りません。
なんだかややこしい質問をしてしまい申し訳ありません。
一式というのは
procedure TFormDocInput.Table1BeforePost(DataSet: TDataset);
begin
DBLPanel1.BeforePost(DocSysMainForm.EditEmployee.text,'DOC01',
DocSysMainForm.EditTerminal.text);
end;
でしょうか?
一応ヘルプ等でで見たのですが、()の中の書き方の定義等は
見当たりませんでした><
だいぶ見えてきましたよ。
> 一応ヘルプ等でで見たのですが、()の中の書き方の定義等は
> 見当たりませんでした
私がこれまでに推測できるのは
1.DocSysMainFormはフォームまたはそれを継承したコントロールである。
2.EditEmployee、EditTerminalはおそらくTEditまたはそれを継承したコントロールである。
3.テツさんあなたは軽装でエベレストに登る人です。
4.HOtaさん、ふむふむふむの助さんと私は解ってます。
最低限DBLPanel1.BeforePostの中身(実装部)を見ないではこれしかわかりません。
新参者です。
DBLPanel1.BeforePost(DocSysMainForm.EditEmployee.text,'DOC01',
DocSysMainForm.EditTerminal.text);
このソースを見る限り、()内にはString型などの文字列を3つ指定しています。
'DOC01'
は定数である事は間違いないでしょう。
DocSysMainForm.EditEmployee.text
DocSysMainForm.EditTerminal.text
はDocSysMainFormのTEditのテキストを入れています。
DBLPanel1.BeforePost
は、DBLPanel1のBeforePostイベント(おそらく)。
BeforePostと言うくらいだからPostする前にしようとしているのしょう。
TDataSetのBeforePostはヘルプに
「 BeforePost イベントは,アプリケーションがアクティブレコードの変更をデータベースまたは変更ログに登録する前に発生します」
とかかれています。
つまり、Table1のBeforePostイベントでDBLPanel1のBeforePostイベントを
実行したいと言う事でしょう。その際の引数が上に書いた三つ。
Ctrlキーを押しながら、DBLPanel1.BeforePostのBeforePostの位置にマウス
を持っていくとBeforePostが下線表示になり、それをクリックすると
その定義に飛んでいけるはず。(ソースがあれば、拒否されてなければ)
出来れば、そのソースを出してみて下さい。
ひとまず、現在の情報ではここまでが精一杯だと思います。
DBLPanel1 って何ですか?
TDBLPanel?
それは、Delphi標準のコンポーネントかクラスですか?
(自分の知る限り)そうではないでしょう。
ならばDelphiのヘルプ見ても、定義について書いてあるはずがありませんね?
それと、トレース実行しました?
せっかくコアに近づけるかもしれない回答をしたのに、反応がない。
シモさんのレスにもあるように、DBLPanel1.BeforePost のソース
(あなたが先に提示した一式の部分ではなく、DBLPanel1.BeforePostの実装部)
を提示してください。
それができないのであれば、DBLPanel1.BeforePost の中身を知らない我々に
できる唯一の回答は「わかりません」です。
もしかして、ソースがあるだけで、Delphiをインストールしていないのでしょうか?
sa
勝手に解決されている^^;
皆さんありがとうございました。
とりあえず、皆さんの意見を参考にがんばって見ます。
一応業務上のものなのでこれ以上は詳しく記載できないのが
残念です><
DBLPanelはユーザさんが作成したものみたいで資料が無いのです。
とにかく、ありがとうございました。
> DBLPanelはユーザさんが作成したものみたいで資料が無いのです。
資料がないということは、ソースコード(pas)もない?
提供は コンパイル済みユニット(dcu) だけってことですか?
資料はなくとも、ソースコードがあれば、なんとかなりそうな気がするのですが?
要するに、
DBLPanel1.BeforePost(DocSysMainForm.EditEmployee.text,'DOC01',
DocSysMainForm.EditTerminal.text);
の中身をみないと何もわからないことです。
ツイート | ![]() |