小编Fre*_*ton的帖子

VB6 - ByRef参数类型不匹配错误 - 它在哪里?

在我使用VB6的10多年里,我偶尔得到一个"ByRef参数类型不匹配"错误,我根本找不到不匹配.经过一段时间的挣扎之后,我总是以这种或那种方式强迫这种类型,但这次我想我会问.我包含了我认为可能与此有关的所有代码; 但是你现在可以跳过它并在我演示问题后引用它:

Public Type PBufferType
  Location(9) As Integer ' code location
  ValueHi(9) As Integer  ' Vhi code
  ValueLo(9) As Integer  ' Vlo code
  Locked(9) As Integer   ' State of pair
  Gamma(9) As Single     ' Gamma between this segment and next
End Type

Public GammaBuffer(1) As PBufferType ' The main data type

Public SelectedBank as Integer

Function MeasureLuxAtCode(code As Integer) As Single
  Call TestPatternForm.DrawTestWindow(3, code) 
  MeasureLuxAtCode = MeasureLux(1)
End Function

问题发生在下面."LuxMinTarget = MeasureLuxAtCode(FirstLevel)"行生成"ByRef参数类型不匹配"错误,指示FirstLevel不是整数.

Sub DetermineIdealLuxCurve()
  Dim FirstLevel, FirstDACtoMeasure As Integer
  FirstDACtoMeasure …

vb6

15
推荐指数
1
解决办法
3万
查看次数

如何在Swift for iOS中以像素级加载和编辑位图文件?

我想在Swift中操作像素级别的图像.针对目标c回答了这个问题:如何访问和操作JPEG图像像素?,但我想看看Swift的等效来源.

bitmap image-processing pixels swift

10
推荐指数
1
解决办法
1万
查看次数

如何在VB6中重新启用默认错误处理

我在一些地方有一些带有各种"On Error Goto"错误处理程序的代码来处理一些破坏的第三方硬件.我在一个没有错误陷阱的例程中得到一个溢出错误(从Err变量中读取),但是由一个例程调用.我一直认为错误陷阱只在它们被声明的例程中有效,但看起来子例程中的错误可能导致它转到调用函数的错误陷阱.

所以我关闭了调用函数的错误陷阱,发现我的溢出,一切都很好.但在我这样做之前,我花了一些时间试图找到一种编程方式让VB恢复到该例程中的默认错误处理(所以我不必修改外部代码来调试),但我不能.我能找到的唯一错误命令:

  On Error GoTo [label]
  On Error Resume Next
  On Error Goto 0
  On Error GoTo -1

所有打开手动错误处理 - 是否有办法将其关闭(返回到VB6默认值)?

vb6 error-handling

8
推荐指数
1
解决办法
1万
查看次数

什么版本的控制系统最适合*防止*并发编辑?

多年来,我们一直在使用CVS(使用TortoiseCVS接口)进行源代码控制和广泛的文档控制(包括Word,Excel,Framemaker,测试数据,模拟结果等二进制文件).与典型的版本控制系统不同,99%的时间我们想要防止并发编辑 - 当用户开始编辑文件时,文件的预编辑版本变得只读给其他人.

许多将使用它的人不是程序员,甚至不是计算机专家,所以我们也在寻找一个系统,让人们只需将文档添加到存储库,检出并编辑文档(除非其他人正在编辑它),并以最小的麻烦重新检查它.

我们已经用CVS + TortoiseCVS很好地工作了,但是我们现在正在考虑Subversion和Mercurial(如果他们更合适的话,可以向其他人开放)以获得更好的版本跟踪,所以我想知道哪一个支持锁定文件最透明.例如,我们想为默认启用独占锁定,并且我们要尽可能它很难有人不小心启动编辑别人已经签出的文件.例如,当某人签出文件进行编辑时,即使他们最近没有更新过他们的沙箱,也会先检查主数据库.也许它甚至不会让用户签出文件,如果它不在网络上并且无法与母舰签到.

svn cvs version-control mercurial

6
推荐指数
2
解决办法
1716
查看次数

现代,unicode友好的".ini文件",用于在VB6中存储配置数据

