Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2007, 14:27   #1
itisiam
аккаунт недоступен
Форумчанин
 
Регистрация: 23.01.2007
Сообщений: 107
Сообщение Использование Properties

Здраствуйте. Я пишу лабу в Делфи и мне осталось дописать только свое св-во , а оно не работает, и даже больше, вешает сам делфи в хлам и приходится отключать все приложения которые были открыты через завершения процесса.Сама программа предназначена для ознакомления с особенностями ООП(наследование etc.) и рисует фигуру. Свойство связано с выбором цвета пера канвы. Вот как я Properties описал

Код:
  TSquare = class(TPoint)
 .......
  public
    procedure Show; override;
    procedure Hide; override;
    procedure Drawing(InitX,InitY,InitLength:integer);
    function  GetSqColor:TColor;
    procedure SetSqColor(NewColor:TColor);
    property  SqColor: TColor read GetSqColor write SetSqColor 
                     default clPurple;

function TSquare.GetSqColor:TColor;
    begin
      result:=Square.SqColor;
    end;

procedure TSquare.SetSqColor(NewColor:TColor);
begin
  Square.SqColor:=NewColor;
end;

procedure TSquare.Show;
begin
  if Square.GetSqColor = Form1.Color
  then Form1.Canvas.Pen.Color:=Square.GetSqColor;
  Square.Drawing(x,y,Length);
  visible:=true;
end;

procedure TSquare.Hide;
begin
Square.SetSqColor(Form1.Color);
  Square.Drawing(x,y,Length);
  visible:=false;
end;
procedure TForm1.OnColorBoxChange(Sender: TObject);
begin
  Square.Hide;
  Square.SetSqColor(Form1.ColorBox.Selected);
  Square.Show;
end;  end;
И еще в отрисовке Drawing ставет
Код:
Form1.Canvas.Pen.Color:=Square.GetSqColor;
Вроде все . У меня сначало было не обращение к методам св-ва, а просто присвоение имени св-ва но и тогда она глючила.
Кто нить знает из-за чего она так страшно глючит? пока свойство не стал писать все рабботало....
ввел пароль, который мне не известен
itisiam вне форума Ответить с цитированием
Старый 14.05.2007, 12:39   #2
mrandrey
Форумчанин
 
Регистрация: 30.03.2007
Сообщений: 124
По умолчанию

Попробуй так:

TSquare = class(TPoint)
.......
sqcol:tcolorl;
private
function GetSqColor:TColor;
procedure SetSqColor(val:TColor);
public
procedure Show; override;
procedure Hide; override;
procedure Drawing(InitX,InitY,InitLength:inte ger);
property SqColor: TColor read GetSqColor write SetSqColor
default clPurple;

function TSquare.GetSqColor:TColor;
begin
result:=SqCol;
end;

procedure TSquare.SetSqColor(val:TColor);
begin
SqCol:=val;
end;

procedure TSquare.Show;
begin
if GetSqColor = Form1.Color
then Form1.Canvas.Pen.Color:=SqColor;

Square.Drawing(x,y,Length);
visible:=true;
end;

procedure TSquare.Hide;
begin
Form1.Color:=SqColor;
Square.Drawing(x,y,Length);
visible:=false;
end;
procedure TForm1.OnColorBoxChange(Sender: TObject);
begin
Square.Hide;
Square.SetSqColor(Form1.ColorBox.Se lected);
Square.Show;
end;
end;

Скорее всего у тебя название переменной совпадает с именем свойства вот и волучается бред..
Тут без 100г не розберешся.....
Спасибо не нужно, а на весы слева кликнуть не помешает!!!
mrandrey вне форума Ответить с цитированием
Старый 14.05.2007, 16:23   #3
itisiam
аккаунт недоступен
Форумчанин
 
Регистрация: 23.01.2007
Сообщений: 107
По умолчанию

там у меня не было поля с переменной типа свойства, я нашел
ввел пароль, который мне не известен
itisiam вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование *.swf Романнн Мультимедиа в Delphi 14 02.04.2010 09:27
Окно Data link properties не выходит Spot БД в Delphi 2 21.02.2009 18:38
Использование BlockRead Никки Общие вопросы Delphi 17 22.04.2008 08:23
Использование длл Anatolij Win Api 1 02.01.2007 19:54