写在前面

这是PB案例学习笔记系列文章的第二篇,该系列文章适合具有一定PB基础的读者,

通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。

文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project-example.git

需要源代码的小伙伴们可以自行下载查看,后续文章涉及到的案例代码也都会提交到这个仓库【pb-project-example

如果对小伙伴有所帮助,希望能给一个小星星支持一下小凡。

一、小目标

掌握pb应用程序的创建、运行、中止等最基本操作。学会使用DropDownListBox控件、ListBox控件,以及

DirListSelectItemDirSelectSetRedraw 等函数和SetPointer 系统函数使用。最终实现如下效果

二、 DropDownListBox控件

2.1 常用属性

属性 描述
AllowEdit 设置是否允许用户输入新的项目,默认为不允许
AutoHScroll 设置当录入新项目或者删除数据时是否允许自动滚动编辑框,默认不允许 .下拉
列表框的宽度大于 Limit 规定的数值, 则没有必要设置该属性; 否则就应该设置该属性为 True
Enabled 设置是否允许进行选择,默认值是 True
Limit 用来规定用户可以输入的字符的最大宽度, 0 表示没有限制,最大是 32 766 个,
默认是 0。
ShowList 规定是否总显示下拉列表,当该属性为 True 时, PowerBuilder 自动将 AllowEdit
属性置为 True,并且此时列表框总显示,向下的小箭头取消。该属性默认为 False,通常情
况下不将该属性置为 True
Sorted 定义各个项目是否自动排序显示,默认为 False
HScrollBar 在需要时,是否显示水平滚动条
VScrollBar 在需要时,是否显示垂直滚动条

2.2 常用事件

事件 触发时机
SelectionChanged 默认事件,在重新选择了下拉列表中的项目时触发,参数 index 可以直接引用,是当前选中项目的索引号
Modified 在输入了新的项目后按下 Enter 或者 Tab 键而使下拉列表框失去焦点时
触发

2.3 常用函数

提供了 37 个函数,图形下拉列表框除此之外又增加了 3 个用户图形处理的函数

2.3.1、AddItem 函数

语法

listbox.AddItem(String)

功能

在列表框最后添加一个项目, 如果列表框的 Sorted 属性为 True, 添加的项目重新排序

2.3.2、DeleteItem 函数

语法

Lb.DeleteItem(index)

返回值:

  • -1 表示删除失败
  • Null 表示参数为 Null
  • 正数,表示删除后列表框中的项目数

功能

删除指定索引号的项目

2.3.3、DirList 函数

语法

Lb.Dirlist(filespec,filetype,{statictext})

参数:

  • filespec 为要显示文件的路径及后缀

  • filetype 表示文件的类型

  • statictext 为窗口上的要显示路径的 statictext 控件名称

其中文件类型取值如下

文件类型-filetype 描述
0 可读写文件
1 只读文件
2 隐含文件
4 系统文件
16 子目录
32 归档文件
16 384 驱动器
32 768 可读写文件以外的

注:同时显示多种类型的文件,可以使用加号连接。例如同时要显示可读写、子目录、驱动器, 参数 filetype 可以使用表达式 0+16+16384

返回值:

  • Null 表示至少有一个参数为 Null
  • True 表示操作正确完成
  • False 表示列表框不能正确显示指定文件 (ilespec 不是一个目录 )

功能

在列表框中显示指定类型的文件

例子

在 lb_1 列表框中显示目录“ c:\dos”下的后缀为txt 的所有可读写文件名称,并将路径名称“ c:\dos”显示在 statictext 控件 st_1 中

lb_1.DirList("c:\dos\*.txt",0,st_1)
2.3.4、DirSelect函数

语法

Listboxname.DirSelect ( selection )

返回值:

  • Null 表示至少有一个参数是Null
  • True 表示用户选择的是目录、驱动器
  • False表示用户选择的是文件

功能

