delphi Sender和Tag的用法1

Sender和Tag的用法  在它们共同的OnClick事件下返回单击的那个按钮的标题

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages,
System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1:
TButton;
    Button2:
TButton;
    Button3:
TButton;
    Button4:
TButton;
    Button5:
TButton;
    Button6:
TButton;
    Button7:
TButton;
    procedure
Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R
*.dfm}

procedure
TForm1.Button1Click(Sender: TObject);
begin
  if Sender is
TButton then
     ShowMessage((Sender
as TButton).Caption);
end;

来自为知笔记(Wiz)

delphi Sender和Tag的用法1

时间: 2024-10-14 08:12:47

delphi Sender和Tag的用法1的相关文章

delphi Sender和Tag的用法

var  Form1: TForm1;  SelectedColor:TColor;//clBlack; //Defaultimplementation{$R *.dfm} procedure TForm1.FormCreate(Sender: TObject);begin   SelectedColor:=clBlack; //Defaultend;//将这些控件全部选中然后使用双击 OnClick事件//OnClick获得返回值procedure TForm1.img11Click(Send

Delphi中的TChart使用用法

1.TChart Hello world 放一个控件到窗体上,然后写代码加入一个折线数据序列: var Series: TLineSeries; begin Series := TLineSeries.Create(Chart1); Series.Add(100, '头部', clRed); Series.Add(200, '颈部', clGreen); Chart1.AddSeries(Series); end; 这样就会生成一个简单的折线图表,要生成其它类型的数据图表,可以添加不同的数据序列

模板参数tag的用法

//通过结构体/类的类型来作为模板参数的tag, //用来区分tag之间的区别. //made by davidsu33 //例如对于某个全局的静态变量,你如果希望有 //很多份,但是其实现又是一样的,你可以考虑 //以模板的形式,通过类tag来区分 //而且还可以根据实际需要来特化模板 #include "stdafx.h" #include <iostream> #include <cassert> using namespace std; template

Delphi中 StrToIntDef函数的用法

Delphi中 StrToIntDef函数的用法: 比如我要判断一个文本框里输入的字符串能不能转换为integer类型,如果能,则返回转换后的整型数据,如果不能,则返回整数0,那么我就可以用strtointdef这个函数. 写法如下: 假设edit1.text:='1000'; 则strtointdef(edit1.text,0)返回值为1000. 如果edit1.text:='fdafds',则返回值为0. (如果你用strtoint(edit1.text)当edit1.text:='fdad

UIView-(frame,center,bounds,tag,transform)用法

frame: 表示控件的位置和尺寸(以父控件的左上角为坐标原点(0,0)) 可以调整控件的大小和位置 不能直接给frame的属性进行赋值_btn.frame.origin.y -=50是错误的,正确的做法应该如下图. 1 CGRect frame = _btn.frame; 2 frame.origin.y -= 50; 3 _btn.frame = frame; center: 表示控件的中点(以父控件的左上角为坐标原点) 可以改变控件的位置 不能直接给frame的属性进行赋值_btn.cen

django中tag的用法

新建一个tags.py from django import templateregister = template.Library() def short_msg(value): if len(value) > 50: return value[:50]+" ......" else: return value register.filter('short_msg', short_msg) 在html页面中 {% extends "base.html" %}

Git 系列之tag的用法---为你的代码标记版本号

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 本地仓库操作 远程仓库操作 其他 tag 操作 在做app开发的时候经常有版本的概念,比如v1.0.v1.1之类的,不同的版本肯定对应不同的代码,所以我一般要给我们的代码加上标签,这样假设v1.1版本出了一个新bug,但是又不晓得v1.0是不是有这个bug,有了标签就可以顺利切换到v1.0的代码,重新打个包测试了. 本地仓库操作: 1:打 tag 标签 Git tag -a v1.0 -m "commit version 1

SVN trunk(主线) branch(分支) tag(标记) 用法详解和详细操作步骤

使用场景: 假如你的项目(这里指的是手机客户端项目)的某个版本(例如1.0版本)已经完成开发.测试并已经上线了,接下来接到新的需求,新需求的开发需要修改多个文件中的代码,当需求已经开始开发一段时间的时候,突然接到用户或测试人员的反馈,项目中有个重大bug需要紧急修复,并且要求bug修复后要立即上线:此时应该怎么修复bug呢?是在当前已经开发新需求的基础上进行修复吗?答案是否定的,原因是:如果是在已经开发新需求的基础上进行修复bug,那么新需求还没开发好,更没有测试,怎么立刻(或最可能快的)上线?

delphi中setTimer函数的用法

delphisetTimer函数用来做定时器,可以实现每隔一段时间运行某个程序,需要用到两个函数,SetTimer函数和KillTimer函数.下面是一个简单的例子:vari :Integer = 0; procedure TimerProc(hwnd:HWND;uMsg,idEvent:UINT;dwTime:DWORD); stdcall;begininc(i);Form1.Caption := IntToStr(i);end; procedure TForm1.FormCreate(Sen