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

 



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.06.2019, 16:53
Men007 Men007 вне форума
Прохожий
 
Регистрация: 13.06.2019
Сообщения: 1
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Запуск расчета в программе при нажатии кнопок UpDown

Написал код для программы (все запускается). Единственное нужно сделать, чтобы расчет запускался не только при нажатии кнопку "bt1", но и при нажатии на кнопки "UpDown1, UpDown2, UpDown3, UpDown4, UpDown5". Не могу понять, как тут быть.
Код:
unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, XPMan, ImgList, Buttons, ComCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    lbl1: TLabel;
    XPManifest1: TXPManifest;
    img1: TImage;
    lbl2: TLabel;
    img2: TImage;
    lbl3: TLabel;
    img3: TImage;
    lbl4: TLabel;
    edt1: TEdit;
    lbl5: TLabel;
    edt2: TEdit;
    img4: TImage;
    img5: TImage;
    img6: TImage;
    img7: TImage;
    btn1: TBitBtn;
    img8: TImage;
    edt3: TEdit;
    lbl6: TLabel;
    lbl7: TLabel;
    lbl8: TLabel;
    lbl9: TLabel;
    tmr1: TTimer;
    lbl10: TLabel;
    lbl11: TLabel;
    edt4: TEdit;
    img9: TImage;
    lbl12: TLabel;
    lbl13: TLabel;
    UpDown1: TUpDown;
    UpDown2: TUpDown;
    UpDown3: TUpDown;
    UpDown4: TUpDown;
    UpDown5: TUpDown;
    procedure FormCreate(Sender: TObject);
    procedure btn1Click(Sender: TObject);
    procedure UpDown1ChangingEx(Sender: TObject; var AllowChange: Boolean;
      NewValue: Smallint; Direction: TUpDownDirection);
    procedure UpDown2ChangingEx(Sender: TObject; var AllowChange: Boolean;
      NewValue: Smallint; Direction: TUpDownDirection);
    procedure UpDown3ChangingEx(Sender: TObject; var AllowChange: Boolean;
      NewValue: Smallint; Direction: TUpDownDirection);
    procedure UpDown4ChangingEx(Sender: TObject; var AllowChange: Boolean;
      NewValue: Smallint; Direction: TUpDownDirection);
    procedure UpDown5ChangingEx(Sender: TObject; var AllowChange: Boolean;
      NewValue: Smallint; Direction: TUpDownDirection);

  private
    { Private declarations }
  public
    { Public declarations }
  end;
  procedure Draw();
  procedure Calculate();


var
  Form1: TForm1;
  Btm1,Btm2,Btm3: TBitmap;
  ro,mu,d,c,Re, OldRe, delta, deltaOtnos, Dzita: Real;
  Mode: byte;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Btm1:=Tbitmap.Create();
  Btm2:=Tbitmap.Create();
  Btm3:=Tbitmap.Create();
  Btm1.LoadFromFile('Pictures/ris1.bmp');
  Btm2.LoadFromFile('Pictures/ris2.bmp');
  Btm3.LoadFromFile('Pictures/ris3.bmp');
  Calculate();
  Draw;
end;

procedure Calculate();
var
  res1: real;
begin
  try
    ro:=strtofloat(Form1.edt1.text);
    mu:=strtofloat(Form1.edit1.text);
    d:=strtofloat(Form1.edt2.text);
    c:=strtofloat(Form1.edt3.text);
    delta:=strtofloat(Form1.edt4.text)/1000;

  except
    ShowMessage('Введите данные в верном фрмате (для отделения дробной части отцелой используйте запятую)');
  end;
  Re:=ro*d*c/mu;
  deltaOtnos:= delta/d;

  res1:= deltaotnos*Re;
  if Res1<10 then mode:=0 else
    if res1<500 then mode:=1 else
      mode:=2;

  Form1.lbl9.Caption:='Re = '+FloatToStrF(Re, ffFixed, 4, 2);

end;

