计算器(delphi)
1 unit Unit1; 2 3 interface 4 5 uses 6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7 Dialogs, StdCtrls, bsSkinData, BusinessSkinForm, Mask, bsSkinBoxCtrls, bscalc, 8 bsSkinCtrls; 9 10 type 11 TForm1 = class(TForm) 12 Button2: TButton; 13 Button3: TButton; 14 Button4: TButton; 15 Button5: TButton; 16 Button6: TButton; 17 Button7: TButton; 18 Button8: TButton; 19 Button9: TButton; 20 Button10: TButton; 21 Button11: TButton; 22 Button12: TButton; 23 Button13: TButton; 24 Button14: TButton; 25 Button15: TButton; 26 Button16: TButton; 27 Button17: TButton; 28 Button18: TButton; 29 Button19: TButton; 30 Button20: TButton; 31 Button21: TButton; 32 Button22: TButton; 33 bsBusinessSkinForm1: TbsBusinessSkinForm; 34 bsSkinData1: TbsSkinData; 35 Edit1: TbsSkinEdit; 36 bsCompressedStoredSkin1: TbsCompressedStoredSkin; 37 Edit2: TbsSkinEdit; 38 Edit3: TbsSkinEdit; 39 Edit4: TbsSkinEdit; 40 Label1: TLabel; 41 Button1: TButton; 42 Button23: TButton; 43 procedure Button1Click(Sender: TObject); 44 procedure FormCreate(Sender: TObject); 45 procedure Button2Click(Sender: TObject); 46 procedure Button3Click(Sender: TObject); 47 procedure Button4Click(Sender: TObject); 48 procedure Button5Click(Sender: TObject); 49 procedure Button6Click(Sender: TObject); 50 procedure Button7Click(Sender: TObject); 51 procedure Button8Click(Sender: TObject); 52 procedure Button9Click(Sender: TObject); 53 procedure Button10Click(Sender: TObject); 54 procedure Button11Click(Sender: TObject); 55 procedure Button12Click(Sender: TObject); 56 procedure Button13Click(Sender: TObject); 57 procedure Button14Click(Sender: TObject); 58 procedure Button15Click(Sender: TObject); 59 procedure Button16Click(Sender: TObject); 60 procedure Edit1Change(Sender: TObject); 61 procedure Edit3Change(Sender: TObject); 62 procedure Edit1Enter(Sender: TObject); 63 procedure Edit3Enter(Sender: TObject); 64 procedure Button17Click(Sender: TObject); 65 procedure Button18Click(Sender: TObject); 66 procedure Button19Click(Sender: TObject); 67 procedure Button20Click(Sender: TObject); 68 procedure Button21Click(Sender: TObject); 69 procedure Button22Click(Sender: TObject); 70 procedure bsSkinButton1Click(Sender: TObject); 71 procedure Button23Click(Sender: TObject); 72 private 73 { Private declarations } 74 public 75 { Public declarations } 76 77 end; 78 79 var 80 Form1: TForm1; 81 str1:String; 82 str2:String; 83 int1:real; 84 int2:real; 85 bo:real; 86 result:real; 87 implementation 88 89 {$R *.dfm} 90 91 procedure TForm1.Button1Click(Sender: TObject); 92 begin 93 94 if bo=0 then 95 begin 96 str1:=str1+'1'; 97 Edit1.Text:=str1; 98 end 99 Else 100 begin 101 str2:=str2+'1'; 102 Edit3.Text:=str2; 103 end 104 105 106 end; 107 108 procedure TForm1.FormCreate(Sender: TObject); 109 begin 110 111 int1:=0; 112 int2:=0; 113 bo:=0; 114 SetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or Es_right); 115 SetWindowLong(Edit2.Handle,GWL_STYLE,GetWindowLong(Edit2.Handle,GWL_STYLE) or Es_right); 116 SetWindowLong(Edit3.Handle,GWL_STYLE,GetWindowLong(Edit3.Handle,GWL_STYLE) or Es_right); 117 SetWindowLong(Edit4.Handle,GWL_STYLE,GetWindowLong(Edit4.Handle,GWL_STYLE) or Es_right); 118 end; 119 120 procedure TForm1.Button20Click(Sender: TObject); 121 begin 122 edit2.Text:=''; 123 edit3.Text:=''; 124 int2:=0; 125 edit4.Text:= FormatFloat('0.00000',1/int1) ; 126 end; 127 128 procedure TForm1.Button21Click(Sender: TObject); 129 begin 130 edit2.Text:=''; 131 edit3.Text:=''; 132 int2:=0; 133 edit4.Text:= FormatFloat('0.00000',Sqrt(int1)) ; 134 end; 135 136 procedure TForm1.Button22Click(Sender: TObject); 137 begin 138 result:=int1*int2/100; 139 Edit4.Text:=FormatFloat('0.00000',result); 140 end; 141 142 procedure TForm1.Button23Click(Sender: TObject); 143 begin 144 if bo=0 then 145 edit1.Text:='' 146 else 147 edit3.Text:=''; 148 149 end; 150 151 procedure TForm1.Button2Click(Sender: TObject); 152 153 154 begin 155 if bo=0 then 156 begin 157 str1:=str1+'2'; 158 Edit1.Text:=str1; 159 end 160 Else 161 begin 162 str2:=str2+'2'; 163 Edit3.Text:=str2; 164 end 165 end; 166 167 procedure TForm1.Button3Click(Sender: TObject); 168 begin 169 if bo=0 then 170 begin 171 str1:=str1+'3'; 172 Edit1.Text:=str1; 173 end 174 Else 175 begin 176 str2:=str2+'3'; 177 Edit3.Text:=str2; 178 end 179 end; 180 181 procedure TForm1.Button4Click(Sender: TObject); 182 begin 183 if bo=0 then 184 begin 185 str1:=str1+'4'; 186 Edit1.Text:=str1; 187 end 188 Else 189 begin 190 str2:=str2+'4'; 191 Edit3.Text:=str2; 192 end 193 end; 194 195 procedure TForm1.Button5Click(Sender: TObject); 196 begin 197 if bo=0 then 198 begin 199 str1:=str1+'5'; 200 Edit1.Text:=str1; 201 end 202 Else 203 begin 204 str2:=str2+'5'; 205 Edit3.Text:=str2; 206 end 207 end; 208 209 procedure TForm1.Button6Click(Sender: TObject); 210 begin 211 if bo=0 then 212 begin 213 str1:=str1+'6'; 214 Edit1.Text:=str1; 215 end 216 Else 217 begin 218 str2:=str2+'6'; 219 Edit3.Text:=str2; 220 end 221 end; 222 223 procedure TForm1.Button7Click(Sender: TObject); 224 begin 225 if bo=0 then 226 begin 227 str1:=str1+'7'; 228 Edit1.Text:=str1; 229 end 230 Else 231 begin 232 str2:=str2+'7'; 233 Edit3.Text:=str2; 234 end 235 end; 236 237 procedure TForm1.Button8Click(Sender: TObject); 238 begin 239 if bo=0 then 240 begin 241 str1:=str1+'8'; 242 Edit1.Text:=str1; 243 end 244 Else 245 begin 246 str2:=str2+'8'; 247 Edit3.Text:=str2; 248 end 249 end; 250 251 procedure TForm1.Button9Click(Sender: TObject); 252 begin 253 if bo=0 then 254 begin 255 str1:=str1+'9'; 256 Edit1.Text:=str1; 257 end 258 Else 259 begin 260 str2:=str2+'9'; 261 Edit3.Text:=str2; 262 end 263 end; 264 265 procedure TForm1.Edit1Change(Sender: TObject); 266 begin 267 str1:=edit1.Text; 268 if edit1.Text<>'' then 269 int1:=strtofloat(edit1.Text) 270 else 271 int1:=0; 272 273 end; 274 275 procedure TForm1.Edit1Enter(Sender: TObject); 276 begin 277 bo:=0; 278 end; 279 280 procedure TForm1.Edit3Change(Sender: TObject); 281 begin 282 str2:=edit3.Text; 283 if edit3.Text<>'' then 284 int2:=strtofloat(edit3.Text) 285 else 286 int2:=0; 287 288 end; 289 290 procedure TForm1.Edit3Enter(Sender: TObject); 291 begin 292 bo:=1; 293 end; 294 295 procedure TForm1.bsSkinButton1Click(Sender: TObject); 296 begin 297 if bo=0 then 298 begin 299 str1:=str1+'1'; 300 Edit1.Text:=str1; 301 end 302 Else 303 begin 304 str2:=str2+'1'; 305 Edit3.Text:=str2; 306 end 307 end; 308 309 procedure TForm1.Button10Click(Sender: TObject); 310 begin 311 if bo=0 then 312 begin 313 str1:=str1+'0'; 314 Edit1.Text:=str1; 315 end 316 Else 317 begin 318 str2:=str2+'0'; 319 Edit3.Text:=str2; 320 end 321 end; 322 323 procedure TForm1.Button11Click(Sender: TObject); 324 begin 325 bo:=1; 326 Edit2.Text:='+'; 327 end; 328 329 procedure TForm1.Button12Click(Sender: TObject); 330 begin 331 bo:=1; 332 Edit2.Text:='-'; 333 end; 334 335 procedure TForm1.Button13Click(Sender: TObject); 336 begin 337 bo:=1; 338 Edit2.Text:='*'; 339 end; 340 341 procedure TForm1.Button14Click(Sender: TObject); 342 begin 343 bo:=1; 344 Edit2.Text:='/'; 345 end; 346 347 procedure TForm1.Button15Click(Sender: TObject); 348 begin 349 350 351 if Edit2.Text='+' then 352 begin 353 result:=int1+int2; 354 Edit4.Text:=floattostr(result); 355 end ; 356 357 358 if Edit2.Text='-' then 359 begin 360 result:=int1-int2; 361 Edit4.Text:=floattostr(result); 362 end ; 363 if Edit2.Text='*' then 364 begin 365 result:=int1*int2; 366 Edit4.Text:=floattostr(result); 367 end ; 368 if ( Edit2.Text='/') and (int2<>0 ) then 369 begin 370 result:=int1/int2; 371 {保留5位小数} 372 Edit4.Text:=FormatFloat('0.00000',result); 373 end ; 374 375 if ( Edit2.Text='/') and (int2=0 ) then 376 begin 377 Application.MessageBox('除数不能为0!','错误提示',MB_OKCANCEL); 378 end ; 379 380 381 end; 382 383 384 procedure TForm1.Button16Click(Sender: TObject); 385 begin 386 387 388 bo:=0; 389 Edit1.Text:=''; 390 Edit2.Text:=''; 391 Edit3.Text:=''; 392 Edit4.Text:=''; 393 int1:=0; 394 int2:=0; 395 result:=0; 396 end; 397 398 procedure TForm1.Button17Click(Sender: TObject); 399 begin 400 if bo=0 then 401 edit1.Text:= Copy( edit1.Text, 1, length( Edit1.text )-1 ) {截取} 402 else 403 edit3.Text:= Copy( edit3.Text, 1, length( Edit3.text )-1 ); 404 405 406 end; 407 408 procedure TForm1.Button18Click(Sender: TObject); 409 begin 410 if bo=0 then 411 begin 412 str1:=str1+'.'; 413 Edit1.Text:=str1; 414 end 415 Else 416 begin 417 str2:=str2+'.'; 418 Edit3.Text:=str2; 419 end 420 end; 421 422 procedure TForm1.Button19Click(Sender: TObject); 423 begin 424 if bo=0 then 425 begin 426 if int1>0 then 427 edit1.Text:='-'+edit1.Text 428 else 429 begin 430 int1:=0-strtofloat(edit1.Text); 431 edit1.Text:=floattostr(int1) ; 432 end; 433 434 end 435 436 else 437 begin 438 if int2>0 then 439 edit3.Text:='-'+edit3.Text 440 else 441 begin 442 int2:=0-strtofloat(edit3.Text); 443 edit3.Text:=floattostr(int2) ; 444 end; 445 end; 446 end; 447 448 end.