Laboratory of Mobile Agricultural Chemicals Searcher
携帯農薬検索実験室

研究会

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
11 / 114 ツリー <前へ | 次へ>

〔974〕ACFinder 090801test版 kabe (09/08/01 22:54)

〔996〕ACFinder 090807版 kabe (09/08/07 6:52)
〔997〕Re:ACFinder 090807版 Hidemi Oya (09/08/08 10:43)
〔998〕Re:ACFinder 090807版 Hidemi Oya (09/08/08 12:36)
〔999〕Re:ACFinder 090807版 kabe (09/08/08 19:18)
〔1000〕Re:ACFinder 090807版 Hidemi Oya (09/08/08 22:41)
〔1002〕Re:ACFinder 090807版 kabe (09/08/09 22:18)
〔1003〕Re:ACFinder 090807版 Hidemi Oya (09/08/10 1:16)
〔1013〕ブルウェルアとロウカルア Hidemi Oya (09/08/13 10:01)
〔1005〕ACFinder 090811test版(EXEのみ) kabe (09/08/11 7:28)
〔1006〕Re:ACFinder 090811test版(EXEのみ) Hidemi Oya (09/08/11 21:09)
〔1007〕Re:ACFinder 090811test版(EXEのみ) kabe (09/08/12 12:20)
〔1008〕Re:ACFinder 090811test版(EXEのみ) Hidemi Oya (09/08/12 17:59)
〔1009〕Re:ACFinder 090811test版(EXEのみ) Hidemi Oya (09/08/12 22:25)
〔1012〕KeyUp 時のみ表示 Hidemi Oya (09/08/13 7:45)
〔1014〕Re:KeyUp 時のみ表示 Hidemi Oya (09/08/13 18:54)
〔1010〕Re:ACFinder 090811test版(EXEのみ) Hidemi Oya (09/08/12 22:34)
〔1011〕屋号「キング」 Hidemi Oya (09/08/12 23:07)
〔1015〕ACFinder 090815版 kabe (09/08/15 22:38)
〔1016〕Re:ACFinder 090815版 Hidemi Oya (09/08/16 18:56)
〔1017〕Re:ACFinder 090815版 Hidemi Oya (09/08/16 19:28)
〔1018〕Re:ACFinder 090815版 kabe (09/08/18 22:16)
〔1019〕ACFinder 090823版 kabe (09/08/23 17:29)
〔1020〕Re:ACFinder 090823版 Hidemi Oya (09/08/23 23:04)

〔996〕ACFinder 090807版
 kabe WEB  (09/08/07 6:52)

引用なし
   kabe です。

090807版に差し替えました。
http://acfinder.kabe.info/

日替わりですいません。落ち着くまでテスト版とした方がよかったかもしれませんが、正式版で公開してしまったので、差し替えで対応します。

