一个工资系统,给定数据90元或其他的。现有三个人a,b,c分得此数据。
用户的操作可以是象调节音量大小那样,可用鼠标拖拽的。
如图:
* *
---------|----------|------------
* *
当有一方数据增大,就有一方减少.总和不变.
若有其他想法可解决的,同样有分!!!
用户的操作可以是象调节音量大小那样,可用鼠标拖拽的。
如图:
* *
---------|----------|------------
* *
当有一方数据增大,就有一方减少.总和不变.
若有其他想法可解决的,同样有分!!!
代码奉献:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, jpeg;type
TForm1 = class(TForm)
Button1: TButton;
Image2: TImage;
Button2: TButton;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
procedure Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Button2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
started : Boolean;
ox : Integer;
implementation{$R *.dfm}procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button<>mbLeft then exit;
started := True;
ox := X;
end;procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
t : Integer;
begin
if not started then exit;
t := Button1.Left + X -ox;
if t>Button2.Left-10 then
t:=Button2.Left-10;
edit5.Text:=FloatToStr((Button1.Left-Image2.Left)/100*30);
edit6.Text:= FloatToStr((Button2.Left-Button1.Left-10)/100*30);
if t<Image2.Left then t:=Image2.Left;
Button1.Left := t;
end;
procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
s : Single;
begin
started := False;
s := (Button1.Left - Image2.Left)/Image2.Width ; end;
procedure TForm1.Button2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button<>mbLeft then exit;
started := True;
ox := X;
end;procedure TForm1.Button2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
t : Integer;
begin
if not started then exit;
t := Button2.Left + X -ox;
if t>Image2.Left+Image2.Width-Button2.Width then
t:=Image2.Left+Image2.Width-Button2.Width;
edit6.Text:= FloatToStr((Button2.Left-Button1.Left-10)/100*30);
edit7.Text:= FloatToStr((Image2.Width+Image2.Left-Button2.Left-10)/100*30);
if t<Button1.Left+10 then t:=Button1.Left+10;
Button2.Left := t;
end;procedure TForm1.Button2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
started := False;
end;end.