【delphi11】delphi基础探索【三、基础组件和事件】
目录
基础组件
1. TButton(按钮)
2. TLabel(标签)
3. TEdit(编辑框)
4. TMemo(多行编辑框)
5. TComboBox(组合框)
6. TCheckBox(复选框)
7. TRadioButton(单选按钮)
8. TListBox(列表框)
9. TGroupBox(分组框)
10. TPanel(面板)
11. TImage(图像)
12. TMainMenu(主菜单)
13. TPopupMenu(弹出菜单)
14. TStatusBar(状态栏)
15. TToolBar(工具栏)
16. TTrackBar(滑动条)
17. TProgressBar(进度条)
18. TUpDown(上下按钮)
19. TDateTimePicker(日期时间选择器)
20. TMonthCalendar(月历)
21. TTimer(计时器)
22. TScrollBar(滚动条)
23. TTreeView(树形视图)
24. TListView(列表视图)
25. TPageControl(页面控制)
26. TTabSheet(标签页)
27. TSplitter(分割器)
28. TShape(形状)
29. TBevel(斜面)
30. TRichEdit(富文本编辑器)
31. TScrollBox(滚动框)
32. TStaticText(静态文本)
33. TColorBox(颜色框)
34. TFontDialog(字体对话框)
35. TOpenDialog(打开文件对话框)
36. TSaveDialog(保存文件对话框)
37. TPrintDialog(打印对话框)
38. TPrinterSetupDialog(打印机设置对话框)
39. TImageList(图像列表)
40. TActionList(动作列表)
41. TPageScroller(页面滚动器)
42. TApplicationEvents(应用程序事件)
事件和事件处理器
1. 事件
2. 事件处理器
创建和使用事件处理器
步骤 1:选择组件和事件
步骤 2:自动生成事件处理器
常见事件类型
高级事件处理
基础组件
1. TButton(按钮)
- 描述:允许用户执行动作,如提交数据或关闭窗口。
- 常用属性:
Caption
(显示的文本),OnClick
(点击事件处理器)。
2. TLabel(标签)
- 描述:显示不可编辑的文本,常用于描述其他控件或显示信息。
- 常用属性:
Caption
(显示的文本)。
3. TEdit(编辑框)
- 描述:允许用户输入单行文本。
- 常用属性:
Text
(文本内容),MaxLength
(最大长度)。
4. TMemo(多行编辑框)
- 描述:允许用户输入多行文本。
- 常用属性:
Lines
(文本行数组),ScrollBars
(滚动条类型)。
5. TComboBox(组合框)
- 描述:结合了文本框和下拉列表,用户可以从列表中选择一个选项,也可以输入文本。
- 常用属性:
Items
(下拉列表的选项),Text
(当前文本)。
6. TCheckBox(复选框)
- 描述:允许用户选择一个或多个选项。
- 常用属性:
Checked
(是否选中),Caption
(显示的文本)。
7. TRadioButton(单选按钮)
- 描述:允许用户从一组选项中选择一个。
- 常用属性:
Checked
(是否选中),Caption
(显示的文本)。
8. TListBox(列表框)
- 描述:显示一个项目列表,用户可以从中选择。
- 常用属性:
Items
(列表中的项目),ItemIndex
(选中项目的索引)。
9. TGroupBox(分组框)
- 描述:提供一个框架来组织相关的控件。
- 常用属性:
Caption
(分组框标题)。
10. TPanel(面板)
- 描述:用于组织控件或作为其他控件的容器。
- 常用属性:无特定,主要作为布局工具。
11. TImage(图像)
- 描述:用于显示图像。
- 常用属性:
Picture
(图像内容),Stretch
(是否拉伸图像以适应控件大小)。
12. TMainMenu(主菜单)
- 描述:提供应用程序的主菜单。
- 常用属性:
Items
(菜单项)。
13. TPopupMenu(弹出菜单)
- 描述:提供一个在用户右击时显示的菜单。
- 常用属性:
Items
(菜单项)。
14. TStatusBar(状态栏)
- 描述:在应用程序底部显示状态信息。
- 常用属性:
Panels
(状态栏面板)。
15. TToolBar(工具栏)
- 描述:提供一排按钮,用于快速访问常用命令。
- 常用属性:通常与
TToolButton
结合使用,放置具体的工具按钮。
16. TTrackBar(滑动条)
- 描述:允许用户通过滑动选择一个值的控件。
- 常用属性:
Min
(最小值),Max
(最大值),Position
(当前位置)。
17. TProgressBar(进度条)
- 描述:显示任务进度的控件。
- 常用属性:
Min
(最小值),Max
(最大值),Position
(当前进度)。
18. TUpDown(上下按钮)
- 描述:提供一对上下箭头按钮,通常用于增加或减少值。
- 常用属性:
Min
(最小值),Max
(最大值),Position
(当前位置)。
19. TDateTimePicker(日期时间选择器)
- 描述:允许用户选择日期和时间的控件。
- 常用属性:
Date
(选择的日期),Time
(选择的时间)。
20. TMonthCalendar(月历)
- 描述:显示一个月历,用户可以选择日期。
- 常用属性:
Date
(当前选择的日期)。
21. TTimer(计时器)
- 描述:在指定的时间间隔执行代码。
- 常用属性:
Interval
(触发间隔,以毫秒为单位),OnTimer
(触发事件)。
22. TScrollBar(滚动条)
- 描述:提供一个标准的滚动条,用于控制内容的视图。
- 常用属性:
Min
,Max
,Position
。
23. TTreeView(树形视图)
- 描述:显示层次结构数据,如文件系统的目录结构。
- 常用属性:
Items
(节点集合)。
24. TListView(列表视图)
- 描述:以列表的形式显示项目,类似于 Windows 中的文件浏览器。
- 常用属性:
Items
(项目集合),ViewStyle
(显示风格)。
25. TPageControl(页面控制)
- 描述:提供一个包含多个页面(TTabSheet)的控件,每个页面可以容纳其他控件。
- 常用属性:
Pages
(页面集合),ActivePage
(当前激活的页面)。
26. TTabSheet(标签页)
- 描述:TPageControl 的单个页面。
- 常用属性:通常作为 TPageControl 的一部分,容纳其他控件。
27. TSplitter(分割器)
- 描述:允许用户动态调整相邻控件的大小。
- 常用属性:无特定,用于设计布局。
28. TShape(形状)
- 描述:用于绘制简单的形状,如圆形、矩形等。
- 常用属性:
Shape
(形状类型),Brush
(填充设置),Pen
(边框设置)。
29. TBevel(斜面)
- 描述:用于创建凹凸效果的矩形区域,常用于视觉分隔。
- 常用属性:
Shape
(形状),Style
(风格)。
30. TRichEdit(富文本编辑器)
- 描述:一个可以显示和编辑富文本格式的控件,支持不同的字体、颜色和文本格式。
- 常用属性:
Lines
(文本行),SelText
(选中的文本),PlainText
(是否纯文本模式)。
31. TScrollBox(滚动框)
- 描述:一个可包含其他控件的容器,当内容超出其大小时提供滚动条。
- 常用属性:无特定,主要作为容器使用。
32. TStaticText(静态文本)
- 描述:用于显示简单的文本信息,类似于 TLabel,但具有更多样式选项。
- 常用属性:
Caption
(文本内容),Alignment
(对齐方式)。
33. TColorBox(颜色框)
- 描述:显示一个下拉列表,允许用户从预定义的颜色集中选择颜色。
- 常用属性:
Selected
(选中的颜色)。
34. TFontDialog(字体对话框)
- 描述:提供一个标准的字体选择对话框。
- 常用属性:
Font
(选中的字体),Options
(对话框选项)。
35. TOpenDialog(打开文件对话框)
- 描述:允许用户选择文件或文件夹。
- 常用属性:
FileName
(选中的文件名),Filter
(文件过滤器)。
36. TSaveDialog(保存文件对话框)
- 描述:允许用户指定保存文件的名称和位置。
- 常用属性:与 TOpenDialog 类似。
37. TPrintDialog(打印对话框)
- 描述:提供一个标准的打印设置对话框。
- 常用属性:
Copies
(打印份数),PrintRange
(打印范围)。
38. TPrinterSetupDialog(打印机设置对话框)
- 描述:允许用户修改打印机的设置。
- 常用属性:通常与系统打印机设置相关。
39. TImageList(图像列表)
- 描述:用于存储图像集合,常与其他控件(如工具栏)配合使用。
- 常用属性:
Images
(图像集合),Width
、Height
(图像尺寸)。
40. TActionList(动作列表)
- 描述:管理应用程序的动作(如命令或操作),可以跨多个菜单项和工具栏按钮共享。
- 常用属性:
Actions
(动作集合)。
41. TPageScroller(页面滚动器)
- 描述:提供一个滚动区域,可以包含多个控件,通常用于长表单或内容。
- 常用属性:
AutoScroll
(自动滚动),Orientation
(方向)。
42. TApplicationEvents(应用程序事件)
- 描述:用于处理整个应用程序范围内的事件,如激活、最小化、关闭等。
- 常用事件:
OnActivate
(激活时),OnDeactivate
(失活时),OnException
(异常发生时)。
unit MainForm;interfaceuses// 引入必要的单元// ...typeTForm1 = class(TForm)Button1: TButton;Label1: TLabel;Edit1: TEdit;Memo1: TMemo;ComboBox1: TComboBox;CheckBox1: TCheckBox;RadioButton1: TRadioButton;ListBox1: TListBox;GroupBox1: TGroupBox;Panel1: TPanel;Image1: TImage;MainMenu1: TMainMenu;PopupMenu1: TPopupMenu;StatusBar1: TStatusBar;ToolBar1: TToolBar;TrackBar1: TTrackBar;ProgressBar1: TProgressBar;UpDown1: TUpDown;DateTimePicker1: TDateTimePicker;MonthCalendar1: TMonthCalendar;Timer1: TTimer;ScrollBar1: TScrollBar;TreeView1: TTreeView;ListView1: TListView;PageControl1: TPageControl;TabSheet1: TTabSheet;Splitter1: TSplitter;Shape1: TShape;Bevel1: TBevel;RichEdit1: TRichEdit;ScrollBox1: TScrollBox;StaticText1: TStaticText;ColorBox1: TColorBox;FontDialog1: TFontDialog;OpenDialog1: TOpenDialog;PrintDialog1: TPrintDialog;PrinterSetupDialog1: TPrinterSetupDialog;ImageList1: TImageList;ActionList1: TActionList;PageScroller1: TPageScroller;ApplicationEvents1: TApplicationEvents;// 更多组件// ...// 事件处理器procedure Button1Click(Sender: TObject);// 更多事件处理器// ...end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin// 示例:当按钮被点击时,更改标签的文本Label1.Caption := '按钮被点击';
end;// 更多事件处理器的实现
// ...end.
事件和事件处理器
1. 事件
- 定义:在 Delphi 中,事件是指在程序运行时发生的某种情况,通常由用户操作(如点击、键入)或程序逻辑(如时间到达)触发。
- 组件事件:几乎所有的 VCL 组件都有事件,如
OnClick
、OnChange
、OnMouseMove
等。
2. 事件处理器
- 定义:事件处理器是响应特定事件的过程或函数。它定义了当事件发生时应执行的操作。
- 创建方式:在设计视图中双击一个组件可自动生成事件处理器的框架代码。
创建和使用事件处理器
步骤 1:选择组件和事件
- 选择你想要响应的事件类型。例如,如果你想在用户点击按钮时执行操作,你将使用
TButton
的OnClick
事件。
步骤 2:自动生成事件处理器
- 在 Delphi 的设计视图中,双击你选择的组件(如
TButton
)。这将在代码编辑器中自动生成事件处理器的基本框架。
常见事件类型
- OnClick:当用户点击组件时触发。
procedure TForm1.Button1Click(Sender: TObject);
beginShowMessage('按钮被点击');
end;
- OnChange:当组件的内容或状态改变时触发,如编辑框的文本改变。
procedure TForm1.Edit1Change(Sender: TObject);
beginLabel1.Caption := '编辑框内容已更改为: ' + Edit1.Text;
end;
- OnEnter:当组件获得焦点时触发。
procedure TForm1.Edit1Enter(Sender: TObject);
beginEdit1.Color := clYellow; // 当编辑框获得焦点时,改变其背景颜色
end;
- OnExit:当组件失去焦点时触发。
procedure TForm1.Edit1Exit(Sender: TObject);
beginEdit1.Color := clWhite; // 当编辑框失去焦点时,恢复其背景颜色
end
- OnKeyPress:当用户在组件上按键时触发。
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
beginif Key = #13 then // #13 是回车键的 ASCII 码ShowMessage('按下了回车键');
end;
高级事件处理
- 事件传递:一个事件可以从一个组件传递到另一个组件,或者由一个组件处理后再传递给默认的处理器。
在 Delphi 中,事件传递是一个强大的特性,它允许一个事件在不同组件之间传递或在多个层级上处理。这种机制非常有用,特别是当你想要在一个组件处理事件之后,再由另一个组件进一步处理相同的事件。以下是一个简单的例子,演示如何在 Delphi 中实现事件传递。
假设我们有两个按钮:Button1
和 Button2
。我们希望当用户点击 Button1
时,先执行 Button1
的点击事件处理器,然后再自动触发 Button2
的点击事件。
-
设计界面:
- 在窗体上放置两个按钮:
Button1
和Button2
。
- 在窗体上放置两个按钮:
-
为 Button1 创建事件处理器:
- 双击
Button1
自动生成事件处理器。 - 在
Button1Click
事件处理器中编写代码以触发Button2
的点击事件。
- 双击
-
为 Button2 创建事件处理器:
- 双击
Button2
自动生成事件处理器。 - 在
Button2Click
事件处理器中编写响应代码。
- 双击
procedure TForm1.Button1Click(Sender: TObject);
begin// Button1 的事件处理代码ShowMessage('Button1 被点击');// 触发 Button2 的点击事件Button2Click(Sender);
end;procedure TForm1.Button2Click(Sender: TObject);
begin// Button2 的事件处理代码ShowMessage('Button2 被点击');
end;
在这个例子中,当 Button1
被点击时,它首先显示一个消息("Button1 被点击"),然后通过直接调用 Button2Click
方法来触发 Button2
的点击事件。这样,即使用户没有直接点击 Button2
,Button2
的点击事件也会被执行,并显示第二个消息("Button2 被点击")。
- 动态事件处理:可以在运行时动态地为组件分配事件处理器,增加灵活性。
动态事件处理是 Delphi 编程中一个强大的特性,它允许程序在运行时为组件动态分配事件处理器。这种方法在需要根据应用程序的状态或用户的操作来改变事件响应行为时非常有用。以下是一个使用动态事件处理的示例。
假设我们有一个按钮 Button1
和两个不同的事件处理器:HandleButtonClick1
和 HandleButtonClick2
。我们将在运行时根据某些条件(例如,用户的选择或程序状态)决定 Button1
使用哪个事件处理器。
-
设计界面:
- 在窗体上放置一个按钮:
Button1
。
- 在窗体上放置一个按钮:
-
编写两个不同的事件处理器:
- 这两个处理器将在用户点击按钮时执行不同的操作。
-
在运行时动态分配事件处理器:
- 根据程序逻辑或条件,决定
Button1
应该使用哪个事件处理器。
- 根据程序逻辑或条件,决定
procedure TForm1.HandleButtonClick1(Sender: TObject);
beginShowMessage('处理器 1 被调用');
end;procedure TForm1.HandleButtonClick2(Sender: TObject);
beginShowMessage('处理器 2 被调用');
end;
接下来,在程序的某个逻辑部分(例如,在窗体的 OnCreate
事件或根据用户的某个选择),动态地为 Button1
分配事件处理器:
procedure TForm1.FormCreate(Sender: TObject);
begin// 假设这里的条件是基于某些程序逻辑if SomeCondition thenButton1.OnClick := HandleButtonClick1elseButton1.OnClick := HandleButtonClick2;
end;
在这个例子中,根据 SomeCondition
的值,Button1
的 OnClick
事件将被动态地关联到 HandleButtonClick1
或 HandleButtonClick2
。这意味着当用户点击这个按钮时,将根据在窗体创建时设定的条件调用不同的事件处理器。
- 共享事件处理器:多个组件可以共享同一个事件处理器,例如,多个按钮可以共用一个
OnClick
事件处理器。
-
设计界面:
- 在窗体上放置三个按钮:
Button1
、Button2
和Button3
。
- 在窗体上放置三个按钮:
-
创建共享的事件处理器:
- 创建一个事件处理器,它将被所有三个按钮共享。
-
为每个按钮分配相同的事件处理器:
- 在设计时或运行时,将此事件处理器分配给每个按钮的
OnClick
事件。
- 在设计时或运行时,将此事件处理器分配给每个按钮的
procedure TForm1.SharedButtonClick(Sender: TObject);
varButton: TButton;
beginif Sender is TButton thenbeginButton := TButton(Sender);ShowMessage(Button.Name + ' 被点击');end;
end;
在上面的代码中,我们首先检查 Sender
是否为 TButton
类型。这是因为 Sender
参数表示触发事件的组件,而我们想要确定它确实是一个按钮。然后我们使用 TButton(Sender)
将 Sender
转换成 TButton
类型,并显示一个包含按钮名称的消息。
接下来,我们需要为每个按钮分配这个事件处理器。这可以在设计视图中完成,也可以通过代码完成:
procedure TForm1.FormCreate(Sender: TObject);
beginButton1.OnClick := SharedButtonClick;Button2.OnClick := SharedButtonClick;Button3.OnClick := SharedButtonClick;
end;
在 FormCreate
事件处理器中,我们将 SharedButtonClick
分配给每个按钮的 OnClick
事件。
相关文章:

