大神们,求救啊,用delphi7做

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大神们,求救啊,用delphi7做相关的知识,希望对你有一定的参考价值。

假设需要制造一个带有四个按钮和两个灯泡的盒子并具有以下功能:
⑴ 有四个按钮输入,分别称为B1,B2,B3和B4;
⑵ 有两个灯泡作为输出,分别称为L1和L2;
⑶ B1是打开电源的按钮;
⑷ B4是关闭电源的按钮;
⑸ B2和B3 是操作按钮;
⑹ 在B1被按下后及B4被按下前,系统应称为电源打开状态;
⑺ 在B4被按下后及B1被按下前,系统应称为电源关闭状态;
⑻ 在电源关闭状态下,B2和B3按钮不起作用;
⑼ 在电源关闭状态下,灯应不亮;
⑽ 从最近一次电源打开状态算起,如果B2被按下的次数比B3被按下的次数多,L1亮,否则L2亮。
⑾ 任何时候都不能有一个以上的灯泡亮;
⑿ 如果其中的一个灯泡出现故障,另一个灯泡应以2秒钟的间隔闪烁,而不管B2和B3的操作过程。当B4按下时,闪烁停止;当B1被按下时,闪烁重新开始。当故障被排除后闪烁停止,系统恢复正常状态。
从来没有接触过delphi,关键还是全英文的,根本搞不懂,现在直接上机做,还要写实验报GAO 救救我吧 最好有截图 邮箱1988543830@qq.com xiele

unit Unit1;

interface

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

type
TForm1 = class(TForm)
L1灯泡: TLabel;
L2灯泡: TLabel;
B1开关按钮: TSpeedButton;
B2开关按钮: TSpeedButton;
B3操作按钮: TSpeedButton;
B4操作按钮: TSpeedButton;
Timer1: TTimer;
Button1: TButton;
procedure B1开关按钮Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure B3操作按钮Click(Sender: TObject);
procedure B4操作按钮Click(Sender: TObject);
procedure B2开关按钮Click(Sender: TObject);
procedure B1开关按钮MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure B2开关按钮MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
Private declarations
FPowerStatus:String;
FLamp1Trouble:Boolean; //灯1有故障
FLamp2Trouble:Boolean;//灯2有故障
FB1Cnt:Integer; //各按钮的按下次数
FB2Cnt:Integer;
FB3Cnt:Integer;
FB4Cnt:Integer;
FCurrentLamp:TLabel;
procedure SetButtonStatus;//根据电源状态设置按钮状态
procedure CheckPowerStatus;//检查并设置电源状态
procedure CheckLampStatus;//检查并设置灯状态
procedure TwinkleLamp(ALamp:TLabel);//闪烁灯
public
Public declarations
property 电源状态: String read FPowerStatus write FPowerStatus;
end;

var
Form1: TForm1;

implementation

$R *.dfm

procedure TForm1.B1开关按钮Click(Sender: TObject);
begin
B1开关按钮.Down:=not B1开关按钮.Down;
if B1开关按钮.Down then
电源状态:='打开';
SetButtonStatus;
CheckPowerStatus;
CheckLampStatus;
end;

procedure TForm1.B1开关按钮MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if not B1开关按钮.Down then
Inc(FB1Cnt);
end;

procedure TForm1.B2开关按钮Click(Sender: TObject);
begin
B2开关按钮.Down:=not B2开关按钮.Down;
if B2开关按钮.Down then
电源状态:='关闭';
SetButtonStatus;
CheckPowerStatus;
CheckLampStatus;
end;

procedure TForm1.B2开关按钮MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if not B2开关按钮.Down then
Inc(FB2Cnt);
CheckLampStatus;
end;

procedure TForm1.B3操作按钮Click(Sender: TObject);
begin
Inc(FB3Cnt);
CheckPowerStatus;
CheckLampStatus;
end;

