新しく発言する EXIT インデックスへ
Linuxで貼り付け操作の異常報告

  Linuxで貼り付け操作の異常報告 島村1243 2007/06/10 08:40:51 
  エディタを相手にやっても同様になるので,... 白石 和夫 2007/06/10 16:21:22 
   └了解致しました。でも、もしかしたら。。 島村1243 2007/06/10 18:39:55  (修正1回)
    └BASIC内部だけで利用している限りは問題を起... 白石 和夫 2007/06/12 08:19:39 
     ├解決案 島村1243 2007/06/12 23:24:51 
     └解決案の内容 島村1243 2007/06/13 21:01:03  (修正1回)
      ├解決案の内容(続き1) 島村1243 2007/06/13 21:04:18 
      │└解決案の内容(続き2) 島村1243 2007/06/13 21:07:29  (修正1回)
      │ ├DELETEキーや編集メニューの削除ではクリッ... 白石 和夫 2007/06/14 09:18:04 
      │ │└ソースコードは公開・・URLを御紹介下さい。... SECOND 2007/06/15 01:31:08  (修正2回)
      │ │ └実行モジュールのアーカイブ(basic636.tar... 山中和義 2007/06/15 10:31:47 
      │ │  └Linux流儀に沿えば、原則的に自分でコンパイ... SECOND 2007/06/15 17:03:54 
      │ │   └Kylixで無くてもコンパイル可? 島村1243 2007/06/15 23:09:25  (修正1回)
      │ │    └御腹立ちのようなら、お詫びします。ソース... SECOND 2007/06/16 07:38:59 
      │ │     └意味良く分かりました。 島村1243 2007/06/16 23:16:26  (修正1回)
      │ │      └Linuxにも、コマンド・ラインが有るはずです... SECOND 2007/06/17 02:28:25 
      │ │       └あるいは、BATファイルを作る。 SECOND 2007/06/17 04:05:29 
      │ │        └BASICの引数理解出来ました。 島村1243 2007/06/17 06:31:29  (修正1回)
      │ │         └てっきり、御若い方とばかり思っておりまし... SECOND 2007/06/17 07:34:55 
      │ ├KnoppixEdu6では,削除した文字列が貼り付け... 白石 和夫 2007/06/14 11:53:00 
      │ └(修正その1)には賛成できません。正しく... 白石 和夫 2007/06/14 11:56:28 
      └他のアプリケーションからのデータがあると... 白石 和夫 2007/06/14 09:02:02  (修正1回)
       └白石先生、了解致しました。 島村1243 2007/06/14 20:48:52 
        ├DELETED  白石 和夫  2007/06/14 21:14:28  (削除)
        └削除が貼り付けで復活する場合の規則性が見... 白石 和夫 2007/06/14 21:29:53 
         └削除/貼り付けの規則性 島村1243 2007/06/14 23:19:53 
          └レポートありがとうございます。 白石 和夫 2007/06/15 18:29:53 
           └削除するとクリップボードに入ってしまうの... 白石 和夫 2007/06/16 16:33:54 
            └当初はクリップボードの問題と考えていたの... 白石 和夫 2007/06/17 08:53:11 
             └Widgetと称するようです 島村1243 2007/06/17 11:35:57  (修正1回)

  Linuxで貼り付け操作の異常報告 島村1243 2007/06/10 08:40:51  ツリーへ

Linuxで貼り付け操作の異常報告 ノートメニュー
島村1243 <bjllmpcujp> 2007/06/10 08:40:51
Linux(Debian3.1、FedoraCore5、Vine4.0で確認)における症状を報告します。
ここの掲示板に投稿されているBASICプログラムをブラウザ画面上でコピーし、それをプログラムエディターウィ
ンドウに貼り付けてrunすると、1回目は問題無く貼り付
けが出来て動作しました。

しかし、続いて別の投稿プログラムを動作させるため、
(1)エディタウィンドウ上の1回目プログラムを「全て選択」して削除した後に、
(2)投稿されている別のBASICプログラムをwebブラウザ上でコピーし、
(3)それをプログラムエディターウィンドウで「貼り付け」操作をすると、1回目の削除したプログラムが再度貼り付けられてしまう。

という症状が出ました。(1)と(2)の順番を替えても変化無しです。
やむを得ず、BASICを終了して再起動し別のBASICプログラムをweb画面上で
コピーし貼り付ける事で対処。以降、別のプログラムをwebからコピーするたびに、BASICの終了/再起動の繰り返しです。

なお、Windows版でも同じ操作を行って見ましたが正常に貼り付け出来ます。
webブラウザは、Win及びLinux共にFireFox2.0.0.4を使用しています。

  エディタを相手にやっても同様になるので,... 白石 和夫 2007/06/10 16:21:22  ツリーへ

Re: Linuxで貼り付け操作の異常報告 ノートメニュー
白石 和夫 <fbdfvqwhki> 2007/06/10 16:21:22
エディタを相手にやっても同様になるので,外部アプリケーションとのやり取りがうまくいかないようです。クリップボードはKylixの機能を利用しているので,(Linuxの仕様でなければ,)おそらく,Kylixのバグです。
該当部分は,大まかに示すと
procedure TEditForm.Cut1Click(Sender: TObject);
begin
clipboard.astext:=memo1.seltext;
memo1.seltext:='';
end;

procedure TEditForm.Copy1Click(Sender: TObject);
begin
clipboard.astext:=memo1.seltext;
end;

procedure TEditForm.Paste1Click(Sender: TObject);
begin
memo1.seltext:=clipboard.astext;
end;

のようになっているので,Linuxに詳しい方にご登場いただかないかぎり,手直しは無理でしょう。
なお,該当部分は,ソースファイルのmdiedit.pasにあります。ソースファイル自体は,sourceサブディレクトリにあります。

   └了解致しました。でも、もしかしたら。。 島村1243 2007/06/10 18:39:55  (修正1回) ツリーへ

Re: エディタを相手にやっても同様になるので,... ノートメニュー
島村1243 <bjllmpcujp> 2007/06/10 18:39:55 ** この記事は1回修正されてます
了解致しました。でも、もしかしたら。。

白石様、お調べ頂き有難う御座いました。
私はKylixを使った事ありませんので的外れかも知れませんが、下記の「切り取り」コードで

procedure TEditForm.Cut1Click(Sender: TObject);
begin
clipboard.astext:=memo1.seltext;
memo1.seltext:="; <----ここは「""」では?
end;

が「貼り付け」時に悪戯していると言う事はないでしょうか?
エディターウィンドウで「切り取り」操作をしてみると1回目はエディターの文字は消えるが2回目の切り取りでは文字は消えない事と、「切り取り」は1回もしないで「コピー」と「貼り付け」のみだと何回行っても正常に機能するので。と言うことは「切り取り」に何らかの問題が有るのかもです。
試して頂いて、もしもそうだったら嬉しいです。Kylixのバグだったら残念ですが諦めです。

    └BASIC内部だけで利用している限りは問題を起... 白石 和夫 2007/06/12 08:19:39  ツリーへ

Re: 了解致しました。でも、もしかしたら。。 ノートメニュー
白石 和夫 <fbdfvqwhki> 2007/06/12 08:19:39
BASIC内部だけで利用している限りは問題を起こさず(連続した切り取りも問題なくできる),他のアプリケーションでクリップボードに操作をかけたときにおかしくなるので,複数のアプリケーションがクリップボードにアクセスしたときの挙動の問題です。
KylixのクリップボードはQtライブラリのQClipboardを利用していますが,KylixのQClipboardの使い方にも問題があるとは思えないので,おそらくKylix附属のQtライブラリの問題で,バグでないとしたら,古いものであるために最新のLinuxの流儀に対応していないのではないかと思います。

     ├解決案 島村1243 2007/06/12 23:24:51  ツリーへ

Re: BASIC内部だけで利用している限りは問題を起... ノートメニュー
島村1243 <bjllmpcujp> 2007/06/12 23:24:51
解決案

白石様、お手数をお掛けします。
LinuxでもWinと同じ様に使いたい一心で解決案を見付けました。今日は遅いので、明日夜書き込みします。

     └解決案の内容 島村1243 2007/06/13 21:01:03  (修正1回) ツリーへ

Re: BASIC内部だけで利用している限りは問題を起... ノートメニュー
島村1243 <bjllmpcujp> 2007/06/13 21:01:03 ** この記事は1回修正されてます
解決案の内容
<解決案>
結論
(修正その1)
「DELETEキー操作」や「メニュー-->削除」のクリック操作で走るイベントプロシージャ
内の最後に、「クリップボードへのコピー」のコード「clipboard.astext:=memo1.seltext;」
を追加する。

つまり空文字をクリップボードにメモリさせる。こうするとBASICのクリップボードの中味がクリアさ
れ(空文字になる)、OS共通のクリップボードのデータをBASICのクリップボードに取り込む準備が出
来る。

(修正その2)
現在は選択文字に対して「切り取り」を行っても文字はエディター画面から切り取られないバグがある。
「切り取りプロシージャ procedure TEditForm.Cut1Click(Sender: TObject)」内のコードタイ
プミス「memo1.seltext:=";」を「memo1.seltext:="";」に修正する。

      ├解決案の内容(続き1) 島村1243 2007/06/13 21:04:18  ツリーへ

Re: 解決案の内容 ノートメニュー
島村1243 <bjllmpcujp> 2007/06/13 21:04:18
解決案の内容(続き1)

根拠
(修正その1)について
BASICエディターで選択文字の「コピー」操作した後選択を解除し、他のアプリケーション上で文字を
コピーしてからBASICエディター上で「貼り付け」操作しても、他のアプリケーション上でコピーした
文字は貼り付け出来ない。

ところが、BASICエディターで文字を選択しないで「コピーボタン」操作した後に、他のアプリケーシ
ョン上で文字をコピーしてからBASICエディター上で「貼り付け」操作すると、貼り付けが成功する。
この操作手順を守るとBASICを終了・再起動しなくても、繰り返して他のアプリケーション文字を貼り
付け出来る事が分かった。

これは想像ですが、BASICで文字をコピーするとそのデータがBASICのクリップボードにメモリされ、
ここにデータが存在する場合は他のアプリケーションが共通で使用するOSのクリップボード上のデー
タを取り込まない様になっている(Kylixで作られるアプリの仕様かも)のではないでしょうか。従って
BASIC上のクリップボードのデータを空にしてやればOS共通のクリップボードデータを取り込む事が出来
るのだと思われる。

      │└解決案の内容(続き2) 島村1243 2007/06/13 21:07:29  (修正1回) ツリーへ

Re: 解決案の内容(続き1) ノートメニュー
島村1243 <bjllmpcujp> 2007/06/13 21:07:29 ** この記事は1回修正されてます
解決案の内容(続き2)
以上はBASICエディタ上で選択文字の「コピー」操作を行った場合についての現象説明ですが、同じ事が
「DELETEキー」や「メニュー-->削除」操作でも発生しました。

そこで試しにBASICエディタ上で文字選択して「DELETEキー」や「メニュー-->削除」操作を行った直後
に、「コピーボタン」をクリックして空コピーを行うと、他のアプリケーション上で文字をコピーして
からBASICエディター上で「貼り付け」操作すると、他のアプリケーション文字の貼り付けが成功したの
です。

現在のBASICエディターでは選択文字を「DELETEキー」や「メニュー-->削除」操作で削除した後でも
「貼り付け」操作で復旧出来る様にしている、つまり「DELETEキー」や「メニュー-->削除」操作で
BASICのクリップボードにメモリしている事が分かりました。
これは想像ですが、おそらく「DELETEキー」や「メニュー-->削除」のイベントプロシージャの中にク
リップボードにメモリするコード「clipboard.astext:=memo1.seltext;」を書いているのではないか
な、と思います。

他のアプリケーションの場合、「DELETEキー」や「メニュー-->削除」の操作後に削除文字を再貼り付け
する機能は一般的に無いので、BASICにおいても再貼り付けする機能は不要と思います。

そこで選択文字を「DELETEキー」や「メニュー-->削除」操作した場合に、そのイベントプロシージャの
中に「クリップボードへのコピー」コード「clipboard.astext:=memo1.seltext;」を追加してやれば
、空文字がBASICのクリップボードにメモリされ、メモリをクリアする事が出来て、OS共通のクリップボー
ドデータを取り込む事が出来るのです。

なお、「DELETEキー」や「メニュー-->削除」操作した場合、現在は「元に戻す」ボタンが機能しない(操
作すると「利用できません」と言うメッセージダイアログが出る。)ので、修正その1を行うと「DELETEキー」
や「メニュー-->削除」操作した場合に元に戻す事画できなくなります。そこで「元に戻す事が出来なくなるが良いか?」と言う確認メッセージを出すと言う案もあるでしょうが、ダイアログ表示が頻出してしつこくなる事も考えられるので、そこまでの必要は無いと思います。

以上が(修正その1)の提案根拠です。(修正その2)は単純なタイプミスが原因で「切り取り」機能が働い
ていない事の修正です。
私がKylixを持っていれば修正して試してみるのですが、残念ながら持っておりません。
お忙しいとは思いますが是非ご一考頂ければ幸いです。

      │ ├DELETEキーや編集メニューの削除ではクリッ... 白石 和夫 2007/06/14 09:18:04  ツリーへ

Re: 解決案の内容(続き2) ノートメニュー
白石 和夫 <fbdfvqwhki> 2007/06/14 09:18:04
DELETEキーや編集メニューの削除ではクリップボードを操作していません。Fedora4上で試してみた範囲では,DELETEキーや削除メニューで消した文字列が貼り付けメニューで復活することもありません。
なお,ソースコードは公開しているので,見てみるとわかると思います。該当のソースファイルは,mdiedit.pasです。

      │ │└ソースコードは公開・・URLを御紹介下さい。... SECOND 2007/06/15 01:31:08  (修正2回) ツリーへ

Re: DELETEキーや編集メニューの削除ではクリッ... ノートメニュー
SECOND <cszcthjjdj> 2007/06/15 01:31:08 ** この記事は2回修正されてます
ソースコードは公開・・URL を御紹介下さい。
(仮称)十進BASIC for Linux のソースpackage が、探せませんでした。

      │ │ └実行モジュールのアーカイブ(basic636.tar... 山中和義 2007/06/15 10:31:47  ツリーへ

Re: ソースコードは公開・・URLを御紹介下さい。... ノートメニュー
山中和義 <drdlxujciw> 2007/06/15 10:31:47
実行モジュールのアーカイブ(basic636.tar.gz)に同梱されています。

      │ │  └Linux流儀に沿えば、原則的に自分でコンパイ... SECOND 2007/06/15 17:03:54  ツリーへ

Re: 実行モジュールのアーカイブ(basic636.tar... ノートメニュー
SECOND <cszcthjjdj> 2007/06/15 17:03:54
Linux流儀に沿えば、原則的に自分でコンパイルを繰返さなければ
いけないのでは、ないでしょうか。少しあまえがあると思います。
ありがとうございました。

      │ │   └Kylixで無くてもコンパイル可? 島村1243 2007/06/15 23:09:25  (修正1回) ツリーへ

Re: Linux流儀に沿えば、原則的に自分でコンパイ... ノートメニュー
島村1243 <bjllmpcujp> 2007/06/15 23:09:25 ** この記事は1回修正されてます
Kylixで無くてもコンパイル可?

無知な質問で恐縮ですが、このソースファイルはKylixでないとコンパイル出来ない
(例えばマイクロソフトのVisualC++で作ったアプリの様に)と思っていたのです
が、Linuxディストリビューションに入っている一般的な開発言語か何かを使えばコ
ンパイル出来るのでしょうか?

ただ、言い訳になるかも知れませんが、もし出来たとしても、ハッカーなら別でしょ
うが他の方が作られた大規模アプリのコードを解読してそれを直すと言うのは、普通
の人には事実上出来ないです。

アプリを使わせて頂いた結果、不具合や改良したら良い等気付いた点が有ったら報告
をする(そして、それを吸い上げる、吸い上げないは正に作者の自由)のが精一杯で
、また、それをする事が無料で使わせて頂いた事に対するせめてもの恩返しではない
かと思っています。これを「あまえ(Linux流儀に沿わない)」と意味するなら、
「ソフトを直せぬ人はマイクロソフトを使えば」と言っているように聞こえてしまい
ました。意味を取り違えていましたらご勘弁ください。

      │ │    └御腹立ちのようなら、お詫びします。ソース... SECOND 2007/06/16 07:38:59  ツリーへ

Re: Kylixで無くてもコンパイル可? ノートメニュー
SECOND <cszcthjjdj> 2007/06/16 07:38:59
御腹立ちのようなら、お詫びします。ソース・ファイルの無いソフト
ウェアが、当たり前のように横行している現在では、もったいない
環境に思えるからです。

先生は、エディターより、言語システムとしての、効果とその
デバッグにかなりな、負担を背負っていらっしゃいます。
ですので、内蔵エディターは、言わば付録みたいな領域として、
できれば、ユーザーからの協力として、デバッグされるのが、Linux
領域での期待かと、思います。

私は、本来、高級言語が大嫌いで、アセンブラーしか使用せず、
Win32の様な、オフセットの大きいだけのワンセグNearモデルも好きになれず、
DOSのラージ・モデルの無限概念と分解能を好む、古物でして、
実用用途に、BASIC のみを、使用しています。
Linux を使用する予定などは無く、御力にはなれません。

当面は、別のエディターを使用され、
十進BASIC の 起動時引数としてテキストを、扱われては。

       2007.6.15  諏訪 雄治

      │ │     └意味良く分かりました。 島村1243 2007/06/16 23:16:26  (修正1回) ツリーへ

Re: 御腹立ちのようなら、お詫びします。ソース... ノートメニュー
島村1243 <bjllmpcujp> 2007/06/16 23:16:26 ** この記事は1回修正されてます
意味良く分かりました。

私が3年くらい前初めてLinuxアプリケーションを使い始めたとき、色々不可解な現象が出て対処方法
が分からない時に、Linuxの入門掲示板なる所に教えをお願いしたら、「その程度の事が分からぬ様な
らLinuxはやるべきでない」と言う主旨の書き込み(Linixはプロの世界、素人はあまえるなと言う意
味だと理解)が有って愕然としたものです。今回「あまえ」の文字を見たとき私の脳裏にそれが甦って
しまい、残念だなと思ってしまったのです。
でも諏訪様のご回答を読んで、真意はそれとは違うと分かり安心致しました。

10進BASICの機能を未だ短時間しか体験していませんが、自分が高校生の頃数学の授業で意味の分か
らなかった数式計算の意味も作図で簡単に示す事が出来、また、複素数計算が出来るため自動制御の周
波数伝達関数の意味を理解するためのナイキスト線図も簡単に作図出来る等、教育効果の高い非常に素
晴らしいアプリだと思っています。私はこの様な教育的に良いアプリは、Windowsの世界だけでなく
、Linuxの世界でも同じ様に使えて欲しいと思います。
Linuxは無料(に近い)で入手出来るのですが、アプリの使い勝手に不備があるとそれをサポートする
人が居ないため、結局諦めるか、或は高価なWindowsを買うかの選択になってしまいます。
この様な場合、裕福な人であれば別に問題は無いでしょうが、経済的に余裕の無い人にとっては気の毒、
特にそれが学生であれば直の事だと思います(私は家が貧しくて大学を断念したのでこの様な思いが特
に強いのかも)。

その様な思いで少しでも修正の役に立つかなと思い多く書き込んでしまいましたが、逆に白石先生のお
手を煩わせてしまったとすれば大変申し訳ないと思います。

今回のLinux版BASICエディターでの不具合は、このスレッドの「削除/貼り付けの規則性」に書いた実
験1〜7の結果から、プログラムコード上のバグではなく、「Kylixで作成されるエディターwidget本体
に本質なバグがある、つまり、Kylix自体に問題がある」との感じがしています。従って本質的な修正は
困難と思われます。

話は変わり恐縮ですが、
>当面は、別のエディターを使用され、<---gedit等のエディターを使ってBASICコードを作成するの意味?。
>十進BASIC の 起動時引数としてテキストを、扱われては。
と書かれていますが、この「起動時引数としてテキストを扱う」の意味が理解できません。具体的にどの様
にすれば良いのかお教え頂ければ有り難いです。(なお、私はアセンブラが理解出来ないレベルです)

      │ │      └Linuxにも、コマンド・ラインが有るはずです... SECOND 2007/06/17 02:28:25  ツリーへ

Re: 意味良く分かりました。 ノートメニュー
SECOND <cszcthjjdj> 2007/06/17 02:28:25
Linux にも、コマンド・ラインが有るはずですが、
設置しておりませんので、具体的な事は、お答えできません。

 Windows での書式をあげておきますので、対照付けてみてください。
 起動時からテキストが、RUN 状態になります。

「ファイル名を指定して実行」を開いて、
実行ファイル名とテキスト名をスペースで区切って、ドラッグするか又は、手で打つ。
C:\WINDOWS\テ゛スクトッフ゜\BASIC599\Basic.exe "C:\WINDOWS\テ゛スクトッフ゜\BASIC599\クイック・サンプル5.BAS"   ・・・実行ファイル名とテキスト名を、スペースで区切って並べる。

※テキスト名が、スペース文字を含まない場合は、"" で括らなくてもよい。


あるいは、DOS の窓(コマンド・ライン)を開いて、
>CHDIR C:\WINDOWS\テ゛スクトッフ゜\BASIC599    ・・・Current Directry を移すとパス名がラク。
>CD C:\WINDOWS\テ゛スクトッフ゜\BASIC599    ・・・省略形
>Basic.exe "クイック・サンプル5.BAS"  ・・・同様にスペースで区切って並べる。

※テキスト名が、スペース文字を含まない場合は、"" で括らなくてもよい。

      │ │       └あるいは、BATファイルを作る。 SECOND 2007/06/17 04:05:29  ツリーへ

Re: Linuxにも、コマンド・ラインが有るはずです... ノートメニュー
SECOND <cszcthjjdj> 2007/06/17 04:05:29
あるいは、BAT ファイルを作る。

Basic.exe クイック・サンプル5.BAS

と書いて、xxxx.BAT の名前で、BASIC.EXE と同じフォルダーに置きます。
これを、ダブルクリック等で起動すると、同様に、直ちに RUNします。
以下の様に書くと、ぐるぐる回す事が出来ますが、Windows の書式です。
きっと、Linux にも形を変えてあると、思います。私らは、マイクロソフトに
飼い慣らされて、どうにもなりませんが、若い方は、Linux の手続きに馴れた方が
ソース・コードの開放性で、だんぜん有利です。金銭の問題どころでは、ないと
思いますよ。

:stt
"C:\テキストエディタ tpad089a\TeraPad.exe" クイック・サンプル5掲示.BAS
pause
BASIC.EXE クイック・サンプル5掲示.BAS
pause
goto stt

※この場合は、実行パス名が、スペース文字を含んでいるため、"" で括る。

      │ │        └BASICの引数理解出来ました。 島村1243 2007/06/17 06:31:29  (修正1回) ツリーへ

Re: あるいは、BATファイルを作る。 ノートメニュー
島村1243 <bjllmpcujp> 2007/06/17 06:31:29 ** この記事は1回修正されてます
BASICの引数理解出来ました。

諏訪様、ご教示有り難うございます。BASICが引数を取れるアプリケーションになっているとは想像できません
でした。
早速、エディターgeditを使って下記内容の「test.bas」を作成してBASIC本体が保存されている
ディレクトリと同じディレクトリに保存しました。
----------
n=100
print n
end
----------
そして
$ ./BASIC test.bas
を実行しましたら「あっ」と言う間にBASICが終了してコマンドラインに戻ってしまいました。つまり100と言
う数字が出力された事を確認する間もなくBASICそのものが終了でした。

そこで試しにtest.basの内容を
----------
n=100
print n
pause
end
----------
に変更して
$ ./BASIC test.bas
を実行したら、100がエディタウィンドウに出力されている事が見えましたので、BASIC本体にファイル名を引
数に取って実行させると言う方法を理解出来ました。
ただ、本来のBASICエディター上にコードを入力(或は貼付)してrunさせるやり方に比べると、手数が増大して
しまうので、このやり方を問題点の対処方法として10進BASIC入門者に奨めるのは難しいかなと言う感想です。
ご教示くださいまして本当に有難う御座いました。今後も御指導頂けると有り難いです。
(なお蛇足ですが、私は若者ではなく(文体を見てお気づきかも)、諏訪様が投稿されているBASICプログラムを
見て「凄い」、と思っている来年還暦の老兵です。)

      │ │         └てっきり、御若い方とばかり思っておりまし... SECOND 2007/06/17 07:34:55  ツリーへ

Re: BASICの引数理解出来ました。 ノートメニュー
SECOND <cszcthjjdj> 2007/06/17 07:34:55
てっきり、御若い方とばかり思っておりました。ご無礼いたしました。
文面がお若いです。信じられません。実は、私も御同年です。バレテ
シマッタ。

      │ ├KnoppixEdu6では,削除した文字列が貼り付け... 白石 和夫 2007/06/14 11:53:00  ツリーへ

Re: 解決案の内容(続き2) ノートメニュー
白石 和夫 <kodwmnknzv> 2007/06/14 11:53:00
Knoppix Edu6 では,削除した文字列が貼り付けで復活します。
また,切り取りが機能しません。かなりシステム依存の部分が大きい問題のように思います。

      │ └(修正その1)には賛成できません。正しく... 白石 和夫 2007/06/14 11:56:28  ツリーへ

Re: 解決案の内容(続き2) ノートメニュー
白石 和夫 <kodwmnknzv> 2007/06/14 11:56:28
(修正その1)には賛成できません。正しく動作する環境で動作させたとき,不具合を生じさせます。
(修正その2)は,文法の誤りなので,コンパイルできないと思います。

      └他のアプリケーションからのデータがあると... 白石 和夫 2007/06/14 09:02:02  (修正1回) ツリーへ

Re: 解決案の内容 ノートメニュー
白石 和夫 <fbdfvqwhki> 2007/06/14 09:02:02 ** この記事は1回修正されてます
他のアプリケーションからのデータがあると切り取り操作ができなくなるのは,
clipboard.astext:=memo1.seltext;
を実行すると例外(exception)が発生するためと考えられます。
そのため,
memo1.seltext:='';
が実行されずにイベントプロシージャが終了してしまう(イベントが呼び出されるときにはデフォルトの例外処理が有効になっていて,通常,例外が報告されない)と考えるのが妥当です。
なお,''は2重引用符記号"(shift-2で入力)ではなく,単引用符記号'(shift-7で入力)を2個続けて書いたものです。
つまり,
memo1.seltext:=";
 ではなくて,
memo1.seltext:='';
です。

       └白石先生、了解致しました。 島村1243 2007/06/14 20:48:52  ツリーへ

Re: 他のアプリケーションからのデータがあると... ノートメニュー
島村1243 <bjllmpcujp> 2007/06/14 20:48:52
白石先生、了解致しました。

本質的な解決版がリリースされるのを楽しみにしています。
それまでは空コピー操作を行う事で対処する事にします。
私の突飛な書き込みに対しても、大切なお時間を割いていろいろご検討ご回答くださいまして本当に有難う御座いました。

        ├DELETED  白石 和夫  2007/06/14 21:14:28  (削除) ツリーへ

Re: 白石先生、了解致しました。
白石 和夫 <fbdfvqwhki> 2007/06/14 21:14:28 ** この記事は削除されました

        └削除が貼り付けで復活する場合の規則性が見... 白石 和夫 2007/06/14 21:29:53  ツリーへ

Re: 白石先生、了解致しました。 ノートメニュー
白石 和夫 <fbdfvqwhki> 2007/06/14 21:29:53
削除が貼り付けで復活する場合の規則性が見えてきません。
不具合のある環境でも必ずそうなるとは限らないようです。

         └削除/貼り付けの規則性 島村1243 2007/06/14 23:19:53  ツリーへ

Re: 削除が貼り付けで復活する場合の規則性が見... ノートメニュー
島村1243 <bjllmpcujp> 2007/06/14 23:19:53
削除/貼り付けの規則性

その意味が分からなかったのですが、BASICエディターのみで次の実験を行ってみました。(再現性ありです)
<実験1>
BASICを起動
abcdをタイプ
マウスで文字選択
DELETEキー
貼り付けで復活、つまり異常

<実験2>
BASICを起動
abcdをタイプ
編集ー>全て選択
DELETEキー
貼り付けで復活しない、つまり正常。

<実験3>
BASICを起動
abcdをタイプ
編集ー>全て選択
切り取りボタン
切り取り出来る、つまり正常。

<実験4>
BASICを起動
abcdをタイプ
マウスで選択
切り取りボタン
切り取り出来ない、つまり異常。

<実験5>
BASICを起動
abcdをタイプ
編集ー>全て選択
編集ー>切り取り
切り取り出来る、つまり正常。

<実験6>
BASICを起動
abcdをタイプ
移動キー(矢印キー)で選択
編集ー>切り取り
切り取り出来る、つまり正常。

<実験7>
BASICを起動
abcdをタイプ
移動キー(矢印キー)で選択
切り取りボタン
切り取り出来る、つまり正常。

以上の実験結果を見ると、マウス操作を行うと異常になると言えるのではないでしょうか。明日の夜、別アプリのデータ貼り付けについても実験をしてみます。

なお、BASICを再起動する代わりに、空コピー(ツールボタンで)を行っても同じ結果になります。

          └レポートありがとうございます。 白石 和夫 2007/06/15 18:29:53  ツリーへ

Re: 削除/貼り付けの規則性 ノートメニュー
白石 和夫 <fbdfvqwhki> 2007/06/15 18:29:53
レポートありがとうございます。
やはり,かなり不可解な動作をしています。
(Deleteキーはソースコード上はまったく触れていないのに余計な動作をする,・・・)

           └削除するとクリップボードに入ってしまうの... 白石 和夫 2007/06/16 16:33:54  ツリーへ

Re: レポートありがとうございます。 ノートメニュー
白石 和夫 <fbdfvqwhki> 2007/06/16 16:33:54
削除するとクリップボードに入ってしまうのは何とも手の施しようがないですが,切り取りについては対応策が見えてきました。ただし,完全に正常にはなりません。不具合がある場合に限ってオプションで選んでもらう形にします。

            └当初はクリップボードの問題と考えていたの... 白石 和夫 2007/06/17 08:53:11  ツリーへ

Re: 削除するとクリップボードに入ってしまうの... ノートメニュー
白石 和夫 <fbdfvqwhki> 2007/06/17 08:53:11
当初はクリップボードの問題と考えていたのですが,クリップボードの扱いも含めた'複数行エディットコントロール'(Linuxで正式に何というかは知りません)の問題でした。Linuxによってその挙動が異なるのは困り物です。

             └Widgetと称するようです 島村1243 2007/06/17 11:35:57  (修正1回) ツリーへ

Re: 当初はクリップボードの問題と考えていたの... ノートメニュー
島村1243 <bjllmpcujp> 2007/06/17 11:35:57 ** この記事は1回修正されてます
Widgetと称するようです

コードの問題では無くエディットコントロールの問題でしたか。。
するとAPIの問題になるので根本的な解決は難しそうですね。

Linux用のGUIアプリケーション開発言語は、「GTK2+Glade2」と「QTdesigner又はKDevelop」が有名ですが、両者共に
「コントロール(部品)」に相当する物を「Widget」と称しています。

これらの開発言語で作成される「Widget」は完成度が非常に高いので、今回出ている「エディットコントロール」の様な不
具合は無いです。
(私も趣味で小さなメモ帳を試作しましたが、コピー・貼り付け等は他のアプリとの連携も可能。
ここ「http://tksh.s2.xrea.com/index.php?%A5%AA%A5%EA%A5%B8%A5%CA%A5%EB%A5%A2%A5%D7%A5%EA」にKuma名でその作品を
掲載しているので、widgetの性能確認は出来ます。)

APIの不具合を解決するには移植すれば良いのですが、先生の作成されたソースファイル「.pas」とはコードの書き方が全
く異なる(「QTdesigner又はKDevelop」の方が近い)為、10進BASICのアプリプログラム全体を理解して、かつ、先生が使われた開
発言語(Kylixと伺っています)と「GTK2+Glade2」(または「QTdesigner又はKDevelop」)の両方を理解していないと正確な移植
は出来ないので、容易では無いと思います。

今回の不具合については、「Linux版使用上の注意」を記載して利用者に予め知っておいてもらう事で良いかも知れません(知らないと私の様になってしまう恐れがあるので)。


このノートはこれ以上発言できません。
新しくノートを作成 して、続きを書いてください。

インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。