如果目前列表框中的内容是使用函数 Dirlist 获得的,该函数会将用户在列表框Listboxname 中选择的项目的内容保存在 String 类型变量 Selection 中;如果目前列表框中的内容不是使用 DirSelect 获得的,该函数返回的值不能正确反映实际的内容

例子

String ls_pathname
String ls_pattern
Ls_pattern = '*.txt'
If lb_1.DirSelect(ls_pathname) Then //用户选择的是目录或驱动器
lb_1.DirList(ls_pathname + ls_pattern,0) //显示用户选择的目录或驱动器下的文件
Else
//用户选择的是文件,进行其他相关处理
End If
2.3.5、FindItem 函数

语法

listboxname.FindItem ( text, index )

返回:

  • -1 表示没有找到或者发生错误
  • 有参数为 Null 时返回 Null
  • 正确执行并找到了匹配的项目则返回与之匹配的第一个项目的索引号

功能

listboxname 列表框中从索引号为index+1的项目开始搜索, 看是否有内容为text的项目。

例子

在 sle_1(单行文本输入框) 的 Modified 事件中,在 lb_1 查找所有和用户输入字符匹配的项目的索引号和内容

Int li_pos,li_pri
li_pos = lb_1.FindItem(this.text,0)
li_pri = li_pos
Do
MessageBox(String(li_pos),lb_1.text(li_pos))
li_pri = li_pos
li_pos = lb_1.FindItem(this.text,li_pos)
Loop Until li_pos <= li_pri
2.3.6、InsertItem 函数

语法

Lb_1.InsertItem(str,index)

参数:

  • str 表示要插入的内容
  • index表示索引号

返回值:

  • -1 表示插入失败
  • Null 表示有参数为 Null
  • 正整数表示插入项目在列表框中最后的实际位置

功能

在指定索引号前插入内容为 Item 的项目

例子

Lb_1.InsertItem("倒数第二",lb_1.TotalItems())

Lb_1.InsertItem("倒数第二",lb_1.TotalItems())
2.3.7、Reset 函数

语法

listbox.Reset()

返回值:

  • 1 表示执行成功
  • -1 表示执行失败

功能

用来清除列表框中的所有项目

2.3.8、SelectItem 函数

语法

listboxname.SelectItem ( item, index )

返回值:

  • 如果正确执行并找到了匹配的项目,则返回匹配项目的索引号
  • 如果没有匹配的项目,则返回 0
  • 如果发生了错误则返回-1
  • 如果有参数为 Null,则返回 Null

功能

在不允许多选的 listboxname 列表框的索引号为 index 之后查找内容为 item 的项目,如果找到则选中该项目

注: 该查找也是前面部分匹配,同函数 FindItem 的匹配相同。当列表框允许多选时,该函数不起作用,这时应该使用 FindItemSetState 来实现该功能。函数 SetState 不影响已经选中行的状态。

例子

在 lb_1 列表框中选中内容为“ beautiful”的项目,能否正确执行都显示提示信息

If lb_1.SelectItem("beautiful",0) > 0 Then
MessageBox("提示", "正确选中了 beautiful")
Else
MessageBox("提示","没有找到指定的项目")
End If
2.3.9、Text 函数

语法

listbox.Text(index)

返回值:

index索引对应的item项目值

功能

用来读取指定索引号的项目的内容

2.3.10、TotalItems 函数

语法

listbox.TotalItems()

返回值:

返回一个整型数值,表示列表框中总共有多少个项目

注: 列表框的第一个项目的索引号是1,最后一个的索引号等于 listbox.TotalItems()

功能

该函数可以读取列表框中总共有多少个项目

2.3.11、SelectedLength 函数

语法

editname.SelectedLength ( )

返回值:

  • -1 表示执行过程中发生了错误
  • 0 表示没有选中的项目
  • Null 表示 editname 为Null
  • 其他正整数表示选中项目的字符数目

功能

获取在 editname 中选中项目的字符数目,包括空格。