procedure TForm1.B4操作按钮Click(Sender: TObject);
begin
Inc(FB4Cnt);
CheckPowerStatus;
CheckLampStatus;
Timer1.Enabled:=False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin //触发故障
if FLamp2Trouble then
FLamp1Trouble:=True
else
FLamp2Trouble:=True;
CheckLampStatus;
end;

procedure TForm1.CheckLampStatus;
begin
if FB2Cnt>FB3Cnt then
begin
L1灯泡.Caption:='亮';
L2灯泡.Caption:='灭';
end
else
begin
L2灯泡.Caption:='亮';
L1灯泡.Caption:='灭';
end;

if 电源状态='关闭' then
begin
L1灯泡.Caption:='灭';
L2灯泡.Caption:='灭';
end;

if FLamp1Trouble then
begin
FCurrentLamp:=L2灯泡;
Timer1.Enabled:=True;
end;
if FLamp2Trouble then
begin
FCurrentLamp:=L1灯泡;
Timer1.Enabled:=True;
end;

if (电源状态='关闭') or ((not FLamp1Trouble) and (not FLamp2Trouble)) then
begin
Timer1.Enabled:=False;
end;
end;

procedure TForm1.CheckPowerStatus;
begin
if B1开关按钮.Down and (not B4操作按钮.Down) then
电源状态:='打开';
if (not B2开关按钮.Down) and (B4操作按钮.Down) then
电源状态:='关闭';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FB1Cnt:=0;
FB2Cnt:=0;
FB3Cnt:=0;
FB4Cnt:=0;
FLamp1Trouble:=False;
FLamp2Trouble:=False;

B1开关按钮.GroupIndex:=1;
B2开关按钮.GroupIndex:=1;

FCurrentLamp:=L1灯泡;
Timer1.Enabled:=False;
电源状态:='关闭';
CheckLampStatus;
end;

procedure TForm1.SetButtonStatus;
begin//
if 电源状态='关闭' then
begin
B1开关按钮.Enabled:=True;
B2开关按钮.Enabled:=False;
B3操作按钮.Enabled:=False;
end;
if 电源状态='打开' then
begin
B1开关按钮.Enabled:=False;
B2开关按钮.Enabled:=True;
B3操作按钮.Enabled:=True;
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
TwinkleLamp(FCurrentLamp);
end;

procedure TForm1.TwinkleLamp(ALamp: TLabel);
begin
if ALamp.Caption='亮' then
ALamp.Caption:='灭'
else
ALamp.Caption:='亮'
end;

end.追问

截图啊 我根本就看不懂啊 邮箱1988543830@qq.com

追答

你的邮箱不可用。被退信了。

运行截图如下:

追问

1099543830@qq.com

参考技术A 这个把delphi打开建立一个工程,先把界面划出来呀

然后再根据上面的条件一步步设置按钮的处理事件。

别急,刚开始都这样,一步步做,复杂的也就简单了
参考技术B 你这是上位机,还是单纯的软件模拟。。。追问

软件模拟

参考技术C 找本书看看就可以了,delphi很简单的

html中表格水平和垂直滚动,表头垂直不动,可以水平滚动,大神们请问怎么实现啊?

参考技术A 用两个table,一个做表头,一个放内容追问

放内容的滚动条,要把水平滚动条拉到最右边才看的到,怎么解决

追答

结构大概是这样的

这样的结构在水平方向出现滚动条的时候,两个table都会跟着水平滚动。

以上是关于大神们,求救啊,用delphi7做的主要内容,如果未能解决你的问题,请参考以下文章

Delphi7装控件失败后打不开delphi7,怎么决解呢

delphi7.0中全部都有哪些单元?越多越好

大神们,求救啊,我安装的Modelsim SE 10.0提示的错误是这个怎么解决呢?我的联系方式是304764396@qq.com

delphi7 WebServices 读取数据

求助,急急急,我新手小白。我的delphi7怎么打不开form啊?delphi7和别人的界面不一样是否安装错了。

懂Fedora的大神速来啊!!!求救