Страница 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, спасибо вам большое, все заработало! :D :D :D