大神们,求救啊,用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
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做的主要内容,如果未能解决你的问题,请参考以下文章
大神们,求救啊,我安装的Modelsim SE 10.0提示的错误是这个怎么解决呢?我的联系方式是304764396@qq.com