掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
親コンポーネント上にある子コンポーネント間の変化を相互に反映させ合うには? (ID:33016)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Mr.XRAY さんへ ありがとうございます。 感動しました。 「すばらしい」の一言に尽きます。 Mr.XRAYさんのコードを参考にして、 「//*」のついている行を付け足してみました。 期待していたとおりの動作です。 これをもとに、コンポーネントのサイズを変えたときに、トラックバーとエディットの位置がうまくいくようにするとか、エディットの広さを変えるとか、いろいろなプロパティやメソッドを付け加えていきながら、勉強を重ねたいと思います。 本当にありがとうございます。 以下が、Mr.XRAYさんのコードをまねして付け加えたものです。 unit PanelTrackBarEdit; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls,ComCtrls,StdCtrls; type TPanelTrackBarEdit = class(TPanel) private { Private 宣言 } FTrackBar: TTrackBar; FEdit: TEdit; protected { Protected 宣言 } procedure EditChange(Sender: TObject); //*** procedure TrackBarChange(Sender: TObject); //* public { Public 宣言 } constructor Create( AOwner: TComponent); override; published { Published 宣言 } end; procedure Register; implementation procedure Register; begin RegisterComponents('Samples', [TPanelTrackBarEdit]); end; constructor TPanelTrackBarEdit.Create( AOwner: TComponent); begin inherited Create(AOwner); width:= 190; height:= 30;//100; //TrackBarを作成 FTrackBar:= TTrackBar.Create(self); FTrackBar.Parent:= self; FTrackBar.Top:= 2; FTrackBar.Left:= 2; FTrackBar.OnChange:= TrackBarChange; //* //Editを作成 FEdit:= TEdit.Create(self); FEdit.Parent:= self; FEdit.top:=2; FEdit.Left:= 150; FEdit.Width:= 30; FEdit.OnChange := EditChange; //*** FEdit.Text:= inttostr(FTrackBar.position); end; procedure TPanelTrackBarEdit.EditChange(Sender: TObject); //*** begin //*** FTrackBar.Position := StrToIntDef(FEdit.Text,0); //*** end; //*** procedure TPanelTrackBarEdit.TrackBarChange(Sender: TObject); //* begin //* FEdit.Text:= intTostr(FTrackBar.Position); //* end; //* end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.