Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 如何在不重新安装整个JVCL库的情况下修复JvYearGrid控件的小错误_Delphi_Delphi Xe5_Jedi - Fatal编程技术网

Delphi 如何在不重新安装整个JVCL库的情况下修复JvYearGrid控件的小错误

Delphi 如何在不重新安装整个JVCL库的情况下修复JvYearGrid控件的小错误,delphi,delphi-xe5,jedi,Delphi,Delphi Xe5,Jedi,我刚在绝地武士队的范甘迪网格中发现了一个bug。下面的公共设置函数未设置提供的字符串值。我知道如何修复该过程,但我的问题是如何在不重新安装整个JediVCL库的情况下进行更改。是否有任何可能的解决方法,比如访问功能正常的私有成员SetCellData(string)。我使用的是DelphiXe5(我知道一些私人曝光技术在10.2上不起作用) 我尝试的内容:我从IDE卸载了相关的软件包JvJansDesign,更改了代码,清理并重新安装了软件包。但是,它不起作用,也就是说,它引用的是来自其他地方的

我刚在绝地武士队的范甘迪网格中发现了一个bug。下面的公共设置函数未设置提供的字符串值。我知道如何修复该过程,但我的问题是如何在不重新安装整个JediVCL库的情况下进行更改。是否有任何可能的解决方法,比如访问功能正常的私有成员
SetCellData(string)
。我使用的是DelphiXe5(我知道一些私人曝光技术在10.2上不起作用)

我尝试的内容:我从IDE卸载了相关的软件包
JvJansDesign
,更改了代码,清理并重新安装了软件包。但是,它不起作用,也就是说,它引用的是来自其他地方的有缺陷的过程,而不是我正在修改的源文件(JEDI master\jvcl\run\JvYearGrid.pas)。我通过放置从未触发的showmessage()来确认这一点修改后的程序永远不会被输入,更不用说if-else检查了。

注意:该过程为年份网格中的选定单元格设置字符串值。此外,在内部,弹出菜单通过
FYearData[Col,Row]成功修改此值在私有成员中
SetCellData(string)
。我可以从菜单中修改,但确实需要以编程方式进行修改

function TJvYearGrid.GetSelDateText: string;
var
  DS: string;
begin
  if (Col < 1) or (Row < 1) then
    Exit;
  DS := FYearData[Col, Row].DisplayText;
  if DS = '' then
    Exit;
  Result := FYearData[Col, Row].InfoText;
end;

procedure TJvYearGrid.SetSelDateText(AText: string);
var
  DS, S: string;
begin

  if (Col < 1) or (Row < 1) then
    Exit;
  DS := FYearData[Col, Row].DisplayText;
  if DS = '' then
    Exit;
  FYearData[Col, Row].InfoText := s;
end;
函数TJvYearGrid.GetSelDateText:字符串;
变量
DS:字符串;
开始
如果(列<1)或(行<1),则
出口
DS:=FyerData[Col,Row].DisplayText;
如果DS='',那么
出口
结果:=FYearData[Col,Row].InfoText;
结束;
过程TJvYearGrid.SetSelDateText(AText:string);
变量
DS,S:字符串;
开始
如果(列<1)或(行<1),则
出口
DS:=FyerData[Col,Row].DisplayText;
如果DS='',那么
出口
FYearData[Col,Row].InfoText:=s;
结束;
重复我已经做过的事情:卸载了JvJans组件的包(JvJansDesign190.bpl),修改了JvYearGrid的唯一源文件(在run文件夹中)

关键是,
JvJansDesign190
包本身不足以修改控件,因为它依赖于另一个包
JvJans190
的构建。如果为您的Delphi产品版本(我的版本是V19)打开JVCL group项目,您可以看到这两个。首先必须重新构建依赖项(JvJans190),然后清理并在其上安装JvJansDesign190

这将刷新设计时组件,并且源文件和组件行为之间不会有差异