![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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? тогда их в класс, а значение передавать через конструктор
а пока в этом модуле ничего стоящего нет Последний раз редактировалось 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 реализована в полном объёме.
|
|
#11
|
|||
|
|||
|
интересно как эти балки будут соединяться
|
|
#12
|
|||
|
|||
|
Цитата:
это тоже проблема и механизма описания что бы прога понимала всю схему, состоящ из нескольких балок и тп, я пока не знаю, но проге и не обязательно это понимать |
|
#13
|
|||
|
|||
|
Цитата:
а что прога сможет делать без этого? |
|
#14
|
||||
|
||||
|
Вопрос: это должна быть "типа CAD-система" или готовая прога, которая рассчитывает схему, нарисованную в ней же? Думаю, это продолжение следующей темы:
http://www.delphisources.ru/forum/sh...ad.php?t=22055 Скорее, таковой класс не подойдет, ведь теоретически балка может находиться под любым углом, при воздействии деформации - изгибаться, и т.д. ЗЫ запостите, пожалуйста, примерный рисунок, как должна выглядеть схема. |
|
#15
|
|||
|
|||
|
Цитата:
редактора пока не будет, т е рисовать балку не надо, положение ее будет горизонтальное, а тема действительно продолжение предыдущей Последний раз редактировалось Pavel_Aleksandrovich, 28.10.2012 в 10:34. |