注:,该函数只有在下拉列表框选中项目并且没有失去焦点时,才能正确获得所选项目的字符数目,所以在很多的事件或控件中编程使用该函数都返回 0,因为这些事件触发时,下拉列表框失去了焦点,所以一般在下拉列表框的 SelectionChanged 事件中使用该函数。

另外,下拉列表框的 AllowEdit 属性必须为 True,才能正确执行该函数,否则该函数执行错误

例子

取消下拉列表框中选中的项目,可以在向下拉列表框添加初始数据时增加一个空值(“”),

选择空值即可表示取消选中项目。所以,在读取选中项目的内容时,首先判断选中字符的长度,如果不为 0 则继续处理,

否则表示取消选中,这时不做任何处理

If this.SelectedLength() > 0 Then
//继续处理
End If
2.3.12、SelectedText 函数

语法

editname.SelectedText ( )

返回值:

  • 当有错误发生或者没有选中项目时返回空值(“”)
  • 当 editname 为 Null 返回 Null
  • 正确执行时返回选中项目的内容

功能

返回 editname 中选中项目的内容。该函数在下拉列表框选中项目并且没有失去焦点时,可以正确返回选中项目的内容

例子

首先判断是否有选中项目,如果有就获取选中项目的内容并保存在变量中

String ls_selected
If ddlb_1.SelectedLength() > 0 Then
ls_selected = ddlb_1.SelectedText()
End If
2.3.13、SelectText 函数

语法

editname.SelectText ( start, length )

返回值:

  • 返回选中的字符个数
  • 发生了错误则返回-1
  • 有参数为 Null 则返回Null

功能

editname 的编辑框中,从第 start 字符开始选中 length 个字符。

2.3.14、ReplaceText 函数啊

语法

editname.ReplaceText (string )

返回值:

  • 返回 string 字符串的长度
  • 发生错误则返回-1
  • 有参数为 Null 则返回Null

功能

editname 中用指定的字符串 string 来替换选中的字符

例子

本首先选中列表框 ddlb_1 中当前项目的第一个字符,然后替换成“ X”

If ddlb_1.SelectText(1,1) > 0 Then
ddlb_1.ReplaceText("X")
End If

三、 ListBox 控件

ListBox我们叫做列表框,可以逐条陈列出多条信息,当信息比较多时,可以使用滚动条

3.1 常用属性

ListBox 属性有35个,一般经常需要修改的有5个

属性 描述
Sorted 指定列表框的内容是否排序,不管是数字还是字符都按字符处理,按照ASCII大小进行排序
VscrollBar 纵向滚动条
HscrollBar 横向滚动条
MultiSelect 表示是否可以选择多项
ExtendedSelect 多项进行同时选择,需要配合Ctrl或Shift键使用

3.2 常用事件

这里只列举出该控件特有的事件,其他事件与上一篇文章介绍的【命令按钮】事件相同

事件 触发时机
SelectionChanged 重新选择项目时,触发
DoubleClicked 双击项目时触发

3.3 常用函数

该控件总共有35个函数,常用的有14个

3.3.1 Reset 函数

语法

 listbox.Reset()

返回值:

  • 1表示执行成功
  • -1表示执行失败

功能

清除列表框中的所有项目

3.3.2 AddItem 函数

语法

listbox.AddItem(String)

功能

列表框最后添加一个项目, 如果列表框的 Sorted 属性为 True, 则添加的项目重新排序

注:Item[]是一个记录列表框项目的数组,通过指定索引号可以获取项目的内容,但使用 AddItem 函数不能修改该属性。

3.3.3 TotalItems 函数

语法

listbox.TotalItems()

返回值:

一个整型数值,表示列表框中总共有多少个项目

功能

读取列表框中总共有多少个项目

注:列表框的第一个项目的索引号是1,最后一个的索引号等于listbox.TotalItems()

3.3.4 State 函数

语法

listbox.State(index)

