スクロールボックスを同期するこの簡単な例があります。ここでは、ラジオボタンで同期する側を制御します-左側または右側を同期します。コンパイルすると、コンパイラ メッセージが表示されます。
[dcc32 警告] Unit1.pas(51): W1036 変数 'ScrlBox1' が初期化されていない可能性があります
[dcc32 警告] Unit1.pas(51): W1036 変数 'ScrlBox2' が初期化されていない可能性があります
これは簡単な例です:
procedure TForm1.Button1Click(Sender: TObject);
var
ScrlBox1, ScrlBox2: TScrollBox;
begin
if radiobtn_SyncLeftSides.Checked then // Snyc Left side
begin
ScrlBox1 := ScrollBoxLeft1;
ScrlBox2 := ScrollBoxLeft2;
end
else if radiobtn_SyncrightSides.Checked then // Snyc Right side
begin
ScrlBox2 := ScrollBoxRight1;
ScrlBox1 := ScrollBoxRight2;
end;
// Sync scroll boxes
ScrlBox2.VertScrollBar.Position := ScrlBox1.VertScrollBar.Position;
ScrlBox2.HorzScrollBar.Position := ScrlBox1.HorzScrollBar.Position;
end;
ここでの問題は何ですか?
これを最初に追加すると、メッセージはなくなります。
ScrlBox1:= TScrollBox.Create(nil);
ScrlBox2:= TScrollBox.Create(nil);
しかし、スクロール ボックス変数を作成する必要はないと思いますよね?これらは、フォーム上のコントロールへの単なる変数ポインターです。