[#995]
>薬剤タブの通称や登録番号タブでフェロモン剤をクリックすると、「検索データに一致するデータはありません」という警告が毎回出てくる
系統タブで系統分類名「性フェロモン」の検索結果が出てこないからですね。

SELECT DISTINCT tsusho FROM kihon WHERE bango IN( SELECT bango FROM kihon WHERE seibun IN (SELECT seibun FROM bunrui WHERE keito = '性フェロモン')) ORDER BY tsusho

総使用回数における有効成分が設定されていないせいでしょうか?
とりあえず、
SELECT DISTINCT tsusho FROM kihon WHERE bango IN( SELECT bango FROM kihon WHERE ippanmei ...
に変更して対応しています。

動作確認お願いします。

〔997〕Re:ACFinder 090807版
 Hidemi Oya WEB  (09/08/08 10:43)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>総使用回数における有効成分が設定されていないせいでしょうか?
 ですね。フェロモン剤は薬検のデータでも登録上の有効成分が設定されてないので、こちらで勝手に設定するわけにもいきません。今回の回避方法が正解かと。
 ところで、体勢に影響はないと思いますが、kihon ビューを使うより、下記のように実テーブル(m_kihon, seibun)を使った方がわずかに高速でした。
SELECT DISTINCT tsusho FROM m_kihon WHERE bango IN( SELECT bango FROM seibun WHERE ippanmei IN (SELECT seibun FROM bunrui WHERE keito = '有機リン')) ORDER BY tsusho;

 あと、細かな話で申し訳ありませんが、薬剤タブで以前から気になっている点を2つ。
 ひとつは、薬剤候補を入力して通称と番号を検索したら、成分と系統のリストボックスはクリアした方が分かりやすいと思います。前に選択した農薬の成分と系統の一覧が残っているってのはどうも…。
 もうひとつは、通称/登録番号一覧をキーボードで移動していくと、検索・表示が追いつかずにエラーになってしまう点です。これは、下記のような方法で回避できるかと思います。さらに、キーボード選択の場合は、OnKeyDown じゃなくて OnKeyUp の時だけイベント処理すれば完璧かな?

1. 通称/登録番号選択時に処理中フラッグを立てる
2. 選択された農薬の一連の検索・表示処理が終わったら処理中フラッグをクリアする
3. 処理中フラッグが立っている場合は、他の農薬が選択されてもイベント処理を実行しない

〔998〕Re:ACFinder 090807版
 Hidemi Oya WEB  (09/08/08 12:36)

引用なし
    ついでに、作物/病害虫/定型処理/SQL の各タブについては、ボタン等を貼り付けたパネルを Disabled してから検索・表示処理を実行するようにして、検索・表示処理中は他のイベントが発生しないようにすれば、時間がかかる処理中でも安心ですね。
 なお、検索・表示処理が終わったらパネルを Enabled に戻すのはもちろんですが、検索結果がない場合や SQL エラー時などの例外処理後もパネルを Enabled に戻すのを忘れないでください。薬剤タブで再入防止フラッグを使用する場合も、例外処理後はフラッグをクリアしておく必要があります。

〔999〕Re:ACFinder 090807版
 kabe WEB  (09/08/08 19:18)

引用なし
   >Hidemi Oyaさん

kabe です。

> フェロモン剤は薬検のデータでも登録上の有効成分が設定されてないので、こちらで勝手に設定するわけにもいきません。

 薬剤タブの成分タブは「総使用回数における有効成分」の同じ薬剤を選択しているので、性フェロモンの場合、これも出てきません。
 m_kihon テーブルの有効成分1〜5(seibun1〜seibun5)は、農薬の種類から分離しているので、フェロモン剤の場合、seibun1〜seibun5 が、どの有効成分(ippanmei)に対応してるのか、わからないという不具合はありますね。
seibun テーブルを作成する際に、厳密には「総使用回数における有効成分」ではありませんが、便宜的に seibun フィールドにロウカルアとか追加すると、実用上は便利そうです。

根本的に有効成分については、成分マスターテーブルを作成して、各種別名を一元的に管理するべきかもしれません。

〔1000〕Re:ACFinder 090807版
 Hidemi Oya WEB  (09/08/08 22:41)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

> 薬剤タブの成分タブは「総使用回数における有効成分」の同じ薬剤を選択しているので、性フェロモンの場合、これも出てきません。
 ですね。下記のように、seibun が NULL の場合は ippanmei を使うようにすると良いかもしれません。展着剤でも役に立ちそう。
SELECT DISTINCT IFNULLSTR(seibun, ippanmei) FROM seibun WHERE bango IN(SELECT bango FROM m_kihon WHERE tsusho = '〜');

> m_kihon テーブルの有効成分1〜5(seibun1〜seibun5)は、農薬の種類から分離しているので、フェロモン剤の場合、seibun1〜seibun5 が、どの有効成分(ippanmei)に対応してるのか、わからないという不具合はありますね。
 一応、ブルウェルア・ロウカルア剤以外は betsumei テーブルに入れてあります。ブルウェルア・ロウカルア剤は分離できなかったので「ブルウェルア・ロウカルア剤」として betsumei テーブルに登録してありますが、下記 URL によるとブルウェルアが2剤みたいですね。とりあえず、betsumei テーブルの「ブルウェルア・ロウカルア剤」は次のように修正してください(全角バージョンも)。
http://s-agritech.pref.gunma.jp/fmi/xsl/zai_hyouji.xsl%3Bjsessionid=2968E2C2C11A844B04B17F2B5B82F729?-lay=web&t_no=18431&t_no.op=eq&-find=-find 

INSERT INTO spec.betsumei VALUES('ブルウェルア','(Z)-9-ヘキサデセナール');
INSERT INTO spec.betsumei VALUES('ブルウェルア','(Z)-11-ヘキサデセン-1-オール');
INSERT INTO spec.betsumei VALUES('ロウカルア','(Z)-11-ヘキサデセナール');
INSERT INTO spec.betsumei VALUES('ロウカルア','(Z)-9-テトラデセニル=アセタート');
INSERT INTO spec.betsumei VALUES('ロウカルア','(Z,E)-9,12-テトラデカジエニル=アセタート');

>seibun テーブルを作成する際に、厳密には「総使用回数における有効成分」ではありませんが、便宜的に seibun フィールドにロウカルアとか追加すると、実用上は便利そうです。
 そうなんですが、それをやると薬検の検索システムでは表示されないフェロモン剤の成分が表示されてしまうことになるのが問題ですね。使用回数とかを規定する部分の表示が薬検のシステムと違ってしまうのは避けたいです。

>根本的に有効成分については、成分マスターテーブルを作成して、各種別名を一元的に管理するべきかもしれません。
 オリジナルデータはなるべくいじらずにリレーションで対応しようということで、betsumei テーブルを作ったりしたのでは? betsumei と bunrui は統合しちゃってもいいと思いますが、あとは seibun テーブルといかに連携させるかという方向で考えてもいいのでは…。

〔1002〕Re:ACFinder 090807版
 kabe  (09/08/09 22:18)

引用なし
   >Hidemi Oyaさん
kabe です。

> 下記のように、seibun が NULL の場合は ippanmei を使うようにすると良いかもしれません。展着剤でも役に立ちそう。
>SELECT DISTINCT IFNULLSTR(seibun, ippanmei) FROM seibun WHERE bango IN(SELECT bango FROM m_kihon WHERE tsusho = '〜');
これでいってみます。

> 下記 URL によるとブルウェルアが2剤みたいですね。とりあえず、betsumei テーブルの「ブルウェルア・ロウカルア剤」は次のように修正してください(全角バージョンも)。
なんか根本的なところがわからなくなってきました。
ブルウェルア以外の残り3つがセットでロウカルアという解釈なんでしょうか?
>INSERT INTO spec.betsumei VALUES('ロウカルア','(Z)-11-ヘキサデセナール');
(Z)-11-ヘキサデセナール はダイアモルアとしても入っていますが・・・・
複数の有効成分を含むセット品がロウカルアとかいう誘引剤になると解釈していいんでしょうか。
そうすると毒性、魚毒性は、個々の有効成分(一般名)には設定されておらず、セットとのしての誘引成分に設定されているということになるのでしょうか。

> オリジナルデータはなるべくいじらずにリレーションで対応しようということで、betsumei テーブルを作ったりしたのでは?
これについては、基本的な考え方として了解しました。

〔1003〕Re:ACFinder 090807版
 Hidemi Oya WEB  (09/08/10 1:16)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>ブルウェルア以外の残り3つがセットでロウカルアという解釈なんでしょうか?
 ブルウェルア以外のダイアモルアとリトルアとスモールアもそれぞれ複数の成分で構成されているので、あの表の3種類のそれぞれ一部の混合がロウカルアとしか解釈できなさそうですけど…。

>そうすると毒性、魚毒性は、個々の有効成分(一般名)には設定されておらず、セットとのしての誘引成分に設定されているということになるのでしょうか。
 JPP の成分一覧だと個々の一般名にも毒性・魚毒性が設定されていますが、薬検の一覧だとセットとしての成分名のみが表示されてますね。今のところ、フェロモン剤に関しては普通物・Aだけなので、JPP のデータがない場合でも個々の一般名に対して普通物・Aと表示して問題はなさそうですけど…。

〔1005〕ACFinder 090811test版(EXEのみ)
 kabe WEB  (09/08/11 7:28)

引用なし
   kabe です。

薬剤タブの薬剤リストボックスのキーボード移動時の表示タイミングを変更してみました。
このような操作感でいいでしょうか。
移動中は、もっさりした感じですが、キーを離した後にすぐ動作がとまります。

http://acfinder.kabe.info/acfinder090811test.zip
今回は EXE のみです。
特に不具合なければ、正式版として公開します。

〔1006〕Re:ACFinder 090811test版(EXEのみ)
 Hidemi Oya WEB  (09/08/11 21:09)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>このような操作感でいいでしょうか。
 キーボードを押し続けても、エラーが出なくなりました。

>移動中は、もっさりした感じですが、キーを離した後にすぐ動作がとまります。
 もっさり感を避けるため、キーボードを押し続けている間は表示せず、キーを離したタイミングでだけ表示するようにしたかったので、OnKeyUp イベントで表示してはという提案だったんです。
 現状ではオートリピートのたびに表示ルーチンに飛んでるので、OnKeyDown イベントでの表示でしょうか? 表示が十分速ければカーソル移動にあわせて表示内容が変更された方が良いですが、この表示速度だと OnKeyUp イベントでの表示の方が良いかな…。

〔1007〕Re:ACFinder 090811test版(EXEのみ)
 kabe  (09/08/12 12:20)

引用なし
   >Hidemi Oyaさん

kabe です。

> 現状ではオートリピートのたびに表示ルーチンに飛んでるので、OnKeyDown イベントでの表示でしょうか? 表示が十分速ければカーソル移動にあわせて表示内容が変更された方が良いですが、この表示速度だと OnKeyUp イベントでの表示の方が良いかな…。

了解です。
ですが、今のところ、うまく制御できないでいます。
表示処理自体は OnClickに書いています。
OnKeyDown 時に無視するのはいいんですが、Up時の表示で、矢印キーのDown Up を小刻みに繰り返した場合(OnKeyUpイベントが連続的に発生した場合)、結局以前のように、キー操作が終わってからもしばらく表示処理が勝手に続きます。
表示中フラグが立っている時に無視する処理をいれた場合、タイミングによって、最後にキーを離した時の項目が表示されなかったりで、もう少し試行錯誤してみます。

明日から夏季休暇なので、その間になんとかします。
あと ACFinder サイトの方に、書きましたが、屋号キングがらみのバグも残っているので早急に修正します。

〔1008〕Re:ACFinder 090811test版(EXEのみ)
 Hidemi Oya WEB  (09/08/12 17:59)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>表示処理自体は OnClickに書いています。
 ああ、OnClick でしたか。確かに、OnClick で処理するとカーソルが滑らなくなりますね。

>OnKeyDown 時に無視するのはいいんですが、Up時の表示で、矢印キーのDown Up を小刻みに繰り返した場合(OnKeyUpイベントが連続的に発生した場合)、結局以前のように、キー操作が終わってからもしばらく表示処理が勝手に続きます。
>表示中フラグが立っている時に無視する処理をいれた場合、タイミングによって、最後にキーを離した時の項目が表示されなかったりで、もう少し試行錯誤してみます。
 そういわれてみれば、確かに(^_^;)。ってことは、OnKeyUp イベントが発生したときに、以前の表示処理を実行中なら中断して、新たな表示に切り替えるようにしなきゃならないってことか…。これは、結構面倒ですね。
 とりあえず、薬剤タブの各コンポーネントの表示速度の向上でどこまで行けるかを確認してみた方が良いかもしれません。

 たとえば、TStrings 関係のコンポーネントは、値を変更する前後を下記のように BeginUpdate と EndUpdate で囲んでやると、かなり速くなります。また、TStringGrid は、Rows[] で一括して行を扱うより、Cells でセル単位に値を代入した方が高速でした。さらに、セル単位で操作する場合でも、行毎に BeginUpdate と EndUpdate で囲んだ方が高速になるようです。
 あとは、[#997] で書いたような検索の高速化ですね。ひとつひとつは小さな改善でも、ちりも積もれば山となるかも…。

1. 通称・登録番号・成分・系統の各リストボックス
ListBox.BeginUpdate;
ListBox.Clear;
ListBox.Add(...);
 …
ListBox.EndUpdate;

2. ログペイン
Memo.Lines.BeginUpdate;
Memo.Add(...);
 …
Memo.Lines.EndUpdate;

3. 成分表・適用表の各ストリンググリッド
StringGrid.Rows[row].BeginUpdate;
StringGrid.Cells[col, row] := .....;
 …
StringGrid.Rows[row].EndUpdate;

〔1009〕Re:ACFinder 090811test版(EXEのみ)
 Hidemi Oya WEB  (09/08/12 22:25)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

> そういわれてみれば、確かに(^_^;)。ってことは、OnKeyUp イベントが発生したときに、以前の表示処理を実行中なら中断して、新たな表示に切り替えるようにしなきゃならないってことか…。これは、結構面倒ですね。
 と思ったんですが、OnClick では処理が終わるまでメッセージがマスクされてるみたいなので、下記のような方法でうまくいきました。表示速度の最適化を行ってももっさり感が残る場合は、お試しください。

//Form の private に、リストボックスの数だけ下記の2行を追加。
FList1KeyUp: boolean;
FList1Selected: integer; // リスト更新時に -1 に設定すること

// ListBox1 の OnKeyUp イベント処理
procedure TForm1.ListBox1KeyUp(...);
begin
FList1KeyUp := true;
ListBox1Click(Sender);
end;

// ListBox1 の OnMouseUp イベント処理
procedure TForm1.ListBox1MouseUp(...);
begin
FList1KeyUp := true;
ListBox1Click(Sender);
end;

// ListBox1 の OnClick イベント処理
procedure TForm1.ListBox1Click(Sender: TObject);
begin
// KeyUp または MouseUp 時以外は無処理
if not FList1KeyUp then Exit;
try
// 同じアイテムが選択された場合は無処理
if ListBox1.ItemIndex = FList1Selected then Exit;
(* ここに表示処理 *)
FList1Selectd := ListBox1.ItemIndex; // 現在の表示アイテムを保存
finally
FList1KeyUp := false; // 表示処理後は KeyUp フラッグをクリア
end;
end;

〔1010〕Re:ACFinder 090811test版(EXEのみ)
 Hidemi Oya WEB  (09/08/12 22:34)

引用なし
   すみません。訂正です。

1. 通称・登録番号・成分・系統の各リストボックス
ListBox.Items.BeginUpdate;
ListBox.Items.Clear;
ListBox.Items.Add(...);
 …
ListBox.Items.EndUpdate;

2. ログペイン
Memo.Lines.BeginUpdate;
Memo.Lines.Add(...);
 …
Memo.Lines.EndUpdate;

〔1011〕屋号「キング」
 Hidemi Oya WEB  (09/08/12 23:07)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>あと ACFinder サイトの方に、書きましたが、屋号キングがらみのバグも残っているので早急に修正します。
 白元の農薬は少ないので、「キング」の後ろに「石灰硫黄|除虫菊|(95)?マシン|スミチオン|マラソン」が続く場合だけキングを削除するのが良さそうですね。白元から「キング○○」が新たに発売されたら、その時点で対応した方が問題が少なそうです。perl だと、手っ取り早いのはこんな感じ…。

s/キング(石灰硫黄|除虫菊|(95)?マシン|スミチオン|マラソン)/\1/;

〔1012〕KeyUp 時のみ表示
 Hidemi Oya WEB  (09/08/13 7:45)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

 こちらの方がもっと簡単に実装できます。Selected 変数を初期化しなくてすむので新たなバグを生みにくいですが、少しカーソルが滑るかも…。

//Form の private に、リストボックスの数だけ下記の行を追加。
FList1KeyDown: boolean;

// ListBox1 の OnKeyUp イベント処理
procedure TForm1.ListBox1KeyUp(...);
begin
FList1KeyDown := false;
ListBox1Click(Sender);
end;

// ListBox1 の OnKeyDown イベント処理
procedure TForm1.ListBox1KeyDown(...);
begin
FList1KeyDown := true;
end;


// ListBox1 の OnClick イベント処理
procedure TForm1.ListBox1Click(Sender: TObject);
begin
// KeyDown 時は無処理
if FList1KeyDown then Exit;
(* ここに表示処理 *)
end;

〔1013〕ブルウェルアとロウカルア
 Hidemi Oya WEB  (09/08/13 10:01)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

 下記を見ると、ロウカルアが 37 %、ブルウェルアが 35 %になっています。ってことは、ロウカルアとブルウェルアの一般名の組み合わせは次のようになりますね。
http://www.bougiken.com/PDF/NO14.pdf

INSERT INTO spec.betsumei VALUES('ブルウェルア','(Z)-9-ヘキサデセナール');
INSERT INTO spec.betsumei VALUES('ブルウェルア','(Z)-11-ヘキサデセン-1-オール');
INSERT INTO spec.betsumei VALUES('ブルウェルア','(Z)-11-ヘキサデセナール');
INSERT INTO spec.betsumei VALUES('ロウカルア','(Z)-9-テトラデセニル=アセタート');
INSERT INTO spec.betsumei VALUES('ロウカルア','(Z,E)-9,12-テトラデカジエニル=アセタート');

〔1014〕Re:KeyUp 時のみ表示
 Hidemi Oya WEB  (09/08/13 18:54)

引用なし
   >Selected 変数を初期化しなくてすむので新たなバグを生みにくいですが
 すみません、寝ぼけてたようです(^_^;)。FList1Selected は、同じアイテムが選択されたときに表示ルーチンを実行しないために設定してるので、こちらの方法でも必要です。

//Form の private に、リストボックスの数だけ下記の2行を追加。
FList1KeyDown: boolean;
FList1Selected: integer; // リスト更新時に -1 に設定すること

// ListBox1 の OnKeyUp イベント処理
procedure TForm1.ListBox1KeyUp(...);
begin
FList1KeyDown := false;
ListBox1Click(Sender);
end;

// ListBox1 の OnKeyDown イベント処理
procedure TForm1.ListBox1KeyDown(...);
begin
FList1KeyDown := true;
end;

// ListBox1 の OnClick イベント処理
procedure TForm1.ListBox1Click(Sender: TObject);
begin
// KeyDown 時は無処理
if FList1KeyDown then Exit;
// 同じアイテムが選択された場合は無処理
if ListBox1.ItemIndex = FList1Selected then Exit;
(* ここに表示処理 *)
FList1Selectd := ListBox1.ItemIndex; // 現在の表示アイテムを保存
end;

〔1015〕ACFinder 090815版
 kabe  (09/08/15 22:38)

引用なし
   kabe です。

090815版を公開しました。
http://acfinder.kabe.info/

1. 薬剤タブの薬剤リストボックスを上下キーで移動する際の検索タイミングを変更しました。[#1014]
2. 薬剤タブの成分タブで、総使用回数における有効成分が設定されていない薬剤の場合は、有効成分(一般名)から検索するよう修正しました。
3. 農薬通称名を作成する際に農薬の名称から削除する屋号(メーカー名)を修正しました。HJ、アベンティスを追加。イヅツヤを修正。キングロード、ウッドキング、イネキング、ネコソギキングの通称名からキングが消去されていた不具合を修正しました。
4. 薬剤タブの薬剤候補に薬剤の効果を入力した場合、検索が正しくできない不具合を修正しました。

[#1008]
ログペインの更新時、TMemo に BeginUpdate 〜 EndUpdate を入れると、最下行にスクロールできず(カーソル位置の設定が無視される?)、この処理は入れていません。

〔1016〕Re:ACFinder 090815版
 Hidemi Oya WEB  (09/08/16 18:56)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>090815版を公開しました。
 ありがとうございます。薬剤タブのリストボックスをキーボードで選択するのが、とっても楽になりました。薬剤タブ全体の表示速度もかなり速くなったような感じがしますが、これでも OnClick 時の表示ではもっさりします?
 ところで、上下端でさらに↑↓キーを押したり、現在表示中のアイテムをマウスで再選択すると再表示されるので、[#1012] の方法でしょうか?

>ログペインの更新時、TMemo に BeginUpdate 〜 EndUpdate を入れると、最下行にスクロールできず(カーソル位置の設定が無視される?)、この処理は入れていません。
 下記のようにすれば解決できます。EndUpdate の前にスクロール可能な案3が速いかと思ったんですが、どれでも実行速度は変わりませんでした。

案1
Memo1.Lines.BeginUpdate;
Memo1.Lines.Add(....);
 …
Memo1.Lines.EndUpdate;
Memo1.SelLength := 0;

案2
Memo1.Lines.BeginUpdate;
Memo1.Lines.Add(....);
 …
Memo1.Lines.EndUpdate;
Memo1.Perform(EM_LINESCROLLCARET, 0, 0);

案3
Memo1.Lines.BeginUpdate;
Memo1.Lines.Add(....);
 …
Memo1.Perform(EM_LINESCROLL, 0, Memo1.Perform(EM_GETLINECOUNT, 0, 0));
Memo1.Lines.EndUpdate;

〔1017〕Re:ACFinder 090815版
 Hidemi Oya WEB  (09/08/16 19:28)

引用なし
   訂正です(^_^;)。

案2
誤: Memo1.Perform(EM_LINESCROLLCARET, 0, 0);
正: Memo1.Perform(EM_SCROLLCARET, 0, 0);

〔1018〕Re:ACFinder 090815版
 kabe  (09/08/18 22:16)

引用なし
   >Hidemi Oyaさん

kabe です。

> ところで、上下端でさらに↑↓キーを押したり、現在表示中のアイテムをマウスで再選択すると再表示されるので、[#1012] の方法でしょうか?
すいません。
FList1Selectd := ListBox1.ItemIndex;
を入れ忘れてました。

>Memo1.SelLength := 0;
これを入れるだけで良かったとは…

次バージョンで反映させます。

〔1019〕ACFinder 090823版
 kabe  (09/08/23 17:29)

引用なし
   kabe です。

090823版を公開しました。
http://acfinder.kabe.info/

薬剤タブの薬剤リストを上下キーで移動する際の検索タイミングを変更しました。
直前に選択した薬剤を再検索しないように修正しました。

ログペインの更新時に、表示を早くするよう修正していますが、(BeginUpdate〜EndUpdate)体感の程は不明です。

各タブの検索中にボタン類を無効にするよう修正しています。

〔1020〕Re:ACFinder 090823版
 Hidemi Oya WEB  (09/08/23 23:04)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>090823版を公開しました。
 ありがとうございます。あまり使う人はいないでしょうが、SQL タブで時間のかかる検索を実行しているときも、これで安心ですね。検索結果がない場合も、実行時間はダイアログの OK ボタンを押すまでの時間じゃなく、実際の検索実行時間が表示されるようになったんですね。

>ログペインの更新時に、表示を早くするよう修正していますが、(BeginUpdate〜EndUpdate)体感の程は不明です。
 現状では、ログペインへの書込のたびに EndUpdate を実行してませんか? これを、各タブで全ての検索が終了してから EndUpdate を実行するようにすれば、 体感できるようになると思います。何らかの理由で Exit で抜け出す場合も、finally 節に EndUpdate を入れておけば OK です。
 ただ、前にも書きましたが、自宅マシンだと現状でも薬剤タブのリストボックスは OnClick で検索しても大丈夫じゃないかと思えるくらい高速化されてますけどね。

Log.Lines.BeginUpdate;
try // この節以降は必ず finally が実行される
 …
if (…) then Exit; // この場合 finally にジャンプする
Log.Lines.Add(…);
 …
Log.Liens.Add(…);
 …
finally
Log.Lines.EndUpdate;
Log.SelLength := 0;
end;

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
11 / 114 ツリー <前へ | 次へ>
ページ:  ┃  記事番号:   
(SS)C-BOARD vv3.8 is Free.