返回值:

  • 1 表示指定索引号的项目是选中状态
  • 0 表示指定索引号的项目没有被选中

功能

用来判断指定索引号的项目是否选中

3.3.5 Text 函数

语法

listbox.Text(index)

返回值:

返回一个String 类型的项目值

功能

用来读取指定索引号的项目的内容

3.3.6 DeleteItem 函数

语法

Lb.DeleteItem(index)

返回值:

  • -1 表示删除失败
  • Null 表示参数为 Null
  • 其他正数值表示删除后列表框中的项目数。

功能

删除指定索引号的项目

3.3.7 InsertItem 函数

语法

Lb_1.InsertItem(str,index)
  • str 表示要插入的内容
  • index 表示插入项目的索引

返回值:

  • -1 表示插入失败
  • Null 表示有参数为 Null
  • 其他正整数表示插入项目在列表框中最后的实际位置

功能

在指定索引号前插入内容为 Item 的项目

例子

在 lb_1 列表框的倒数第二的位置插入一个内容为“倒数第二”的项目

Lb_1.InsertItem("倒数第二",lb_1.TotalItems())
3.3.8 Dirlist 函数

语法

Lb.Dirlist(filespec,filetype,{statictext})
  • filespec 为要显示文件的路径及后缀
  • statictext 为窗口上的要显示路径的 statictext 控件名称
  • filetype 表示文件的类型 ,取值如下
文件类型 描述
0 可读写文件
1 只读文件
2 隐藏文件
4 系统文件
16 子目录
32 归档文件
16 384 驱动器
32 768 可读写文件以外的

注:同时显示多种类型的文件,可以使用加号连接。例如同时要显示可读写、子目录、驱动器, 参数 filetype 可以使用表达式 0+16+16384

返回值:

  • Null 表示至少有一个参数为 Null
  • True 表示操作正确完成
  • False 表示列表框不能正确显示指定文件 (当filespec 不是一个目录 )

例子

在 lb_1 列表框中显示目录“ c:\dos”下的后缀为txt 的所有可读写文件名称,并将路径名称“ c:\dos”显示在 statictext 控件 st_1 中

lb_1.DirList("c:\dos\*.txt",0,st_1)
//同时还显示驱动器和“ c:\dos”下的子目录
Lb_1.DirList("c:\dos\*.txt",0+16+16384,st_1)
3.3.9 DirSelect 函数

语法

Listboxname.DirSelect ( selection )

返回值:

  • Null 表示至少有一个参数是 Null
  • True 表示用户选择的是目录、驱动器
  • False表示用户选择的是文件

功能

如果目前列表框中的内容是使用函数 Dirlist 获得的,该函数会将用户在列表框Listboxname 中选择的项目的内容保存在 String 类型变量 Selection 中;

如果目前列表框中的内容不是使用 DirSelect 获得的,该函数返回的值不能正确反映实际的内容

例子

String ls_pathname
String ls_pattern
Ls_pattern = '*.txt'
If lb_1.DirSelect(ls_pathname) Then //用户选择的是目录或驱动器
lb_1.DirList(ls_pathname + ls_pattern,0) //显示用户选择的目录或驱动器下的文件
Else
//用户选择的是文件,进行其他相关处理
End If
3.3.10 FindItem 函数

语法

listboxname.FindItem ( text, index )
  • 没有找到或者发生错误则返回-1
  • 有参数为 Null 时返回 Null
  • 正确执行并找到了匹配的项目则返回与之匹配的第一个项目的索引号

功能

listboxname 列表框中从索引号为 index+1 的项目开始搜索, 看是否有内容为 text的项目

例子

在 sle_1 的 Modified 事件中,在 lb_1 查找所有和用户输入字符匹配的项目的索引号和内容。

Int li_pos,li_pri
li_pos = lb_1.FindItem(this.text,0)
li_pri = li_pos
Do
MessageBox(String(li_pos),lb_1.text(li_pos))
li_pri = li_pos
li_pos = lb_1.FindItem(this.text,li_pos)
Loop Until li_pos <= li_pri
3.3.11 SelectedIndex 函数