我想将数据结构的内容,几个数组和十几个变量存储在一个文件中,该文件可以由我的软件保存和重新加载,也可以由用户重新加载在文本编辑器中编辑.对于文本编辑,我需要清楚地标记数据,就像在一个好的ole .ini文件中一样:

AbsMaxVoltage = 17.5

有一个GUI,可以说用户应该只从GUI加载,保存和修改,但客户希望能够以文本的形式读取和修改数据.

编写代码来保存并重新加载它很容易(假设所有标签都在同一个地方且只有数据发生了变化).随着更多的工作(或使用一些已经在那里的INI R/W代码,我可以关注标签,所以如果一行被删除或移动变量仍然填充正确,但这两种方法看起来都很旧 - 所以我对今天编程中最聪明的人会如何接近这一点很感兴趣(使用十年前的VB6,我必须承认我仍然喜欢).

免责声明:我是电气工程师,不是程序员.这不是我的日常工作.好吧也许这是我日常工作的几个百分点.

干杯!

vb6

5
推荐指数
3
解决办法
2703
查看次数

在VB6中使用按钮标题作为变量有什么不好?

我在上一个问题(如何在用户取消时优雅地退出嵌套子程序的中间?)中使用命令按钮的标题作为状态变量收到了一些合理的批评反馈.我这样做是因为它很有效,一次只用很少的代码服务两三个目的,但我明白它是如何引起问题的,特别是我最初提出它时略显草率的方式.

我觉得这应该得到自己的讨论,所以这里有相同的想法清理了一点并修改为"正确"(这基本上意味着在一个地方定义字符串,所以你的代码不会开始失败因为你只是改变了命令按钮的文本).我知道我的变量和控件命名约定很差(OK,不存在),所以请提前道歉.但是我想继续关注标题作为状态变量的讨论.

所以我们走了:

' Global variables for this form
Dim DoTheThingCaption(1) As String
Dim UserCancel, FunctionCompleted As Boolean

Private Sub Form_Initialize()
  ' Define the possible captions (is there a #define equivalent for strings?)
  DoTheThingCaption(0) = "Click to Start Doing the Thing"
  DoTheThingCaption(1) = "Click to Stop Doing the Thing"

  ' Set the caption state when form initializes
  DoTheThing.Caption = DoTheThingCaption(0)
End Sub

Private Sub DoTheThing_Click() ' Command Button

If DoTheThing.Caption = DoTheThingCaption(0) Then
  UserCancel = False …
Run Code Online (Sandbox Code Playgroud)

vb6

5
推荐指数
4
解决办法
1074
查看次数

VB6 ssTab奇怪

我在VB6程序中使用ssTab控件(这可能是我的整个问题),我正在将数据绘制到位于选项卡0上的Picturebox中.当我重绘图形时(例如,在窗口调整大小之后),第一个我做的是清除方框:

Picture2.Line (0, 0)-(Picture2.Width, Picture2.Height), RGB(255, 255, 255), BF
Run Code Online (Sandbox Code Playgroud)

当Tab 0可见时,该工作正常,但如果在显示不同的选项卡时调用此代码,则整个可见选项卡(以及选项卡0)的背景将变为白色.不仅仅是Picture2的区域,而是两个标签的整个可见区域.除0以外的选项卡和当前选定的选项卡不受影响.

我第一次粗略地解决这个问题的方法是在上面的Line命令之前将标签更改回标签0:

SSTab1.Tab = 0 ' Select tab containing PictureBox2
DoEvents
Run Code Online (Sandbox Code Playgroud)

但是得到了相同的结果 - 原始标签和0标签现在都是白色的(尽管它确实将可见标签更改回标签0).

我注意到,当发生wallpainting时,Picture2.Width的值比它应该的大.如果Tab 0可见,当我调整窗口大小时,Picture2.Width在7180和21225 Twips之间变化.当我选择Tab 1并调整大小时,Picture2.Width大约为82180(高度保持在应有的位置).

我知道SStab有点儿马车,但有没有人知道任何工作方式?我可以将修复(在重绘后重新绘制两个选项卡上的灰色背景)整合在一起,但我想了解为什么Picture2.Width失去理智......

vb6

1
推荐指数
1
解决办法
3086
查看次数