Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Помогите пожалуйста!Объясните пожалуйста почему не работает программа!


Рекомендуемые сообщения

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, ComCtrls, ExtCtrls, Buttons;

type

TForm1 = class(TForm)

Label1: TLabel;

UpDown1: TUpDown;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

UpDown2: TUpDown;

UpDown3: TUpDown;

BitBtn1: TBitBtn;

Button1: TButton;

Panel1: TPanel;

Image1: TImage;

Image2: TImage;

Image3: TImage;

procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);

procedure UpDown2Click(Sender: TObject; Button: TUDBtnType);

procedure UpDown3Click(Sender: TObject; Button: TUDBtnType);

procedure Button1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Lequ, Lam, b05, b2, koef : single;

j : integer;

implementation

{$R *.DFM}

procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);

begin

Form1.Label2.Caption := FloatToStr(UpDown1.Position/10)+'`';

j := j+1;

end;

procedure TForm1.UpDown2Click(Sender: TObject; Button: TUDBtnType);

begin

Form1.Label4.Caption := FloatToStr(UpDown2.Position)+'см';

j := j+1;

end;

procedure TForm1.UpDown3Click(Sender: TObject; Button: TUDBtnType);

begin

Form1.Label7.Caption := FloatToStr(UpDown3.Position)+'`';

j := j+1;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

u : single;

i : ShortInt;

begin

if j < 3 then

MessageDlg('Не ведены параметры.',

mtInformation, [mbOk], 0)

else

begin

Lam := UpDown2.Position;

b05 := UpDown1.Position/10;

Lequ := 50.5*Lam/b05;

koef := (pi/Lam)*Lequ;

with Form1.Image1.Canvas do

begin

MoveTo(20,410); LineTo(620,410);

LineTo(617,408); LineTo(617,412);

LineTo(620,410);

MoveTo(320,410); LineTo(320,0);

LineTo(318,3); LineTo(322,3);

LineTo(320,0);

for i := 1 to 40 do

if i mod 2 = 0 then

begin

MoveTo(20+i*15,413);

LineTo(20+i*15,407);

if i <> 40 then

TextOut(18+i*15,415,IntToStr(i div 2-10))

else

TextOut(18+i*15,415,'I');

end

else

begin

MoveTo(20+i*15,411);

LineTo(20+i*15,409);

end;

TextOut(280,0,'F(k)');

for i := 1 to 10 do

begin

MoveTo(318,410-i*40);

LineTo(322,410-i*40);

if i <> 10 then

TextOut(300,410-i*40,'0.'+IntToStr(i));

end;

MoveTo(20,410);

for i := -60 to 60 do

if i <> 0 then

begin

u := koef*sin((i/6)*(pi/180));

LineTo(20+(i+60)*5,410-abs(Trunc(400*(sin(u)/u))));

MoveTo(20+(i+60)*5,410-abs(Trunc(400*(sin(u)/u))));

end;

end;

end;

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

j := 0;

end;

end.

Ссылка на комментарий
Поделиться на другие сайты

Насколько я понимаю это вроде Дельфи, но у меня его нет, да и я на нём не писал.

1. Проще задать вопрос в Заказы "Сделайте все за меня"

2. Указать более точную проблему, т.е. что должен делать данный программный код и так же версию компилятора.

С уважением.

Ссылка на комментарий
Поделиться на другие сайты

Банально - лишний end; Но это бы должен показать отладчик.

Поэтому ещё предположение - используя операторы без begin Вы попутали логику работы программы.

Если дело не в этом укажите значения Label от 1 до 7, чтобы можно было попробовать программу.

Ссылка на комментарий
Поделиться на другие сайты

Да, лишний end; Поставил в Лэйблы целые, понажимал каждый UpDown, нажал Button - построен осциллирующий график с максимумом в 0.

Ссылка на комментарий
Поделиться на другие сайты

Текст совпадает с твоим, только там, где подряд четыре end один надо выбросить.

Кроме того, в Дельфи просто скопипастить не пройдёт. Есть проект формы.

1) В проект на форму накидать три UpDown, семь Label, три Image, панель, Button, BitBtn.

Image1 должен быть около 700 на 500

2) Потом вставить в события OnActivate, OnClick фрагменты из текста программы через Инспектор Объектов.

3) Значения Label я поставил равными их номеру т.е. Label3.Caption - 3 и т.д.

4) Пощелкать по всем UpDown - к Лейблам прикрепятся 'см' и прочее. После этого можно нажимать Button - график построен.

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls, Buttons;type TForm1 = class(TForm)Button1: TButton;Image1: TImage;Image2: TImage;Image3: TImage;Panel1: TPanel;BitBtn1: TBitBtn;UpDown1: TUpDown;UpDown2: TUpDown;UpDown3: TUpDown;Label1: TLabel;Label2: TLabel;Label3: TLabel;Label4: TLabel;Label5: TLabel;Label6: TLabel;Label7: TLabel;procedure Button1Click(Sender: TObject);procedure FormActivate(Sender: TObject);procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);procedure UpDown2Click(Sender: TObject; Button: TUDBtnType);procedure UpDown3Click(Sender: TObject; Button: TUDBtnType); private{ Private declarations } public{ Public declarations } end;var Form1: TForm1; Lequ, Lam, b05, b2, koef : single; j : integer;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);varu : single;i : ShortInt;beginif j<3 thenMessageDlg('Не ведены параметры.',mtInformation, [mbOk], 0) else beginLam := UpDown2.Position;b05 := UpDown1.Position/10;Lequ := 50.5*Lam/b05;koef := (pi/Lam)*Lequ;with Form1.Image1.Canvas do begin  MoveTo(20,410); LineTo(620,410);  LineTo(617,408); LineTo(617,412);  LineTo(620,410);  MoveTo(320,410); LineTo(320,0);  LineTo(318,3); LineTo(322,3);  LineTo(320,0);  for i := 1 to 40 do	if i mod 2 = 0 then begin	   MoveTo(20+i*15,413);	   LineTo(20+i*15,407);	   if i <> 40 then TextOut(18+i*15,415,IntToStr(i div 2-10))		 else TextOut(18+i*15,415,'I');	  end else begin		MoveTo(20+i*15,411);		LineTo(20+i*15,409);	end;	TextOut(280,0,'F(k)');	for i := 1 to 10 do begin	  MoveTo(318,410-i*40);	  LineTo(322,410-i*40);	  if i <> 10 then TextOut(300,410-i*40,'0.'+IntToStr(i));	end;	MoveTo(20,410);	for i := -60 to 60 do	  if i <> 0 then begin		u := koef*sin((i/6)*(pi/180));		LineTo(20+(i+60)*5,410-abs(Trunc(400*(sin(u)/u))));		MoveTo(20+(i+60)*5,410-abs(Trunc(400*(sin(u)/u))));	  end;//	  end;end; //with Form1.Image1.Canvasend; //j<3end;procedure TForm1.FormActivate(Sender: TObject);beginj:=0;end;procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);beginForm1.Label2.Caption := FloatToStr(UpDown1.Position/10)+'`';j := j+1;end;procedure TForm1.UpDown2Click(Sender: TObject; Button: TUDBtnType);beginForm1.Label4.Caption := FloatToStr(UpDown2.Position)+'см';j := j+1;end;procedure TForm1.UpDown3Click(Sender: TObject; Button: TUDBtnType);beginForm1.Label7.Caption := FloatToStr(UpDown3.Position)+'`';j := j+1;end;end.

Тестирую, как работает вствавка кода на новом движке. С рисунками-то проблем.

Изменено пользователем Teddy_Bear
  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...