コンボボックスで指定した内容を編集したい

解決


ゆり  2008-01-29 17:57:23  No: 29565  IP: 192.*.*.*

コンボボックスでコードと名称を表示して、
選択した内容を画面上で編集する事ができますか?

cmbKaisyacd.Items.Add(DS01.FieldByName('コード').AsString 
+ ' ' + DS01.FieldByName('名称').AsString);

ここでコンボボックス(コード・名称)のデータを作り
コンボボックスを指定した段階でコードと名称に分けたいのですが。

cmbKaisname.text := Copy(cmbKaisyacd.text,3,20);
cmbKaisyacd.text := Copy(cmbKaisyacd.text,1,2);

こんな感じでOnSelectのイベントで定義しました。
この段階でCopyでデータは取得できるのですが、
この処理よりも後にコンボボックスからcmbKaisyacd.textに
データが移動されるらしくうまく処理できません。

編集 削除
KHE00221  2008-01-29 20:01:38  No: 29566  IP: 192.*.*.*

どちらかの方法になると思います

----------------------------

procedure TForm3.cmdKaishacdSelect(Sender: TObject);
begin
    PostMessage (Handle,WM_USER+$100,0,0);
end;

procedure TForm3.WMUSER100(var Message: TMessage);
begin
    cmbKaisyacd.text := Copy(cmbKaisyacd.text,1,2);
    Exit;
end;

------------------

procedure TForm3.cmdKaisyacdSelect(Sender: TObject);
begin
    Timer1.Interval := 1;
    Timer1.Enabled  := True;
end;

procedure TForm3.Timer1Timer(Sender: TObject);
begin
    cmbKaisyacd.text := Copy(cmbKaisyacd.text,1,2);
    Timer1.Enabled := False;
end;

編集 削除
HOta  2008-01-29 21:09:40  No: 29567  IP: 192.*.*.*

コードはObjectに渡して、表示と分けたらすっきりしますよ。

編集 削除
ゆり  2008-01-30 08:56:24  No: 29568  IP: 192.*.*.*

ありがとうございました。
イベントを発生させて表示するなんて。
勉強になりました。

編集 削除