Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.10.2012, 00:10
Pavel_Aleksandrovich Pavel_Aleksandrovich вне форума
Прохожий
 
Регистрация: 02.09.2012
Сообщения: 31
Репутация: 9
По умолчанию Создание нового класса который должен отображаться графически

есть модуль:
Код:
unit Balka;

interface
         uses SysUtils, Dialogs, Classes, StdCtrls, Graphics;
         type
             Tbalka=class
                   private
                          fdlina:real;
                          fploshad:real;
                          fshema:tcanvas;
                          procedure setshema(value:tcanvas);
                   published
                            property dlina:real
                                    read fdlina
                                    write fdlina;
                            property ploshad:real
                                    read fploshad
                                    write fploshad;
                            property shema:tcanvas
                                    read fshema
                                    write setshema;
             end;

implementation
              procedure setshema(value:tcanvas);
                       var
                          x1, y1, x2, y2:real;
                       begin
                            x1:=100;
                            y1:=100;
                            x2:=x1+fdlina;
                            y2:=y1+20;
                            value.Rectangle(x1, y1, x2, y2);
                       end;

end.


Что нужно:
- описать процедуру графического отображения здесь в модуле
- значения полей буду определять в другом unit, а описать процедуру графич построения нужно в этом модуле и она зависит от поля

как реализовать данный момент?
Ответить с цитированием
  #2  
Старый 25.10.2012, 05:36
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

x1, x2 ... определять в другом unit? тогда их в класс, а значение передавать через конструктор
а пока в этом модуле ничего стоящего нет
__________________
>woweook<

Последний раз редактировалось Pyro, 25.10.2012 в 05:38.
Ответить с цитированием
  #3  
Старый 25.10.2012, 05:47
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Pavel_Aleksandrovich
Код:
.....
implementation
              procedure setshema(value:tcanvas);
                       var
.....
Здесь должно быть так:
Код:
.....
implementation
              procedure Tbalka.setshema(value:tcanvas);
                       var
.....
Цитата:
Сообщение от Pavel_Aleksandrovich
- значения полей буду определять в другом unit, а описать процедуру графич построения нужно в этом модуле и она зависит от поля

как реализовать данный момент?
Подключаешь к этому модулю через uses тот другой unit и бери с него значения. Или наоборот с другого unit'а подключай этот модуль и вызывай методы этого класса с нужными параметрами.
Ответить с цитированием
  #4  
Старый 25.10.2012, 11:18
Pavel_Aleksandrovich Pavel_Aleksandrovich вне форума
Прохожий
 
Регистрация: 02.09.2012
Сообщения: 31
Репутация: 9
По умолчанию

подключаю этот модуль в другом юнит
но все равно ошибка

вот другой модуль:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Balka;

var
balka1:Tbalka;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
     balka1:=Tbalka.create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
     balka1.free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
     balka1.dlina:=200;
end;

end.

несколько ошибок

ругается на fdlina

и на rectangle

где ошибки?
может как-то каряво модуль написан?
Ответить с цитированием
  #5  
Старый 25.10.2012, 11:27
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Pavel_Aleksandrovich
несколько ошибок

ругается на fdlina

и на rectangle

где ошибки?
может как-то каряво модуль написан?
В каком месте ругается на fdlina и на rectangle?

В этом чтоли?:
Код:
.....
                            x2:=x1+fdlina;
                            y2:=y1+20;
                            value.Rectangle(x1, y1, x2, y2);
.....
И как ругается? Прям нецензурными словами которые нельзя здесь на форуме опубликовать?
Ответить с цитированием
  #6  
Старый 25.10.2012, 16:22
Pavel_Aleksandrovich Pavel_Aleksandrovich вне форума
Прохожий
 
Регистрация: 02.09.2012
Сообщения: 31
Репутация: 9
По умолчанию

ошибки которые выдает компилятор

- Undeclared identifier: 'fdlina'

- There is no overloaded version of 'Rectangle' that can be called with these arguments
Ответить с цитированием
  #7  
Старый 25.10.2012, 16:31
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Цитата:
Сообщение от Pavel_Aleksandrovich
ошибки которые выдает компилятор

- Undeclared identifier: 'fdlina'

- There is no overloaded version of 'Rectangle' that can be called with these arguments
1. Внимательно читал пост №3?
2. Для функции Rectangle допустимы только целочисленные параметры.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:57.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter