Проблема с формами

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
kati
Сообщения: 18
Зарегистрирован: 29 апр 2005, 13:30
Контактная информация:

Помогите плиз решить такую проблему:

У меня есть форма, в которой динамически создаются шейпчики. В этой форме я вызываю другую форму(через Form.Show), в которой меняю цвет одного из шейпчиков. Подскажите, пжлста, как мне присвоить этому шейпчику(динамически созданному в первой форме) во второй форме новый цвет?
RoKon
Сообщения: 82
Зарегистрирован: 27 мар 2005, 12:24
Откуда: Saransk City
Контактная информация:

Ну у него же есть имя? Пусть имена отличаются последними индексами, и присваивай наздоровье.
The trurh is out there...
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

:) пример вызова: 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;
С уважением, Lost Angel...
kati
Сообщения: 18
Зарегистрирован: 29 апр 2005, 13:30
Контактная информация:

Проблема в том, что я не могу написать Form1.(FindComponent(мой шейпчик) as TShape).Brush.Color:=Color или (Form2.Controls[i-1] as TShape).Color := Color; потому что он не понимает Brush.Color и Color. Если я пишу эти строчки в форме, в которой создавала шейпчики, то все нормально, в другой форме они не прописываются. Это бы еще работало, если я вторую форму вызывало через ShowModal, но через ShowModal прога ругается
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

скобка как минимум не там:
(Form1.FindComponent('Shape1') as TShape).Brush.Color:=Color
Изображение
kati
Сообщения: 18
Зарегистрирован: 29 апр 2005, 13:30
Контактная информация:

Пишу:
(Form1.FindComponent('Shape1') as TShape).Brush.Color:=Color
Выдает сообщение:
Undeclared identifier TShape
В типах пишу:
type
TShape = TGraphicControl;
Выдает сообщение:
Undeclared identifier Brush
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

uses ExtCtrls пробовал?
С уважением, Lost Angel...
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

Undeclared identifier TShape
TShape объявлен в модуле ExtCtrls - он подключен?
TShape = TGraphicControl;
так низя - это значит, что TShape это то же что TGraphicControl, а в нём нет Brush, что нормально
Изображение
kati
Сообщения: 18
Зарегистрирован: 29 апр 2005, 13:30
Контактная информация:

Игорь Акопян, LAngel, спасибо вам большое, все заработало! :D :D :D
Ответить