私はこのことを認識できません。私はDELPHIの中に2つの他のコンポーネントを含んでいます:Firemonkey Layoutとその内部に、TRectangleを含むTLayoutの動的配列があります。 これは、プロパティBarNumberによって実現されます。ランタイムとデスティネーションで作成されたサブコンポーネントとプロパティを処理する方法は?
私はDesign Time vs. Runtimeの動作に関して多くの問題があります。これは、サブコンポーネントをオブジェクトの一部として格納するDFM(FiremonkeyのFMX)によるものです。 これはOn Createパートのコードです。
constructor TFluffyTable.Create(Owner: TComponent);
var
i: integer;
begin
inherited Create(Owner);
Width:=300;
Height:= 160;
BarNumber:=100;
SetLength(Column, FBarNumber);
for i := 0 to (FBarNumber-1) do
begin
Column[i]:= TColumn.Create(Self);
Column[i].Name:= 'Column_' + IntToStr(i);
Column[i].Parent:= Self;
Column[i].Height:=Height;
Column[i].Width:=Width/FBarNumber;
Column[i].Align:= TAlignLayout.alMostLeft;
end;
end;
コンポーネントを登録してデザインタイムに使用すると、正しいバーの数が表示されます。しかし、コンポーネントを使ってプログラムを実行すると、EXEが値をロードするので、2倍のバーが得られます。私はこれを、ループの直前で
の直前で解決しました。 しかし、明らかに、バーはデザインモードでは見えません。これが唯一の解決策であれば、私はそれを立証することができます。 これ以上はない! 奇妙な理由から、Width、Height、およびBarNumberの値を設定できる唯一の場所は、そのコードの一部です。オブジェクトインスペクタでそれらを設定すると、プログラムを実行するときに考慮されず、デフォルトにリセットされます。 (BarNumberの読み取りとFBarNumberに書き込み変数である)要するに
:私はBarNumberおよびその他のプロパティは設計時に設定されるようにするために、私のコンポーネントを処理し、管理する方法がわからない、と正しいを確認しますランタイム中のバーの数。 ありがとうございます。
あなたが答えを受け入れる必要があります、もしあなたが決して受け入れないあなたのすべての質問を参照してください.. –
私は –