语法

listcontrolname.SelectedIndex ( )

返回值:

  • 如果找到选中项目,则返回该第一个选中项目的索引号
  • 如果 listcontrolname为 Null 则返回 Null
  • 如果没有找到选中项目或者查找过程中发生了错误则返回-1

功能

在 listcontrolname 列表框中查找第一个选中的项目

例子

如果列表框中有选中项目,则显示第一个选中项目的内容

If lb_1.SelectedIndex() > 0 Then //看是否有选中项目
MessageBox(“提示”,lb_1.Text(lb_1.SelectedIndex())) //显示选中项目的内容
End If
3.3.12 SelectedItem 函数

语法

listboxname.SelectedItem ( )

返回值:

  • 如果有选中项目,则返回选中项目的内容
  • 如果没有选中项目则返回空值""
  • 如果 listboxname 为 Null,则返回 Null

功能

获取列表框 listboxname中选中项目的内容。通常在列表框不允许同时选中多行时

使用,当允许多行同时选中时,经常使用 state 和 text 函数来获取选中项目的内容

例子

下面程序在某按钮的单击事件中判断列表框 lb_1 中是否有选中项目,如果有,则

显示选中项目的内容,否则显示提示信息

If Len(lb_1.SelectedItem()) > 0 Then
MessageBox("提示",lb_1.SelectedItem())
Else
Beep(2)
MessageBox("提示","请首先选择! ")
End If
3.3.13 SelectItem 函数

语法

listboxname.SelectItem ( item, index )

返回值:

  • 如果正确执行并找到了匹配的项目,则返回匹配项目的索引号
  • 如果没有匹配的项目,则返回 0
  • 如果发生了错误则返回-1
  • 如果有参数为 Null,则返回 Null

功能

在不允许多选的 listboxname 列表框的索引号为 index 之后查找内容为 item 的项目,

如果找到则选中该项目。注意,该查找也是前面部分匹配,同函数 FindItem 的匹配相同。当

列表框允许多选时,该函数不起作用,这时应该使用 FindItemSetState 来实现该功能。函

SetState 不影响已经选中行的状态

例子

在 lb_1 列表框中选中内容为“ beautiful”的项目,能否正确执行都显示提示信息

If lb_1.SelectItem("beautiful",0) > 0 Then
MessageBox("提示", "正确选中了 beautiful")
Else
MessageBox("提示","没有找到指定的项目")
End If
3.3.14 TotalSelected 函数

语法

listcontrolname.TotalSelected ( )

返回值:

  • 正确执行时返回列表框中选中的项目数
  • 没有选中项目时返回 0
  • 执行错误时返回-1
  • listcontrolnameNull,则返回 Null

功能

获取在 listcontrolname 列表框中选中的项目数。该函数只在列表框允许多选时起

作用,在不允许多选列表框中,即使有选中,项目也返回-1

例子

在某按钮的 Clicked 事件中,用来判断列表框是否允许多选,如果允许则使用函数 TotalSelected 显示选中的项目数,

如果不允许多选,则使用其他函数显示是否有选中项目

If lb_1.MultiSelect or lb_1.ExtendedSelect Then
If lb_1.TotalSelected() > 0 Then
Messagebox("提示","该列表框允许同时选中多行,现有"&
+ String(lb_1.TotalSelected()) + "条数据选中!")
Else
Messagebox("提示","该列表框允许同时选中多行,没有选中的数据!")
End If
Else
If lb_1.SelectedIndex() > 0 Then
MessageBox("提示","该列表框最多只允许选中一条,现有一条选中!")
Else
MessageBox("提示","该列表框最多只允许选中一条,现没有选中的数据!")
End If
End If

四、搭建程序基本框架_

① 建立工作区

② 建立应用

③ 建立窗口

