|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Создание нового класса который должен отображаться графически
есть модуль:
Код:
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
|
|||
|
|||
x1, x2 ... определять в другом unit? тогда их в класс, а значение передавать через конструктор
а пока в этом модуле ничего стоящего нет >woweook< Последний раз редактировалось Pyro, 25.10.2012 в 05:38. |
#3
|
||||
|
||||
Цитата:
Код:
..... implementation procedure Tbalka.setshema(value:tcanvas); var ..... Цитата:
|
#4
|
|||
|
|||
подключаю этот модуль в другом юнит
но все равно ошибка вот другой модуль: Код:
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
|
||||
|
||||
Цитата:
В этом чтоли?: Код:
..... x2:=x1+fdlina; y2:=y1+20; value.Rectangle(x1, y1, x2, y2); ..... |
#6
|
|||
|
|||
ошибки которые выдает компилятор
- Undeclared identifier: 'fdlina' - There is no overloaded version of 'Rectangle' that can be called with these arguments |
#7
|
||||
|
||||
Цитата:
2. Для функции Rectangle допустимы только целочисленные параметры. |
#8
|
||||
|
||||
Это конечно все весело, но если изначально стоит задача визуального отображения вашей балки, почему вы класс не сделали наследником TGraphicControl ?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#9
|
|||
|
|||
Цитата:
|
#10
|
||||
|
||||
Работа с TCanvas реализована в полном объёме.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#11
|
|||
|
|||
интересно как эти балки будут соединяться
>woweook< |
#12
|
|||
|
|||
Цитата:
это тоже проблема и механизма описания что бы прога понимала всю схему, состоящ из нескольких балок и тп, я пока не знаю, но проге и не обязательно это понимать |
#13
|
|||
|
|||
Цитата:
а что прога сможет делать без этого? >woweook< |
#14
|
||||
|
||||
Вопрос: это должна быть "типа CAD-система" или готовая прога, которая рассчитывает схему, нарисованную в ней же? Думаю, это продолжение следующей темы:
http://www.delphisources.ru/forum/sh...ad.php?t=22055 Скорее, таковой класс не подойдет, ведь теоретически балка может находиться под любым углом, при воздействии деформации - изгибаться, и т.д. ЗЫ запостите, пожалуйста, примерный рисунок, как должна выглядеть схема. |
#15
|
|||
|
|||
Цитата:
редактора пока не будет, т е рисовать балку не надо, положение ее будет горизонтальное, а тема действительно продолжение предыдущей Последний раз редактировалось Pavel_Aleksandrovich, 28.10.2012 в 10:34. |