procedure Draw();
begin
  Form1.img7.Canvas.Rectangle(0,0,Form1.img7.Width-1,Form1.img7.Height-1);
  case Mode of
      0: Form1.img7.Canvas.Draw(100,100,Btm1);
      1: Form1.img7.Canvas.Draw(100,100,Btm2);
      2: Form1.img7.Canvas.Draw(100,100,Btm3);
    end;
end;

procedure TForm1.btn1Click(Sender: TObject);
begin
  Calculate();
  Draw();
end;


procedure TForm1.UpDown1ChangingEx(Sender: TObject;
  var AllowChange: Boolean; NewValue: Smallint;
  Direction: TUpDownDirection);
begin
  if Direction = updUp then
    begin
      mu:=mu+0.00001;
      Edit1.Text:=FloatToStrF(mu,ffFixed, 4, 6);
    end
    else
    if Direction = updDown then
    if mu>=0.000001 then
    begin
      mu:=mu-0.00001;
      edit1.Text:=FloatToStrF(mu,ffFixed, 4, 6);
    end;
end;

procedure TForm1.UpDown2ChangingEx(Sender: TObject;
  var AllowChange: Boolean; NewValue: Smallint;
  Direction: TUpDownDirection);
begin
  if Direction = updUp then
    begin
      ro:=ro+1;
      Edt1.Text:=FloatToStrF(ro,ffFixed, 4, 1);
    end
    else
    if Direction = updDown then
    if ro>=1 then
    begin
      ro:=ro-1;
      Edt1.Text:=FloatToStrF(ro,ffFixed, 4, 1);
    end;
end;

procedure TForm1.UpDown3ChangingEx(Sender: TObject;
  var AllowChange: Boolean; NewValue: Smallint;
  Direction: TUpDownDirection);
begin
   if Direction = updUp then
    begin
      d:=d+0.01;
      Edt2.Text:=FloatToStrF(d,ffFixed, 4, 2);
    end
    else
    if Direction = updDown then
    if d>=0.02 then
    begin
      d:=d-0.01;
      Edt2.Text:=FloatToStrF(d,ffFixed, 4, 2);
    end;
end;

procedure TForm1.UpDown4ChangingEx(Sender: TObject;
  var AllowChange: Boolean; NewValue: Smallint;
  Direction: TUpDownDirection);
begin
  if Direction = updUp then
    begin
      c:=c+0.01;
      Edt3.Text:=FloatToStrF(c,ffFixed, 4, 2);
    end
    else
    if Direction = updDown then
    if c>=0.02 then
    begin
      c:=c-0.01;
      Edt3.Text:=FloatToStrF(c,ffFixed, 4, 2);
    end;
end;

procedure TForm1.UpDown5ChangingEx(Sender: TObject;
  var AllowChange: Boolean; NewValue: Smallint;
  Direction: TUpDownDirection);
begin
  if Direction = updUp then
    begin
      delta:=delta+0.00005;
      Edt4.Text:=FloatToStrF(delta*1000,ffFixed, 4, 2);
    end
    else
    if Direction = updDown then
    if delta>=0.00006 then
    begin
      delta:=delta-0.00005;
      Edt4.Text:=FloatToStrF(delta*1000,ffFixed, 4, 2);
    end;
end;

end. 
Ответить с цитированием
  #2  
Старый 13.06.2019, 20:14
Аватар для Guaho
Guaho Guaho вне форума
Новичок
 
Регистрация: 27.08.2017
Сообщения: 81
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

Открываете вкладку "события" для кнопки bt1. Ищете в списке обработчик OnClick, выделяете значение (по идее оно должно быть bt1Click), жмёте Ctrl+C. Открываете вкладку "события" для кнопки UpDown1. Находите событие OnClick и в поле значения события делаете Ctrl+V. Таким образом Вы указываете, что обработчиком события OnClick для кнопки UpDown1 будет служить обработчик OnClick кнопки bt1. И так далее для остальных кнопок. Всё проще простого.
Ответить с цитированием
Ответ



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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter