【小荷花源码】【glt源码】【uccos 源码】unit源码

2024-12-23 03:07:55 来源:photoshop放大图片源码 分类:时尚

1.SystemVerilog $unit 编译单元介绍
2.Incompatible types: 'Integer' and 'String'
3.用delphi写计算器

unit源码

SystemVerilog $unit 编译单元介绍

        SV中增加了编译单元的概念,就是 SV源文件编译的时候,一起编译的所有源文件

        编译单元域在搜索顺序中排第三位

        举个栗子

        这里我们创建了两个包(a_dpk和b_dpk),两个包中的都只有一个打印函数,同时module中也有一个打印函数,(打印函数用于指示所在位置)

        打印结果如下:

        image-

        运行结果如下:

        可以看到此时打印的是在module中导入的包

        那么接下来我们把在module中导入的包注释掉,即把 import a_dpk::*; 注释掉

        下面运行结果:

        此时终于把导入$unit编译单元域的内容打印出来了

        这也就是为什么 编译单元域在搜索规则中排第三

        那么为什么编译单元域叫 $unit 呢?我们可以再把代码更改一下

        我们把 b_dpk 注释掉,但依旧将其导入,看看运行结果

        这里直接显示错误在 $unit ,或许$unit只是一个名称,就好像上例中module命名为 test_tb 一样

        格式为:

        这是C语言中常用的技巧,如果第一次遇到导入语句将其编译到$unit中,再次出现则不会编译

        下面我们将上篇笔记中的包用这种方式仿真一下,先给出上篇笔记中包的内容

        我们将文件名命名为 definitions.dpk ,其中后缀 .dpk 是随便起的

        下面是源码和测试文件

        运行结果如下

        本文主要参考

Incompatible types: 'Integer' and 'String'

       å¥½åƒçœ‹è¿‡æ‚¨çš„问题?因为没有看懂,所有没有人回答!你的意思是 根据 a的值,memo1.Text := '您的回答全部正确!’

       è¿™é‡Œ 应该这样写:(源码:)

       unit Unit1;

       interface

       uses

        Windows,源码小荷花源码 Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

        Dialogs, StdCtrls;

       type

        TForm1 = class(TForm)

        Memo1: TMemo;

        ListBox1: TListBox;

        procedure FormCreate(Sender: TObject);

        procedure ListBox1Click(Sender: TObject);

        private

        { Private declarations }

        public

        { Public declarations }

        end;

       var

        Form1: TForm1;

       implementation

       { $R *.dfm}

       procedure TForm1.FormCreate(Sender: TObject);

       begin

       ListBox1.Items.Add('4');

       ListBox1.Items.Add('对');

       ListBox1.Items.Add('错');

       ListBox1.Items.Add('函数');

       ListBox1.Items.Add('换行');

       ListBox1.Items.Add('不是');

       ListBox1.Items.Add('走了');

       ListBox1.Items.Add('错');

       ListBox1.Items.Add('对');

       ListBox1.Items.Add('delphi');

       end;

       procedure TForm1.ListBox1Click(Sender: TObject);

       var

       a:integer;

       begin

       a := ListBox1.ItemIndex;

       case a of

       0:memo1.Text := ListBox1.Items[a]+' 您的回答全部正确!';

       1:memo1.Text := ListBox1.Items[a]+' 您的回答全部正确!';

       2:memo1.Text := ListBox1.Items[a]+' 您的回答全部正确!';

       3:memo1.Text := ListBox1.Items[a]+' 您的回答全部正确!';

       4:memo1.Text := ListBox1.Items[a]+' 您的回答全部正确!';

       5:memo1.Text := ListBox1.Items[a]+' 您的回答全部正确!';

       6:memo1.Text := ListBox1.Items[a]+' 您的回答全部正确!';

       7:memo1.Text := ListBox1.Items[a]+' 您的回答全部正确!';

       8:memo1.Text := ListBox1.Items[a]+' 您的回答全部正确!';

       9:memo1.Text := ListBox1.Items[a]+' 您的回答全部正确!';

       end;

       end;

       end.

       -------------------------------------------------

       ä½ å¯ä»¥æ ¹æ®å…·ä½“条件,case a of

       -------------------------------------------------

用delphi写计算器

       è¿™æ˜¯æºä»£ç ï¼š

       unit Unit1;

       interface

       uses

       Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

       Dialogs, Buttons, StdCtrls, ExtCtrls;

       type

       TForm1 = class(TForm)

       Panel1: TPanel;

       Panel2: TPanel;

       SpeedButton7: TSpeedButton;

       SpeedButton8: TSpeedButton;

       SpeedButton9: TSpeedButton;

       SpeedButton: TSpeedButton;

       SpeedButton4: TSpeedButton;

       SpeedButton5: TSpeedButton;

       SpeedButton6: TSpeedButton;

       SpeedButton: TSpeedButton;

       SpeedButton1: TSpeedButton;

       SpeedButton2: TSpeedButton;

       SpeedButton3: TSpeedButton;

       SpeedButton: TSpeedButton;

       SpeedButton: TSpeedButton;

       SpeedButton: TSpeedButton;

       SpeedButton: TSpeedButton;

       StaticText1: TStaticText;

       SpeedButton0: TSpeedButton;

       SpeedButton: TSpeedButton;

       SpeedButton: TSpeedButton;

       GroupBox1: TGroupBox;

       procedure SpeedButton1Click(Sender: TObject);

       procedure FormCreate(Sender: TObject);

       procedure SpeedButtonClick(Sender: TObject);

       procedure SpeedButtonClick(Sender: TObject);

       procedure SpeedButtonClick(Sender: TObject);

       procedure SpeedButtonClick(Sender: TObject);

       private

       { Private declarations }

       public

       { Public declarations }

       end;

       var

       Form1: TForm1;

       restart: Boolean;

       isfirst: Boolean;

       fir_num,sec_num: String;

       sign: integer;

       result: real;

       save: String;

       implementation

       { $R *.dfm}

       function count(sign: integer):real;

       begin

       case sign of

       1: result:=strtofloat(fir_num)+strtofloat(sec_num); //为加号时

       2: result:=strtofloat(fir_num)-strtofloat(sec_num); //为减号时

       3: result:=strtofloat(fir_num)*strtofloat(sec_num); //为乘号时

       4: begin

       try

       result:=strtofloat(fir_num)/strtofloat(sec_num); //为除号时

       except

       ShowMessage('错误!');

       form1.close;

       end; //除数为0时,做出异常处理

       end;

       end;

       end;

       procedure TForm1.SpeedButton1Click(Sender: TObject);

       var

       i: integer;

       begin

       if restart then //如果是重新开始输入,则清除原来的操作数,并设置isfirst为True

       begin

       isfirst:=True;

       fir_num:='';

       sec_num:='';

       restart:=False;

       end;

       if isfirst then //如果是第一个操作数

       begin

       if (sender as TSpeedButton).Caption='.' then //如果输入的是小数点

       begin

       if (strlen(pChar(fir_num))<=0) then //如果第一个操作数并未输入

       fir_num:='0.'

       else

       for i:= 1 to strlen(pChar(fir_num)) do

       if fir_num[i]='.' then exit;

       //如果第一个中已含有小数点而又输入小数点,则退出

       end;

       if (strlen(pChar(fir_num))>0) and (fir_num[1]='0') then //如果最高位为0

       begin

       if ((sender as TSpeedButton).Caption='.') then

       fir_num:='0.'

       else

       begin

       if strlen(pChar(fir_num))>1 then //如果是小数,则继续输入

       fir_num:=fir_num+(sender as TSpeedButton).Caption

       else

       fir_num:=(sender as TSpeedButton).Caption;

       //如果不是小数,则去掉最高位的0

       end;

       end

       else

       fir_num:=fir_num+(sender as TSpeedButton).Caption;

       StaticText1.Caption:=fir_num;

       end

       else

       begin

       if (sender as TSpeedButton).Caption='.' then //如果第二个操作数并未输入

       begin

       if (strlen(pChar(sec_num))<=0) then

       sec_num:='0.'

       else

       for i:= 1 to strlen(pChar(sec_num)) do

       if sec_num[i]='.' then exit;

       //如果第二个中已含有小数点而又输入小数点,则退出

       end;

       if (strlen(pChar(sec_num))>0) and (sec_num[1]='0') then //如果最高位为0

       begin

       if ((sender as TSpeedButton).Caption='.') then

       sec_num:='0.'

       else

       begin

       if strlen(pChar(sec_num))>1 then //如果是小数,则继续输入

       sec_num:=sec_num+(sender as TSpeedButton).Caption

       else

       sec_num:=(sender as TSpeedButton).Caption;

       //如果不是小数,则去掉最高位的0

       end;

       end

       else

       sec_num:=sec_num+(sender as TSpeedButton).Caption;

       StaticText1.Caption:=sec_num;

       end;

       end;

       procedure TForm1.FormCreate(Sender: TObject);

       begin

       StaticText1.Caption:='0.'; //设置StaticText1初始显示为0.

       restart:=False;

       Isfirst:=True;

       fir_num:='';

       sec_num:='';

       end;

       procedure TForm1.SpeedButtonClick(Sender: TObject);

       begin

       if (fir_num<>'') and (sec_num<>'') then

       //如果两各操作数都不为空

       begin

       result:=count(sign); //调用函数,返回计算结果

       fir_num:=floattostr(result);

       sec_num:='';

       StaticText1.Caption:=floattostr(result);

       end;

       sign:=(sender as TSpeedButton).Tag;

       isfirst:=False;

       restart:=False;

       end;

       procedure TForm1.SpeedButtonClick(Sender: TObject);

       begin

       if (sec_num<>'') then

       //如果第二个操作数不为空则返回结果

       begin

       result:=count(sign);

       fir_num:='';

       fir_num:=fir_num+floattostr(result);

       StaticText1.Caption:=floattostr(result);

       sec_num:='';

       end;

       restart:=true;

       end;

       procedure TForm1.SpeedButtonClick(Sender: TObject);

       begin

       restart:=True;

       fir_num:='';

       sec_num:='';

       self.StaticText1.Caption:='0.';

       end;

       procedure TForm1.SpeedButtonClick(Sender: TObject);

       begin

       Close;

       end;

       end.

本文地址:http://50.net.cn/news/77c707192851.html 欢迎转发