小编Roh*_*pta的帖子

如何在RAD PHP XE2中升级PHP

我使用RADPHP XE2(来自Borland/Embarcadero)作为我的IDE.只是因为我多年来一直使用他们的IDE.我并不是在使用任何VCL组件,因为这是一个愚蠢的网页设计概念.

我想升级它正在使用的PHP.我在IDE之外安装了最新的PHP并运行.但IDE仍然使用5.2.是否有可能哄它使用新的?任何人的想法?

php ide radphp

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

多色多线TMemo

是否可以在Delphi XE2中配置Multicolor Multiline TMemo?.
当我写代码时:

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  FirstVariable, SecondVariable, ThirdVariable :BOOL;
begin
  if FirstVariable then
    begin
      Memo1.Font.Color := clGreen;
      Memo1.Lines.Add('FirstVariable = True');
    end
  else if SecondVariable then
    begin
      Memo1.Font.Color := clBlue;
      Memo1.Lines.Add('SecondVariable = True');
    end
  else
    begin
      Memo1.Font.Color := clRed;
      Memo1.Lines.Add('ThirdVariable = True');
    end;
end;
Run Code Online (Sandbox Code Playgroud)

所有先前存在的行的字体颜色将根据变量的条件进行更改.

delphi

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

通过LAN调试ASP.NET云项目

我一直在尝试通过LAN调试这个ASP.NET云项目,因为我们需要它来进行工作测试.我已经对这个问题进行了大量的研究,但我根本无法让它按预期工作.我想我已经把问题缩小到了这个问题,该项目是一个云服务项目.

如果我创建一个新的ASP.NET MVC项目,没有云服务,它在编辑项目绑定时工作得很好,当然还有关闭防火墙.如果我然后执行相同的过程,但是使用云服务项目,使用asp.net mvc作为Web角色,当尝试通过LAN访问它时,我得到"连接被拒绝".

有没有人知道发生了什么和/或如何解决它?

绑定:

<bindings>
    <binding protocol="http" bindingInformation="*:5807:localhost" />
    <binding protocol="http" bindingInformation="*:5807:*" />
</bindings>
Run Code Online (Sandbox Code Playgroud)

.net asp.net iis iis-express azure-cloud-services

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

Visual Studio相当于Delphi书签

我使用Delphi很多年了,虽然我现在已经转移到Visual Studio,但我仍然记得编号书签(CTRL+ K+ 1来设置书签1,CTRL+ Q+ 1来转到书签1).

是否有Visual Studio等价物?在Delphi之后,我发现VS中的蠢书是一件苦差事.我想书签然后返回到文件中的特定位置.

delphi visual-studio brief-bookmarks

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

TClientDataSet并使用StatusFilter处理记录

我在TClientDataSet没有提供者概念的情况下使用a 作为本地数据集.在使用它之后,调用一个方法,该方法应该生成相应的SQL语句,使用它StatusFilter来解析更改(基本上生成SQL).

在阅读文档(设置StatusFilter to [dsInsert],处理所有插入SQL,设置StatusFilter to [dsModified]进程所有更新,删除相同)后,这看起来很容易,但经过几次测试后,现在看起来远非琐碎,例如:

如果我添加一条记录,则进行编辑:设置StatusFilter to [dsInserted]显示它,但使用原始数据.

如果我添加一条记录,然后编辑,然后将其删除:该记录StatusFilter set to [dsInserted] and [dsModified]也随之出现.

和其他类似的情况..

1)我知道如果我首先处理所有插入,那么所有更新然后所有删除数据库都将以正确的状态更新,但它看起来很不正确这种方法(生成无用的sql语句).

2)我试图访问PRecInfo(ClientDataSet.ActiveBuffer + ClientDataSet.RecordSize).Attribute信息(dsRecNew,dsRecOrg等),但仍无法解决逻辑问题.

3)我可以对逻辑进行编程以解决它,例如在处理和插入,设置StatusFilter to [dsDeleted]和定位之前,如果记录要查看其后是否删除了...与编辑相同,在插入之前,检查记录是否是更新之后所以在更新版本中插入sql等等..但它应该更容易..

¿有人试图以优雅和直接的方式解决这个问题吗?我错过了什么?谢谢

delphi tclientdataset delphi-2010

7
推荐指数
0
解决办法
788
查看次数

使用带有docolumnTitles的TValueListEditor的Delphi XE6网格索引超出范围错误DisplayOption设置为False且仅限一行

创建一个表单并放置一个TValueListEditor.将doColumnTitlesdisplay选项设置为False.尝试删除第一行.你会收到一个'Grid Index out of Bounds'错误.这是一头丑陋的猪,所以我在这里问一下,除了块之外是否只是尝试处理它的唯一方法?

背景:

行继承自TCustomGridvia TCustomDrawGrid(第493行VCL.grids.pas)属性getter是私有变量FCurrent.Y,其类型是来自两个值记录的值/字段.我无法找到FCurrent默认值设置的位置(因此整数默认为0).如果TValueListEditor只有一行和/或没有选择行,则不清楚存在什么值.

在任何情况下,我得到一个网格索引超出范围错误 - 可能是从 - 提出TCustomGrid- 但只有当只有一行和/或我尝试在TValueListEditorwith 的第一行删除doColumnTitles := false.删除其他行很好.无论这是否是一个错误,它似乎有些愚蠢和不一致.

TValueList编辑器构造函数是否有继承的原因RowCount := 2;

根据以下内容引发错误TValueListEditor.DeleteRow:

  try
if (Strings.Count = 0) or
   (ARow < 1) or (ARow > RowCount - FixedRows) then
  {$IF DEFINED(CLR)}
  raise EInvalidGridOperation.CreateRes(SIndexOutOfRange);
  {$ELSE}
  raise EInvalidGridOperation.CreateRes(@SIndexOutOfRange);
  {$ENDIF}

