MathgeomGLS

Форк
0
173 строки · 3.4 Кб
1
unit faValueX;
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
  Graf.Global1d;
20

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

46
var
47
  fxValueForm: TfxValueForm;
48

49
// ==================================================================
50
implementation
51
// ==================================================================
52

53
uses
54
  faGraf1D,
55
  faFunc1d;
56

57
{$R *.dfm}
58

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

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

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

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

83
procedure TfxValueForm.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
91
      Items.Objects[i].Free;
92
    Clear;
93
  end;
94
end;
95

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

103
procedure TfxValueForm.EditfxKeyUp(Sender: TObject; var Key: Word;
104
  Shift: TShiftState);
105
begin
106
  try
107
    fxValueToFind := StrToFloat(Editfx.Text);
108
  except
109
    fxValueToFind := 0;
110
  end;
111
end;
112

113
procedure TfxValueForm.RecalcBtnClick(Sender: TObject);
114
var
115
  i: integer;
116

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

127
procedure TfxValueForm.CloseBtnClick(Sender: TObject);
128
begin
129
  Close;
130
end;
131

132
procedure TfxValueForm.ListBox1Click(Sender: TObject);
133
var
134
  w: Word;
135
  i: integer;
136

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

157
procedure TfxValueForm.ShowData;
158
var
159
  i: integer;
160

161
begin
162
  if GraphData.PlotData.TextStr = '' then
163
    Caption := ''
164
  else
165
    Caption := 'y = ' + GraphData.PlotData.TextStr;
166
  Editfx.Text := FloatToStr(fxValueToFind);
167
  for i := 0 to ListBox1.Count - 1 do
168
    ListBox1.Items.Objects[i].Free;
169
  ListBox1.Clear;
170
  MainForm.GLViewer.Invalidate;
171
end;
172

173
end.
174

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

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

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

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