以上步骤忘记的小伙伴,可以参照第一篇文章创建

④ 添加控件

在窗口中建立一个DropDownListBox控件,两个ListBox控件以及一个CommandButton控件。布局如下图所示

各个控件名称为ddlb_disklb_filderslb_files

⑤ 保存窗口,将窗口命名为w_main

五、设置各个控件的外观属性

设置DropDownListBox控件和ListBox控件外观属性。勾选如下属性

VisibleSortedVScrollBarBorder四个属性

六、编写事件代码

这里只列举出常用函数的使用,如果想了解更多,可以参照上面小节函数多写代码实践

①在w_main 窗口的open 事件中编写如下代码

SetPointer(HourGlass!)
ddlb_disk.DirList("c:\*.*", 16384)
ddlb_disk.SelectItem("c", 0)
lb_folders.Dirlist("C:\*.*", 32768 + 16)
lb_files.Dirlist("C:\*.*", 39)

②在ddlb_disk控件的SelectionChanged事件中添加如下代码

string ls_disk
this.dirselect( ls_disk) IF ls_disk <>""THEN
SetPointer(HourGlass!)
lb_folders.setredraw(false)
lb_folders.dirlist(ls_disk,32768)
lb_folders.DirList("*.*",32768 +16)
lb_files.DirList("*.*",39)
end if

③ 在lb_folders控件的SelectionChanged事件中添加如下代码

String ls_dir
if this.DirSelect(ls_dir) then
SetPointer(HourGlass!)
this.DirList(ls_dir,32768+16)
lb_files.dirlist("*.*",39)
end if

七、运行程序

