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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2016, 19:09   #11
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Цитата:
Сообщение от lichking Посмотреть сообщение
Не обходимо значение D предать из класса yr в класс form3 и присвоить form3.label.caption
Если конечная цель изменить Form3.Label1.Caption то:
Код:
Form3.Label1.Caption:=TMyClass.TargetField
В вашем случае:
Код:
function TYR.dd(a,b,c: extended): extended;
begin
    Result :=power(b,2)-4*a*c;
end; 

Form3.Label1.Caption:=TYR.dd(a,b,c)
или что вы там передаете.

Последний раз редактировалось Replicant; 02.11.2016 в 19:19.
Replicant вне форума Ответить с цитированием
Старый 02.11.2016, 19:20   #12
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Советую начать с нормальных имен всего.
+1!
Replicant вне форума Ответить с цитированием
Старый 02.11.2016, 19:53   #13
lichking
Пользователь
 
Регистрация: 31.10.2016
Сообщений: 54
По умолчанию

так?

Последний раз редактировалось lichking; 02.11.2016 в 20:04.
lichking вне форума Ответить с цитированием
Старый 02.11.2016, 20:03   #14
lichking
Пользователь
 
Регистрация: 31.10.2016
Сообщений: 54
По умолчанию

Цитата:
Сообщение от Replicant Посмотреть сообщение
Если конечная цель изменить Form3.Label1.Caption то:
Код:
Form3.Label1.Caption:=TMyClass.TargetField
В вашем случае:
Код:
function TYR.dd(a,b,c: extended): extended;
begin
    Result :=power(b,2)-4*a*c;
end; 

Form3.Label1.Caption:=TYR.dd(a,b,c)
или что вы там передаете.
unit Unit3;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls,math, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons;
type
TYR = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
procedure dd (Sender: TObject;df1,df2,df3,df4:extended);
end;
var
Yr: TYR;
var
b,a,c,d:extended;
type
TForm3 = class(TForm)
BitBtn1: TBitBtn;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }

end;

var
Form3: TForm3;
dds:string;
ddf :extended;
implementation

{$R *.dfm}

procedure TForm3.BitBtn1Click(Sender: TObject);

begin
form3.Label1.Caption:=Tyr.dd(a,d,c) ;
end;





procedure TForm3.FormCreate(Sender: TObject);
begin

end;





{ TYR }

procedure TYR.dd(Sender: TObject; df1, df2, df3, df4: extended);
begin
Result :=power(b,2)-4*a*c;
end;

end.

так?
lichking вне форума Ответить с цитированием
Старый 02.11.2016, 20:05   #15
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Цитата:
Сообщение от lichking Посмотреть сообщение
unit Unit3;
так?
Нет, процедура не возвращает результат, меняйте на функцию, как написано выше.
Replicant вне форума Ответить с цитированием
Старый 02.11.2016, 22:33   #16
lichking
Пользователь
 
Регистрация: 31.10.2016
Сообщений: 54
По умолчанию

Цитата:
Сообщение от Replicant Посмотреть сообщение
Нет, процедура не возвращает результат, меняйте на функцию, как написано выше.
вот:
unit Unit3;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms,math, Vcl.Dialogs, Vcl.StdCtrls;
type
TSW = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
SW: TSW;

function divia (D,D2,D3,F:Extended):extended;
type
TForm3 = class(TForm)
Label1: TLabel;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form3: TForm3;
D,D2,D3,F:extended;
s:string;



implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);

begin
D:=strtofloat(form3.Edit1.Text);
D2:=strtofloat(form3.Edit1.Text);
D3:=strtofloat(form3.Edit1.Text);
Label1.Caption:=floattostr(F);
F:=TSW.divia(F2);
end;

procedure TForm3.FormCreate(Sender: TObject);
begin

end;

{ TSW }
function divia (D,d2,d3,F:Extended):extended;
var
a,b,c,F2:extended;
begin
result:= power(b,2)-4*a*c;

end;

procedure TSW.FormCreate(Sender: TObject);
begin

end;

end.
lichking вне форума Ответить с цитированием
Старый 03.11.2016, 01:22   #17
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

2 lichking. Ваш код просто бред с точки зрения основ Дельфи.
Нельзя описать в одном модуле два класса наследника TForm!
northener вне форума Ответить с цитированием
Старый 03.11.2016, 06:33   #18
lichking
Пользователь
 
Регистрация: 31.10.2016
Сообщений: 54
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
2 lichking. Ваш код просто бред с точки зрения основ Дельфи.
Нельзя описать в одном модуле два класса наследника TForm!
Немного поработал над кодом вот что вышло:
unit Unit3;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms,math, Vcl.Dialogs, Vcl.StdCtrls;
type
TSW = class(TObject)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
function divia (var D,D2,D3,F:Extended):extended;
{ Public declarations }
end;
var
a: string;


type
TForm3 = class(TForm)
Label1: TLabel;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form3: TForm3;
D,D2,D3,F3:extended;
s:string;



implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);

begin
D:=strtofloat(form3.Edit1.Text);
D2:=strtofloat(form3.Edit1.Text);
D3:=strtofloat(form3.Edit1.Text);
Label1.Caption:=floattostr(F3);
F3:=TSW.divia(F);
end;

procedure TForm3.FormCreate(Sender: TObject);
begin

end;

{ TSW }


function TSW.divia(var D, D2, D3, F: Extended): extended;
begin
divia:=POWER(D,2)-4*D2*D3;

end;

procedure TSW.FormCreate(Sender: TObject);


begin

end;


end.
но функцию все равно не признает

Последний раз редактировалось lichking; 03.11.2016 в 08:27.
lichking вне форума Ответить с цитированием
Старый 03.11.2016, 06:40   #19
lichking
Пользователь
 
Регистрация: 31.10.2016
Сообщений: 54
По умолчанию

а все равно результат один ругается на вот это F:=TSW.divia(F2)

Последний раз редактировалось lichking; 03.11.2016 в 08:22.
lichking вне форума Ответить с цитированием
Старый 03.11.2016, 08:20   #20
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Цитата:
Сообщение от lichking Посмотреть сообщение
а все равно результат один ругается на вот это F:=TSW.divia(F2)
Естественно, Вы описали эту функцию с 4-ю обязательными аргументами, в то время как передаете 1. А по факту, судя по тому, что Вы пытаетесь сделать в этой функции этих аргумента должно быть 3.
Replicant вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массивы класов zla9_kolu4ka Общие вопросы C/C++ 3 07.03.2014 09:01
Создание экземпляров класов darkmesser C# (си шарп) 5 20.11.2013 04:59
Наследование класов mixon-21 Общие вопросы C/C++ 0 14.09.2013 23:00
Наследственность класов С++ IGOR199304 Помощь студентам 2 19.10.2011 21:50
Композиция класов fantom_ZET Общие вопросы C/C++ 6 31.10.2010 16:50