小编Niy*_*wan的帖子

在delphi画布上模拟高亮笔

我有一个制作数字白板的项目.我用普通笔完成了,我必须模拟高亮笔的工作.

if drawingNow then
  Image1.Canvas.LineTo(x, y);
Run Code Online (Sandbox Code Playgroud)

delphi中没有透明度设置.我AlphaBlend在GDI中找到了函数http://msdn.microsoft.com/en-us/library/dd183351.aspx

但我不知道如何使用它来模拟高亮笔.那么,如何利用这个功能来模拟高亮笔呢?

delphi gdi

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

使用模糊参数类型重载Delphi方法会导致意外执行

我有两个Equal方法来承担这些重载:

TVariantExpression = reference to function(): Variant;

function Equal(const value: Variant): TRuleBuilder; overload;
function Equal(expr: TVariantExpression): TRuleBuilder; overload;
Run Code Online (Sandbox Code Playgroud)

假设我有另一个功能:

function TForm1.GetMagicNumber: Variant;
begin
  Result := 10;
end;
Run Code Online (Sandbox Code Playgroud)

我调用这样的函数:

Equal(Form1.GetMagicNumber);
Run Code Online (Sandbox Code Playgroud)

检查后,我得到第二次重载调用的结果.为什么?因为它们都可以被调用.

delphi

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

为什么设置了线程的终止属性?

我有多线程应用程序.

procedure TGridUpdater.Execute;
begin
  inherited;
  CodeSite.Send('Thread executed');
  sp := ConnectionFactory.GetConnection.LoadStoredProc('rab_itemData');
  sp.CreateParam('Tahun', ftInteger, sppdInput).Value := _form.tahun;
  sp.Open;
  Synchronize(DoProgress1);
  sp.DataSet.First;
  I := 0;
  CodeSite.Send('Terminated value is ' + BoolToStr(Terminated)); //The terminated property is 'True' here. Why?

  while (not Terminated) and (not sp.DataSet.Eof) do
  begin
    CodeSite.Send('Entering loop');
    Synchronize(DoProgress);
    I := I + 1;
    sp.DataSet.Next;
  end;
  Synchronize(DoProgress2);

end;
Run Code Online (Sandbox Code Playgroud)

运行线程的方法

procedure TFRABData.RefreshDataset;
var
  GridUpdater: TGridUpdater;
begin
  GridUpdater := TGridUpdater.Create(True);
  GridUpdater.OwnerForm := Self;
  GridUpdater.Start;
  CodeSite.Send('RefreshDataset executed');
  GridUpdater.Free;
end;
Run Code Online (Sandbox Code Playgroud)

delphi multithreading

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

使用JsonUtility.FromJson在Unity中反序列化JSON

这是我的示例JSON:

{"data":[{"id":141,"layoutLabel":"Sameer","hasCustomProb":1},
{"id":214,"layoutLabel":"abc","hasCustomProb":0}],"status":200}
Run Code Online (Sandbox Code Playgroud)

这是我上的课

[System.Serializable]
public class PlayerInfo
{
    public string [] data;
    public int status;
}
Run Code Online (Sandbox Code Playgroud)

这就是我从JSON获取“状态”的方法:

PlayerInfo P = JsonUtility.FromJson<PlayerInfo>(json);
Debug.Log(P.status) //returns 200
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗,我可以获取和保存数据数组,或者可以获取data.id和data.hasCustomProb吗?我是C#和团结的新手。

c# json unity-game-engine

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

C# DDD - 域对象创建

我已经开始使用 C# 学习和创建带有事件源的 CQRS。我检查了很多示例,在每个示例中,在构造域对象时,所有必需的域字段要么使用构造函数传递,要么通过静态方法传递以创建域对象。

我应该将完整的 DTO 传递给域对象来构造它,而不是传递我从顶层获得的一长串单个字段吗?

public class Student : AggregateRoot
{
    public int ID { get; set; }
    public string  Name { get; set; }

    // Without ID and Name a domain object should not be created

    //Can I write like this?         
    public Student(StudentDto studentDto)
    {
        ID = studentDto.ID;
        Name = studentDto.Name;
    }

    //Can I write like this?
    public Student(int id,string name)
    {
        ID = id;
        Name = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# oop domain-driven-design cqrs

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

为什么`({}+{}+{}*2).length` 在 Javascript 中返回 33?

在 Javascript 中,({}+{}).length返回 30 而({}+{}+{}*2).length返回 33。我希望对这种行为进行可访问的教学解释。

const a = {}+{};
const b = {}+{}+{}*2;

console.log('({}+{}) =', a, a.length);
console.log('({}+{}+{}*2) =', b, b.length);
Run Code Online (Sandbox Code Playgroud)

javascript

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