MathgeomGLS

Форк
0
/
fx2Value.pas 
168 строк · 3.4 Кб
1
unit fx2Value;
2

3
interface
4

5
uses
6
  Winapi.Windows,
7
  Winapi.Messages,
8
  System.SysUtils,
9
  System.Variants,
10
  System.Classes,
11
  Vcl.Clipbrd,
12
  Vcl.Graphics,
13
  Vcl.Controls,
14
  Vcl.Forms,
15
  Vcl.Dialogs,
16
  Vcl.StdCtrls,
17
  Vcl.Buttons,
18

19
  uGlobal,
20
  fFuncts;
21

22
type
23
  Tfx2ValueForm = class(TForm)
24
    Label1: TLabel;
25
    Label2: TLabel;
26
    Label3: TLabel;
27
    Editfx2: TEdit;
28
    ListBox1: TListBox;
29
    RecalcBtn: TBitBtn;
30
    CloseBtn: TBitBtn;
31
    procedure FormShow(Sender: TObject);
32
    procedure FormActivate(Sender: TObject);
33
    procedure FormDeactivate(Sender: TObject);
34
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
35
    procedure FormDestroy(Sender: TObject);
36
    procedure Editfx2KeyPress(Sender: TObject; var Key: Char);
37
    procedure Editfx2KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
38
    procedure RecalcBtnClick(Sender: TObject);
39
    procedure CloseBtnClick(Sender: TObject);
40
    procedure ListBox1Click(Sender: TObject);
41
  public
42
    DisplayOK: Boolean;
43
    fx2ValueToFind: extended;
44
    procedure ShowData;
45
  end;
46

47
var
48
  fx2ValueForm: Tfx2ValueForm;
49

50
//========================================================================
51
implementation
52
//========================================================================
53

54
uses
55
  fPlot1D;
56

57
{$R *.dfm}
58

59
procedure Tfx2ValueForm.FormShow(Sender: TObject);
60
begin
61
  ShowData;
62
end;
63

64
procedure Tfx2ValueForm.FormActivate(Sender: TObject);
65
begin
66
  DisplayOK := true;
67
end;
68

69
procedure Tfx2ValueForm.FormDeactivate(Sender: TObject);
70
begin
71
  DisplayOK := false;
72
end;
73

74
procedure Tfx2ValueForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
75
begin
76
  with FunctionsForm.fx2Value do
77
  begin
78
    Checked := false;
79
    ImageIndex := 2;
80
  end;
81
end;
82

83
procedure Tfx2ValueForm.FormDestroy(Sender: TObject);
84
var
85
  i: integer;
86

87
begin
88
  with ListBox1 do
89
  begin
90
    for i := 0 to Count -1 do Items.Objects[i].Free;
91
    Clear;
92
  end;
93
end;
94

95
procedure Tfx2ValueForm.Editfx2KeyPress(Sender: TObject; var Key: Char);
96
begin
97
  with Sender as TEdit do
98
  if not CharInSet(Key, ['-', '0'..'9', '.', 'e', 'E', #8]) then Key := #0
99
end;
100

101
procedure Tfx2ValueForm.Editfx2KeyUp(Sender: TObject; var Key: Word;
102
                                       Shift: TShiftState);
103
begin
104
  try
105
    fx2ValueToFind := StrToFloat(Editfx2.Text);
106
  except
107
    fx2ValueToFind := 0;
108
  end;
109
end;
110

111
procedure Tfx2ValueForm.RecalcBtnClick(Sender: TObject);
112
var
113
  i: integer;
114

115
begin
116
  with ListBox1 do
117
  begin
118
    for i := 0 to Count -1 do Items.Objects[i].Free;
119
    Clear;
120
  end;
121
  MainForm.GLViewer.Invalidate;
122
end;
123

124
procedure Tfx2ValueForm.CloseBtnClick(Sender: TObject);
125
begin
126
  Close;
127
end;
128

129
procedure Tfx2ValueForm.ListBox1Click(Sender: TObject);
130
var
131
  w: word;
132
  i: integer;
133

134
begin
135
  with ListBox1 do if Count > 0 then
136
  begin
137
    if FunctionsForm.EditEvaluate.Visible then
138
    begin
139
      FunctionsForm.EditEvaluate.Text := Trim(Copy(Items[ItemIndex], 1, 24));
140
      for i := 0 to Count -1 do Items.Objects[i].Free;
141
      Clear;
142
      FunctionsForm.EvaluateKeyUp(Sender, w, []);
143
    end
144
    else
145
    begin
146
      Clipboard.Clear;
147
      Clipboard.AsText := Trim(Copy(Items[ItemIndex], 1, 24));
148
    end;
149
  end;
150
end;
151

152
procedure Tfx2ValueForm.ShowData;
153
var
154
  i: integer;
155

156
begin
157
  if GraphData.PlotData.TextStr = '' then Caption := ''
158
  else Caption := 'y = '+GraphData.PlotData.TextStr;
159
  Editfx2.Text := FloatToStr(fx2ValueToFind);
160
  with ListBox1 do
161
  begin
162
    for i := 0 to Count -1 do Items.Objects[i].Free;
163
    Clear;
164
  end;
165
  MainForm.GLViewer.Invalidate;
166
end;
167

168
end.
169

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.