Страница 1 из 1
Проблема с формами
Добавлено: 11 май 2005, 20:58
kati
Помогите плиз решить такую проблему:
У меня есть форма, в которой динамически создаются шейпчики. В этой форме я вызываю другую форму(через Form.Show), в которой меняю цвет одного из шейпчиков. Подскажите, пжлста, как мне присвоить этому шейпчику(динамически созданному в первой форме) во второй форме новый цвет?
Добавлено: 11 май 2005, 23:35
RoKon
Ну у него же есть имя? Пусть имена отличаются последними индексами, и присваивай наздоровье.
Добавлено: 12 май 2005, 08:50
LAngel

пример вызова: SetColor('Shape1', clBlack);
Код: Выделить всё
procedure SetColor(ControlName: String; Color: TColor);
var i: Integer;
begin
For i := 1 to Form2.ControlCount do
if (Form2.Controls[i-1].Name = ControlName) and (Form2.Controls[i-1] is TShape] then
(Form2.Controls[i-1] as TShape).Color := Color;
end;
Добавлено: 12 май 2005, 11:00
kati
Проблема в том, что я не могу написать Form1.(FindComponent(мой шейпчик) as TShape).Brush.Color:=Color или (Form2.Controls[i-1] as TShape).Color := Color; потому что он не понимает Brush.Color и Color. Если я пишу эти строчки в форме, в которой создавала шейпчики, то все нормально, в другой форме они не прописываются. Это бы еще работало, если я вторую форму вызывало через ShowModal, но через ShowModal прога ругается
Добавлено: 12 май 2005, 11:41
Игорь Акопян
скобка как минимум не там:
(Form1.FindComponent('Shape1') as TShape).Brush.Color:=Color
Добавлено: 12 май 2005, 14:14
kati
Пишу:
(Form1.FindComponent('Shape1') as TShape).Brush.Color:=Color
Выдает сообщение:
Undeclared identifier TShape
В типах пишу:
type
TShape = TGraphicControl;
Выдает сообщение:
Undeclared identifier Brush
Добавлено: 12 май 2005, 14:48
LAngel
uses ExtCtrls пробовал?
Добавлено: 12 май 2005, 14:50
Игорь Акопян
Undeclared identifier TShape
TShape объявлен в модуле ExtCtrls - он подключен?
TShape = TGraphicControl;
так низя - это значит, что TShape это то же что TGraphicControl, а в нём нет Brush, что нормально
Добавлено: 12 май 2005, 15:30
kati
Игорь Акопян,
LAngel, спасибо вам большое, все заработало!