【delphi11】delphi基础探索【三、基础组件和事件】
目录 基础组件 1. TButton(按钮) 2. TLabel(标签) 3. TEdit(编辑框) 4. TMemo(多行编辑框) 5. TComboBox(组合框) 6. TCheckBox(复选框&…...

react hooks浅谈
一.useEffect useEffect是hooks中的生命周期函数 1.只要页面更新就触发回调: useEffect(() > { // 执行逻辑 }) 2.只运行一次(组件挂载和卸载时执行),第二个参数传空数组[]: useEffect(() > { // },[]) 3. 条件…...

stable diffusion webui之lora调用
1.触发词底模lora效果最好(分数不一定要取到1,0.8也行); 2.引用时一定要使用<lora:>,例如<lora:C4D_geometry_bg_v2.5:0.8>; "prompt": "(masterpiece:1.3), (best quality:1.…...

FormData文件上传多文件上传
一、简介 通常情况下,前端在使用post请求提交数据的时候,请求都是采用application/json 或 application/x-www-form-urlencoded编码类型,分别是借助JSON字符串来传递参数或者keyvalue格式字符串(多参数通过&进行连接&#…...

八股文打卡day4——计算机网络(4)
TCP和UDP的概念、特点、区别和对应的使用场景? 我的回答: 概念: TCP是传输控制协议,是面向连接、可靠的、基于字节流的传输层通信协议。 UDP是用户数据报协议,是无连接、不可靠的,基于数据报的传输层通信…...

TensorFlow(2):Windows安装TensorFlow
1 安装python环境 这一步请自行安装,这边不做介绍。 2 安装anaconda 下载路径:Index of /,用户自行选择自己的需要的版本。 3 环境配置 3.1 anaconda环境配置 找到设置,点击系统->系统信息->高级系统设置->环境变量…...

一文解决idea导入源码控制台爆红问题
文章目录 唠嗑部分背景说明idea查看maven配置 言归正传安装mavenidea配置maven 结语及资料获取 唠嗑部分 背景说明 很多新手伙伴们在导入项目源码时,都会遇到大片依赖爆红,项目跑不起来,小白也是把自己电脑重新配置了一番,复现了…...

排序算法——快排
快速排序算法最早是由图灵奖获得者Tony Hoare设计出来的,他在形式化方法理论以 及ALGOL.60编程语言的发明中都有卓越的贡献,是20世纪最伟大的计算机科学家之—。 而这快速排序算法只是他众多贡献中的—个小发明而已。 快速排序(Quick Sort)的基本算法思…...

第二节TypeScript 基础语法
1、typescript程序由以下几个部分组成: 模块函数变量语句和表达式注释 2、开始第一个typescript程序 创建一个typescript程序,使之输出“hello typescript”: 代码: var message:string "hello typescript" cons…...

Go、Python、Java、JavaScript等语言的求余(取模)计算
余数符号规则: Go(%): 余数与被除数符号一致 Java(%): 余数与被除数符号一致 JavaScript(%): 余数与被除数符号一致 Python(%)…...

scrapy快加构造并发送请求
scrapy数据建模与请求 学习目标: 应用 在scrapy项目中进行建模应用 构造Request对象,并发送请求应用 利用meta参数在不同的解析函数中传递数据 1. 数据建模 通常在做项目的过程中,在items.py中进行数据建模 1.1 为什么建模 定义item即提前…...

【C++】谈谈深拷贝与浅拷贝
目录 一、浅拷贝 1.定义 2.示例 3.问题 二、深拷贝 1.定义 2.示例 3.优点 三、考虑场景 浅拷贝的考虑 1.性能要求 2.简单地数据结构 3.资源管理 深拷贝的考虑 1.动态内存分配 2.复杂数据结构 3.资源管理 总结 一、浅拷贝 1.定义 浅拷贝是指对对象进行复制时…...

电商API接口如何驱动业务:代码演示与解析
随着电子商务的飞速发展,电商平台的业务逻辑日益复杂,涉及的模块和功能也越来越多。在这个过程中,电商API接口扮演着至关重要的角色。通过API接口,不同的业务模块可以相互通信,实现数据和服务的共享,提高业…...

秋招总结_就业
2020秋招总结 【前言】 以下内容是写给研二学弟学妹们的秋招总结,研一的师弟师妹们如有需要,也可看看。先说一下我为什么要写这个总结: 1、时代在变化,社会在发展,一届有必要给下一届讲一些经验。 2、我平时和你们…...

基于查表法的水流量算法设计与实现
写在前面 本文分享的是一种基于查表法的水流量的算法方案设计与实现,算法简单易懂,主要面向初学者,有两个目的:一是给初学者一些算法设计的思路引导;二是引导初学者学习怎样用C语言编程实现。 一、设计需求 基于“19…...

Python:复制、移动文件到指定文件夹
需要考虑的问题: 指定文件夹是否存在,不存在则创建在指定文件夹中是否存在同名文件,是覆盖还是另存为 import os import shutil import tracebackdef copyfile(srcfile, dstpath, replaceFalse):"""复制文件到指定文件夹par…...

类和对象(中篇)
类的六个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。 默认成员函数: 用户没有显式实现,编译器会…...

简单几步完成SVN的安装
介绍以及特点 SVN:Subversion,即版本控制系统。 1.代码版本管理工具 2.查看所有的修改记录 3.恢复到任何历史版本和已经删除的文件 4.使用简单上手快,企业安全必备 下载安装 SVN的安装分为两部分,第一部分是服务端安装&…...

NFS原理详解
一、NFS介绍 1)什么是NFS 它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录。 NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂载到本地的NFS客户端中。 在本地的NFS客户端的机器看来,NFS服务器端共享的目录就好像自己的磁…...

查询后矩阵的和
说在前面 🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。 问题描述 给你一个整数 n 和一个下标从 0 开始的 二维数组 queries ,其中 queries[i] [t…...

Flutter实现丝滑的滑动删除、移动排序等-Dismissible控件详解
文章目录 Dismissible 简介使用场景常用属性基本用法举例注意事项 Dismissible 简介 Dismissible 是 Flutter 中用于实现可滑动删除或拖拽操作的一个有用的小部件。主要用于在用户对列表项或任何其他可滑动的元素执行删除或拖动操作时,提供一种简便的实现方式。 使…...

JDK bug:ciObjectFactory::create_new_metadata:原因完全解析
文章目录 1、问题2.详细日志2.关键日志3.结论4.JDK:bug最终bug链接: 京东遇到过类似bug各位大佬如果有更详细的解答可以留言。 1、问题 服务不通,接口404,查看日志有一下截图,还有一个更详细的日志 2.详细日志 # #…...

【数据结构】并查集的简单实现,合并,查找(C++)
文章目录 前言举例: 一、1.构造函数2.查找元素属于哪个集合FindRoot3.将两个集合归并成一个集合Union4.查找集合数量SetCount 二、源码 前言 需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后按一定的规…...

2023美团商家信息
2023美团商家电话、地址、经纬度、评分、均价、执照......

0155 - Java 数组
1 数组介绍 数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。 即:数(数据)组(一组)就是一组数据 2 数组的使用 2.1 使用方式一 2.2 使用方式二 3 数组使用注意事项和细节 数组是多个相同类型数据的组合,实现对这些数据…...

Java 语言有哪些特点
Java语言具有以下特点: 简单易学:Java语法相对简单,与C相比更容易上手。 面向对象:Java是一门纯粹的面向对象编程语言,支持封装、继承和多态等面向对象的特性。 平台无关性:Java程序可以在不同的操作系统…...

SAP 特殊采购类50简介----虚拟件
今天我们测试一下特殊类50,也就是我们常说的虚拟件。 虚拟物料是库存中实际不存在的物料清单(BOM)的子装配件,它用于简化物料清单。尽管虚拟物料出现在物料清单中,但生产订单显示制造虚拟物料所需的组件,而不是虚拟物料本身。 我们举个列子,生产的手机是有包装的,有盒子…...

C语言——内存函数的使用与模拟实现
大家好,我是残念,希望在你看完之后,能对你有所帮助,有什么不足请指正!共同学习交流 本文由:残念ing 原创CSDN首发,如需要转载请通知 个人主页:残念ing-CSDN博客,欢迎各位…...

Mysql索引事务(面试高频)
文章目录 目录 文章目录 前言 一 . 索引 1.1 概念 1.2 作用 1.3 使用场景 1.4 存储引擎 二 . 事务 2.1 事务的概念 2.2 事务四大特性 前言 大家好,今天给大家绍一下mysql索引和事务 一 . 索引 1.1 概念 索引是一种特殊的文件,包含着对数据表中的所有记录的引用指针…...

SpringCloudGateway 3.1.4版本 Netty内存泄漏问题解决
一、 产生的异常 当时是服务器访问不到服务了,上去一看,无法申请资源OutOfDirectMemoryError了,内存级别的东西让人一阵头大,赶紧在线下模拟, 1. 减少分配的堆外内存,打开Netty的监测工具等有助于复现的…...