ComboBoxの表示を変えたいのだが??


AS  2014-07-08 04:42:25  No: 46434

Comboboxの表示をプログラムで変えたいのですが、思うようになりません。
プログラム作成中の実行では変えられますが、compileしたプログラムを起動すると、変えられません。何故でしょうか?対処方法も教えてもらうと嬉しいです。
使用しているのは、XE2とXE5で、OncreateとOnActivate両方でだめです。
よろしくお願いします。

  
  if edit1.Text='On' then Combobox1.ItemIndex:=1;
  if edit1.Text='Off' then Combobox1.ItemIndex:=0;


DEKO  2014-07-08 11:37:49  No: 46435

よく解りませんが、こういう事ですか?
http://ht-deko.minim.ne.jp/ft1110.html#111010

なお、
>  if edit1.Text='On' then Combobox1.ItemIndex:=1;
>  if edit1.Text='Off' then Combobox1.ItemIndex:=0;
Edit1 に入力途中の場合には ItemIndex の値は変わらず、
かつ、'On2' と入力された場合には ItemIndex は 1 になったままになりますが、
それは意図した動作ですか?


AS  2014-07-08 16:31:10  No: 46436

DEKOさん、ありがとうございます。

こういう事ですか?を見に行きましたが、
すみませんが、私にはさっぱり??です。

それは意図した動作ですか?に関しては、意図してはいません。
Editは下のDrtのOn、Offを表示するのに使っているだけです。

下のように変えましたが、「実行」して表示させると表示は変わってますが、
コンパイルしたものを起動すると、ComboBoxのtextに入力しているものが
表示されます。

   if Drt='On' then Combobox1.ItemIndex:=1;
   if Drt='Off' then Combobox1.ItemIndex:=0;

よろしくお願いします。


tor  2014-07-08 17:44:40  No: 46437

コンボボックスのモは何になっているのでしょうか。
「テツのに入力」と言及しているところからするとト?
だとしたら、フが付く方のトフに変えたらどうなるでしょうか?

で、デバッグの第一歩は変数やプロパティの内容が自分の想定通りになっているか確認することです。
問題の箇所の前後で、以下の値を(デバッガで見るなりメッセージボックスで出すなりして)確認するとそれぞれ何になっているでしょうか?
・ト(もしくはアョヤ)
・テアョノノ
・テアョヤ
スススススススススススススススススススススススススススススススススススススススス
ニコ チモ
トコ イーアエッーキッークィ火ゥ ーケコイキコオア  書込者ノト:ロ 「。ァ「  ン

さん、ありがとうございます。

ではオ個の選択肢がありますが、全て試しましたが、全部だめです。

マテに上のプログラムを入れて、マチでさせました。
テョノノは、「実行」したときは1になってますが、
起動した分では−1のままでした。

トャテョは表示しているので、調べていません。

下のような簡単なプログラムを試してみると、正常に作動します。
これをヒントに見直してみます。

ヲサヤニアョニチィモコヲサヤマゥサ

ヲサヲサィノヤモィテアョノノゥゥサ

ヲサヤニアョニティモコヲサヤマゥサ

ヲサヲサトコサ

ヲサヲサトコスァマァサ
ヲサヲサヲサトスァマァヲサヲサテツアョノノコスアサ
ヲサヲサヲサトスァマァヲサヲサテツアョノノコスーサ


スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアエッーキッークィ火ゥ アーコーアコエウ  書込者ノト:ロ 」 ァ」ハノ

 ン

ヲサヲサトャテョは表示しているので、調べていません。
それはプログラムが起動し終わった後で目視確認しただけですよね?
肝心なのは「コードのその箇所を実行する瞬間(あるいは実行した直後)」でどうなっているかなので、そこをちゃんと調べるべきだと思うのですが。

例えば提示されたコードを見るとマテで色々処理をしているようですが、それだと
・テ直後だとまだアョヤには文字列が入っていない(その後のフあたりで入る)とか
・ノノはいったん変更できているのだけれど、その後に別のイベントでノノかヤが変更されている(これもフでとか)
といった可能性が考えられますね。
スススススススススススススススススススススススススススススススススススススススス
ニコ チモ
トコ イーアエッーキッアーィ木ゥ ーアコイーコオエ  書込者ノト:ロ 「。ァ「  ン

さん、ありがとうございました。

マテの中でノノを調べたら、実行時とコンパイル済みとを
比較したら、違っていました。

その原因は、トミヲサコスナニミィチョナホゥサでした。
これのドライブのテが、実行時は小文字のc、コンパイル済みでは大文字のテに
なるからでした。

何故、変わるのですか??

