как получить доступ к объектам в runtime?
Проблема. В fast report 3.20 в runtime нужно получить доступ к ранее созданному обьекту (в данном случае к memo).
Как было написано в руководстве:
var
Memo1: TfrxMemoView;
Memo1 := frxReport1.FindObject('Memo1') as TfrxMemoView;
Так вот - код не работает, компилятор указывает, что нужно поставить точку с запятой перед AS, а если ее ставишь, то происходит несовпадение типов TfrxMemoView и TfrxComponent !
Кто знает, подскажите, как решить данную проблему и получить доступ к свойствам объекта ?
Как было написано в руководстве:
var
Memo1: TfrxMemoView;
Memo1 := frxReport1.FindObject('Memo1') as TfrxMemoView;
Так вот - код не работает, компилятор указывает, что нужно поставить точку с запятой перед AS, а если ее ставишь, то происходит несовпадение типов TfrxMemoView и TfrxComponent !
Кто знает, подскажите, как решить данную проблему и получить доступ к свойствам объекта ?
Комментарии
ни каких ошибок, все работает
Memo1.Text := '1111';
У меня динамически создается N-е количество memo, при этом их названия идут от 1 до N, например d1, d2, ..., dN.
Так вот вопрос, как можно получить доступ к I-тому мемо.
Я пробовал так:
MemObj := Report.FindObject('''' + 'd'+ inttostr(i) + '''' ) as TfrxMemoView;
а эта строка приводила в свою очередь к ошибке, описанной выше!!!
Код:
qrRecordsCount.Open;
qrRecordsCount.First;
i:=1;
while not qrRecordsCount.EOF do
begin
MxCode := <qrRecordsCount."Matrix_code">;
MxName := <qrRecordsCount."Matrix_name">;
inc(i);
qrRecordsCount.next;
end;
N := i-1;
for i:=1 to N do begin
if ((page2.Paperwidth - 10) <= (170 + i * 20 + 20)) then
page2.Paperwidth := page2.Paperwidth + 20;
with TfrxMemoView.create(header2) do
begin
Parent := header2;
align := 1;
text := MxName;
Name := 'm'+ inttostr(i);
frame.typ :=15;
width := 2 * 37.7953;
height := 0.4 * 37.7953;
left := 17 * 37.7953 + i * 2 * 37.7953;
visible := true;
color := $00FFFFDC;
end;
with TfrxMemoView.create(MasterData2) do
begin
Parent := MasterData2;
align := 1;
text := '';
Name := 'd'+ inttostr(i);
frame.typ :=15;
width := 2 * 37.7953;
height := 0.4 * 37.7953;
left := 19 * 37.7953;
visible := true;
stretchmode := smMaxheight;
end;
i:= i+1;
end;
Memo := TfrxMemoView(Report.FindObject('Memo1'));
Memo.Text := 'asdfsdf';