喫茶XRAYトップページ

[スレッド全体
]

[4362] Re7:コーディングスタイル返信 削除
2011/3/2 (水) 16:10:19 白猫
▼ satoさん

趣旨がよくわからないのですが
こんな形?

procedure TForm6.SpeedButton2Click(Sender: TObject);
var counts,i:integer;
begin
 //現在の位置を取得する
 counts:=ComboBox1.Items.IndexOf(ComboBox1.Text);
 //何らかの理由で位置が取得できなければ、中止
 if counts>-1 then begin
  //現在位置から五個削除する
  for I := counts to counts+4 do
   ComboBox1.Items.Delete(counts);

 end;  // if i>-1 then begin

end;


> ▼ マスター、皆さん
> 目覚ましは日曜日にセットしたのですが、
> チョット困ったことがおきたので起きてきました。
> よろしくお願いします。
> Formに
> Combobox1,SpeedButton1,SpeedButton2 をおきます。
> SpeedButton1Clickで
>   ComboBox1.Items.Clear;
>   for i:=1 to 10 do
>     ComboBox1.Items.Insert(0,IntToStr(i));
>
> SpeedButton2Clickで
>   for i:=1 to 5 do
>     ComboBox1.Items.Delete(0);
>
> としておきます。
> SpeedButton1を押下したあと、ComboBox1.Itemsは
> 上から、10,9,8,7,6,5,4,3,2,1 となっています。
> ComboBox1のクリックで10,9,8,7,6を選んだ場合
> (ComboBox1.Itemindexが0-4の場合)SpeedButton2を押下すると
> ComboBox1のTextがクリアーされてしまいます。
> 5,4,3,2,1を選んだ場合は、変化なしです。
> これは、ComboBox1がクリックされたときのItemindexを
> 覚えていて、ComboBox1.Items.DeleteでそのItemindexに相当するItemが
> なくなったので、親切にTextも消してくれるのでしょうか。
> Edit部分は編集可能なはずなので、そっとしておいて欲しいのですが。
>
> 追伸
> 私は、
>  begin
>    begin
>
>    end;
>  end;
> の方に一票です。
> 他の場所から、begin〜endを持ってきて
> さしかえたり、間に入れたり、コメントにするときに
> ブロックとして分かりやすいためです(初心者好み)。
> そのため、あとで整形するのに矩形選択でスペースの追加、
> 削除もよく使います。


[4363] Re8:コーディングスタイル返信 削除
2011/3/2 (水) 16:54:07 sato
▼ マスター、白猫さん
ありがとうございます。
今まではあまりこのような使い方(ComboBox1.Itemsの一部削除)
をしなかったので、初めて気がついたので、「投稿」しました。
ComboBoxのItemsの選択の前に入力された内容@によって、
ComboBoxの下の方には、たまに選択される可能性のある候補Aをセットし、
上5つにはかなり選択される可能性の高い候補Bをセットするというイメージです。
@によってAは変わらないので、Bの部分だけを削除して毎回セットし直す
と言う感じです。
ただ、ComboBox1のTextに表示されている値がBを削除したときに、その中に
含まれている場合だけ、消えたので不思議に思ったしだいです。
仕様なら、
>Edit部分のTextの値を退避しておいて,セットし直すとか...
しかないですよね。ありがとうございました。

今年もよろしくお願いします。
現役引退宣言?の「?」に安心しています。
山の写真も楽しみにしています。源流の水で淹れたコーヒーとともに。
やっと、這い出してきたsatoでした。



[▼次のスレッド]
INCM/CMT
Cyclamen v3.82