Strings.Delete(ARow - FixedRows);
  finally
    FDeleting := False;
  end;
Run Code Online (Sandbox Code Playgroud)

(参见VCL.Valedit.pas,804) …

delphi delphi-xe6

7
推荐指数
0
解决办法
1785
查看次数

如何用Java计算文件的哈希值?

我编写了以下程序来计算Java中字符串的SHA-256哈希值:

public class ToHash {

    public static void main(String[] args)  {

        byte[] data = "test".getBytes("UTF8");
        MessageDigest digest = MessageDigest.getInstance("SHA-256");
        byte[] hash = digest.digest(data);
        System.out.println(new BASE64Encoder().encode(hash));

    }
}
Run Code Online (Sandbox Code Playgroud)

嗯,这很好.在下一步中,我想以接受文件并计算其哈希值的方式开发它.我的解决方案是在字符串数组中读取整个文件,并在该字符串数组上调用该digest()方法.但是有两个问题:

  1. 我不知道如何将整个文件读入数组?目前我认为我必须逐行阅读并附加一个带有新行的数组!

  2. 以上方法需要大量文件的大量内存!


这是我当前读取文件的程序:

public class ToHash {

    public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException, FileNotFoundException, IOException {
        // TODO code application logic here

        // The name of the file to open.
        String fileName = "C:\\Users\\ghasemi\\Desktop\\1.png";
        BufferedReader br = null;

        try {

            String sCurrentLine;
            br = new BufferedReader(new FileReader(fileName));
            while …
Run Code Online (Sandbox Code Playgroud)

java arrays hash file-io

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

FMX:Android 上的 TCanvas.DrawLine 问题

粗细 > 1 的线条在 Windows 和 Android 上的绘制方式似乎有所不同。我使用的是德尔福11.0。创建一个空白的多平台应用程序并在 FormPaint 事件中添加以下内容。

procedure TMainForm.FormPaint(Sender: TObject; Canvas: TCanvas;
  const ARect: TRectF);
begin
  Canvas.Stroke.Thickness := 20;
  Canvas.Stroke.Cap := TStrokeCap.Round;
  Canvas.Stroke.Color := TAlphaColorRec.Red;
  Canvas.Stroke.Kind := TBrushKind.Solid;
  Canvas.DrawLine(PointF(20,20), PointF(70,70), 1);
  Canvas.DrawLine(PointF(70,70), PointF(130,70), 1);
end;
Run Code Online (Sandbox Code Playgroud)

这导致以下结果。在 TImage 上绘图时也会发生同样的情况。

在此输入图像描述

在 Windows 中,线条的端点似乎位于线帽的中心,而在 Android 上,它们位于线帽的末端。我正在运行 Android 8.0.0 的华为 P10 上进行测试。我目前无法在更新的 Android 版本上进行测试。谷歌搜索似乎没有给出关于这个问题的任何结果。如果有人有关于此问题的任何信息以及可以采取什么措施,我将不胜感激?如果有人可以在更新的 Android 版本上对此进行测试,我们也将不胜感激。我当然可以为 Android 添加特殊代码,将线条端点延长一半的线条粗细,但如果可能的话,我想避免这种情况。

Android 文档似乎暗示它不应该有这样的行为。 https://developer.android.com/reference/android/graphics/Paint.Cap

Windows 和 Android 之间的主要区别在于它们使用不同的 TCanvas 实现。Windows 使用 TCanvasD2D,而 Android 使用 TCanvasGpu。查看Delphi代码。我想知道 FMX.StrokeBuilder.pas 中的以下代码是否导致了该问题。此代码从 FMX.Canvas.GPU.pas 运行,即使使用 TStrokeDash.Solid 也是如此。我不明白为什么它会这样抵消末端。

procedure TStrokeBuilder.InsertDash(SrcPos, DestPos: …
Run Code Online (Sandbox Code Playgroud)

delphi firemonkey delphi-11-alexandria

7
推荐指数
0
解决办法
192
查看次数

没有重复条目时mysql重复输入错误(通过php批量加载)

我正在使用mysql(5.0.32-Debian_7etch6-log),我有一个夜间运行的批量加载php(5.2.6)脚本(通过PDO 使用Zend_DB(1.5.1)),它执行以下操作:

  1. 截断一组4'导入'表
  2. 批量插入这些4'导入'表中的数据(重新使用以前在表中的ID,但我截断了整个表,所以这不应该是一个问题,对吧?)
  3. 如果一切顺利,将'live'表重命名为'temp',将'import'表重命名为'live',然后将'temp'(旧'live')表重命名为'import'

这个工作好几周了.现在我偶尔得到这个,在整个批量加载过程中的某个地方:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '911' for key 1

请注意,这不是截断前已经在表中的第一个id.当我再次手动启动脚本时,它就像一个魅力.

有任何想法吗?剩下的索引,可能与重命名有关吗?

另外,当我在表格中检查后面带有id 911的条目时,它甚至不在那里.

php mysql truncate rename mysql-error-1062

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

Vim:类似Eclipse的Ctrl-Backspace和Ctrl-Del

在Eclipse中,当你按下Ctrl+ 时,有一个很好的功能,即删除单词直到下一个大写字母Backspace.例如:

ThisIsSomeText

如果按Ctrl+ Backspace,则只删除"文本",而在VS中,所有"ThisIsSomeText"都将被删除.

无论如何在VIM中实现相同的功能吗?

如果是,是否有类似的方法Ctrl- Del也?那样,按Ctrl- Del在上一个例子的开头只会删除"This",而不是所有的"ThisIsSomeText".

vim

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