これは、トの欠陥ではないですか??

また、トのミスを見つけたのかな??
スススススススススススススススススススススススススススススススススススススススス
ニコ チモ
トコ イーアエッーキッアーィ木ゥ ーアコイウコイキ  書込者ノト:ロ 「。ァ「  ン

すみません、これのせいかもしれません。
訂正しておきます。

トヲサコスィトミャアャアゥサ
スススススススススススススススススススススススススススススススススススススススス
ニコ チモ
トコ イーアエッーキッアーィ木ゥ ーアコイキコウウ  書込者ノト:ロ 「。ァ「  ン

確かめてみました。

間違いありません。

トミヲサコスナニミィチョナホゥサ

これのせいです。
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアエッーキッアーィ木ゥ ークコウイコオエ  書込者ノト:ロ ヲィァ。 ン

ヲサ間違いありません。
ヲサ
ヲサトミヲサコスナニミィチョナホゥサ
ヲサ
ヲサこれのせいです。

つまり、

トヲサコスィトミャアャアゥサ

で格納されるドライブが、小文字あるいは大文字のどちらでも正しく動作するように記載しなかったヲサチモヲサさんのミスであり、

ヲサこれは、トの欠陥ではないですか??
ヲサ
ヲサまた、トのミスを見つけたのかな??

トヲサの欠陥やミスでは、ないということですよね。
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアエッーキッアーィ木ゥ ーケコエケコーオ  書込者ノト:ロ ヲィァ。 ン

ちなみに、

ヲサこれのドライブのテが、実行時は小文字のc、コンパイル済みでは大文字のテに
ヲサなるからでした。

ラヲサリ、トヲサキヲサで確かめたところ、ノトナから実行した場合、プログラム単体で実行した場合、
どちらも、大文字のテでした。
ラヲサキヲサとかヲサクョアヲサでは、どうなんでしょうね・・・
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアエッーキッアーィ木ゥ アーコウアコイオ  書込者ノト:ロ ヲィァ。 ン

ヲサ小文字あるいは大文字のどちらでも正しく動作するように記載しなかったヲサチモヲサさんのミスであり、

とは、書きましたが、ノトナから実行した場合、プログラム単体で実行した場合で、違うというのも、
確かに変では、ありますね。
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアエッーキッアーィ木ゥ アーコウクコアウ  書込者ノト:ロ 」 ァ」ハノ

 ン

チョナホは基本的に、そのアプリケーションを起動した元のプログラムが指定したパスがそのまま入ります。
例えばコマンドプロンプトからヲサコワョョョワメハヤアョヲサのようにフルパスでわざと大文字小文字まぜこぜに指定して起動すると
チョナホもそのままヲサ「コワョョョワメハヤアョ「ヲサとなるのが確認できると思います。

普通にナなどから起動しているとして、どういう状況でそのようになるのか興味あるところですけれど。
たとえばフルパスで指定しなかった場合は環境変数ミチヤネに従って検索されると思いますが、その環境変数に小文字パスが混じっているとかかな?

何にしてもラのファイルシステムは大文字・小文字を区別しないので、それに依存しないようにした方が安全ですね。
ファイル名などはヲサスヲサで比較せず、例えばモヤを利用するとか。
ついでに、パス名の先頭ア文字が必ずドライブ名だという保証もないので、そこはナニトを使った方が良いかと。
スススススススススススススススススススススススススススススススススススススススス
ニコ チモ
トコ イーアエッーキッアーィ木ゥ イイコーーコーク  書込者ノト:ロ 「。ァ「  ン
モコ 

さん、さん、ありがとうございました。

今までにもテツを使ってきましたが、表示内容を指定しようとしたのはじめてでした。
たまたま、ナにディレクトリを表示させたので、それをそのまま使ったのが、良かった点ですね。
ディレクトリで比較しないようにしたらうまく作動できるようになりました。

解決のチェックを入れます。

今後もよろしくお願いします。
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアエッーキッアアィ金ゥ アエコアアコエク  書込者ノト:ロ 」。ィ ン

もう解決されていますが・・・

大文字・小文字を区別しなくても比較をしたい場合は、
ヲサヲサヲサユティモアゥヲサスヲサユティモイゥヲサ
などとするのもいいかと思います。
スススススススススススススススススススススススススススススススススススススススス
ニコ 通りすがり
トコ イーアエッーキッアアィ金ゥ アカコオケコーキ  書込者ノト:ロ 」。・。。  ン

こんな関数もあります。まぁ長いパス名と短いパス名の問題もありますけど…

チテニホ
コッッョョッフッリナカッッモョチモョチテニホ


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加