本期内容到这儿就结束了,希望对你有所帮助。我们下期再见 ヾ(•ω•`)o (●'◡'●)

【PB案例学习笔记】-02 目录浏览器的更多相关文章

  1. ArcGIS案例学习笔记3_1_ArcMap编辑练习

    ArcGIS案例学习笔记3_1_ArcMap编辑练习 计划时间:第三天上午 目的:ArcMap编辑练习 教程: pdf page67 数据: gis_ex10/ex07 方法: 1.新建shp文件 目 ...

  2. ArcGIS案例学习笔记3_1

    ArcGIS案例学习笔记3_1 联系方式:谢老师,135_4855_4328,xiexiaokui#139.com 时间:第三天上午 内容1:ArcGIS 平台介绍 体系结构 Arcgis for d ...

  3. ArcGIS案例学习笔记1_1

    ArcGIS案例学习笔记1_1 联系方式:谢老师,135_4855_4328, xiexiaokui#qq.com 时间:第一天上午 准备 0.U盘复制ArcGIS培训*** 1.练习数据不要放到桌面 ...

  4. 软件测试之loadrunner学习笔记-02集合点

    loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行 ...

  5. thinkphp学习笔记1—目录结构和命名规则

    原文:thinkphp学习笔记1-目录结构和命名规则 最近开始学习thinkphp,在下不才,很多的问题看不明白所以想拿出来,恕我大胆发在首页上,希望看到的人能为我答疑解惑,这样大家有个互动,学起来快 ...

  6. GIS案例学习笔记-三维生成和可视化表达

    GIS案例学习笔记-三维生成和可视化表达 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:针对栅格或者矢量数值型数据,进行三维可视化表达 操作时间:15分钟 案 ...

  7. 获取字段唯一值工具- -ArcPy和Python案例学习笔记

    获取字段唯一值工具- -ArcPy和Python案例学习笔记   目的:获取某一字段的唯一值,可以作为工具使用,也可以作为函数调用 联系方式:谢老师,135-4855-4328,xiexiaokui# ...

  8. 面图层拓扑检查和错误自动修改—ArcGIS案例学习笔记

    面图层拓扑检查和错误自动修改-ArcGIS案例学习笔记 联系方式:谢老师,135_4855_4328,xiexiaokui#139.com 数据源: gis_ex10\ex01\parcel.shp, ...

  9. 计算平面面积和斜面面积-ArcGIS案例学习笔记

    计算平面面积和斜面面积-ArcGIS案例学习笔记 联系方式:谢老师,135_4855_4328,xiexiaokui#139.com 数据:实验数据\Chp8\Ex5\demTif.tif 平面面积= ...

  10. ArcGIS案例学习笔记2_2_等高线生成DEM和三维景观动画

    ArcGIS案例学习笔记2_2_等高线生成DEM和三维景观动画 计划时间:第二天下午 教程:Pdf/405 数据:ch9/ex3 方法: 1. 创建DEM SA工具箱/插值分析/地形转栅格 2. 生成 ...

随机推荐

  1. OpenHarmony Meetup 2023 广州站圆满举办,城市巡回全面启航

      "OpenHarmony正当时--技术开源"OpenHarmony Meetup 2023城市巡回活动,旨在通过meetup线下交流形式,解读OpenHarmony作为下一代智 ...

  2. OpenHarmony社区运营报告(2023年6月)

      本月快讯 • 6月12日,以"OpenHarmony共建开放,共享未来"为主题的2023开放原子全球开源峰会OpenAtom OpenHarmony(以下简称"Ope ...

  3. openGauss2.1.0新特性-账本数据库实验

    openGauss2.1.0 新特性-账本数据库实验 账本数据库融合了区块链思想,将用户操作记录至两种历史表中:用户历史表和全局区块表.当用户创建防篡改用户表时,系统将自动为该表添加一个 hash 列 ...

  4. electron 关于jquery不可以用

    前言 electron 实际是在google 内核上开发,实际上和我们在浏览器还是有些区别的. jquery 在electron 上引用是会出错的. 正文 解决方案 如果不做任何操作,在Electro ...

  5. 重新整理数据结构与算法(c#)——算法套路普利姆算法[二十九]

    前言 看一个题目: 这个问题就是求最小生成树,是图转换为树的一种方式. 最小生成树概念: 最小生成树简称MST. 1.n个顶点,一定有n-1条边 2.包含全部顶点. 3.图转换为最小生成树,权重之和最 ...

  6. 前端使用 Konva 实现可视化设计器(5)

    关于第三章提到的 selectingNodesArea,在后续的实现中已经精简掉了. 而 transformer 的 dragBoundFunc 中的逻辑,也直接移动 transformer 的 dr ...

  7. 2024-04-17:用go语言,欢迎各位勇者莅临力扣城,本次的挑战游戏名为「力扣泡泡龙」。 游戏的起点是一颗形状如二叉树的泡泡树,其中每个节点的值代表该泡泡的分值。勇者们有一次机会可以击破一个节点泡

    2024-04-17:用go语言,欢迎各位勇者莅临力扣城,本次的挑战游戏名为「力扣泡泡龙」. 游戏的起点是一颗形状如二叉树的泡泡树,其中每个节点的值代表该泡泡的分值.勇者们有一次机会可以击破一个节点泡 ...

  8. LRU缓存及其实现

    缓存是我们日常开发中来提高性能最直接的方式,经常会听到有人说:性能不行?是因为你没加缓存!常见的缓存有外部缓存服务以及程序内部缓存,外部缓存服务包括:Redis.Memcached等,内部缓存就是我们 ...

  9. 【笔记】go语言--接口

    [笔记]go语言--接口 接口的概念 强类型语言:熟悉接口的概念 弱类型语言:没(少)有接口的概念 接口的详解︰使用Google Guice实现依赖注入 curl 是获取http请求的命令工具 cur ...

  10. 写给大家看的“不负责任” K8s 入门文档

    前言 2019 年下半年,我做了一次转岗,开始接触到 Kubernetes,虽然对 K8s 的认识还非常的不全面,但是非常想分享一下自己的一些收获,希望通过本文能够帮助大家对 K8s 有一个入门的了解 ...