问题列表 - 第32880页

传递var参数时获取“ E2197常量对象不能作为var参数传递”

该代码可以正常工作:

procedure TForm2.Timer1Timer(Sender: TObject);
var
  Text: string;
begin  SetLength (Text,555);
  GetWindowText (getforegroundwindow, PChar (Text),555);
  Form2.gtListBox1.Items.Add (
    IntToStr (getforegroundwindow) + ': ' + Text);
end;
Run Code Online (Sandbox Code Playgroud)

但是当我放

var
  Text: string;
Run Code Online (Sandbox Code Playgroud)

从Timer1Timer事件处理程序到单元实现部分或单元var部分中的“文本:字符串”,我得到错误:E2197
根据文档,不能将常量对象作为var参数传递:

当您尝试将常量作为函数或过程的var或out参数发送时,会出现此错误消息。

但是我没有将文本声明为常量,那么为什么会出现此错误?
编辑: @梅森·惠勒:我不明白,为什么这工作:

implementation
{$R *.dfm}
 var 
 char :integer;//first of all why does delphi let me declare variable that is also a type name
procedure TForm2.Button1Click(Sender: TObject);
begin
char:=11; 
showmessage(IntToStr(char));
end;
Run Code Online (Sandbox Code Playgroud)

我的第一个代码无法正常工作,因为我将文本声明为字符串,您会说:“编译器可能认为它是对类型的引用,而不是对变量的引用”,为什么编译器不认为它是对类型的引用而不是对变量的引用在这种情况下的变量?我很困惑
Edit2:我现在明白了什么地方出了问题,但仍然有1个困惑,我没有使用with语句,然后为什么delphi会像对待我一样使用:

 with
      form1 do
       text := 'blahblahblah';
Run Code Online (Sandbox Code Playgroud)

这在delphi部分上是错误的,我的意思是delphi不应该让我们这样做text := 'blah'form1.text := …

delphi error-handling

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

线程池中的线程

我一直在阅读线程池.许多站点都说线程池上的默认最大线程数为25(每个处理器).但是我没有修改最大线程,当我这样做时:

Threadpool.GetAvailableThreads(输出WorkThreads,输出compPortThreads);

我得到500,1000.我正在运行双核PC,因此不会超过50.

我的泳池里真的有500,1000吗?

谢谢约翰

c# threadpool

3
推荐指数
2
解决办法
1356
查看次数

JAVA:NamedQuery String问题

大家好,我在做NamedQuery时遇到了一些精确匹配的问题.

我目前正在使用这样的东西:

@NamedQuery(name = MyClass.GET_ENTRY_BY_NAME, query = "select e from Entry e where e.name =:"+ Entry.NAME )

...

Query query = em.createNamedQuery(MyClass.GET_ENTRY_BY_NAME);
        query.setParameter(Entry.NAME, myEntry.getName());
Run Code Online (Sandbox Code Playgroud)

它适用于大多数情况,但是我注意到,如果用户在末尾传递带有空格的文件名,则namedQuery会忽略该字符.例如:

Query query = em.createNamedQuery(MyClass.GET_ENTRY_BY_NAME);
        query.setParameter(Entry.NAME, myEntry.getName()+ " ");
Run Code Online (Sandbox Code Playgroud)

将返回与之前的查询相同的结果.绕过我的"有效条目"验证.换句话说,我希望查询根本不返回任何条目,稍后再处理错误.

我能想到的一个解决方法是在namedQuery中放置我的参数的单引号,如下所示:

@NamedQuery(name = MyClass.GET_ENTRY_BY_NAME, query = "select e from entry e where e.name =':"+ Entry.NAME "'")
Run Code Online (Sandbox Code Playgroud)

但是,如果String中包含单引号,它将丢弃我的代码...

有什么想法吗?

java jpa named-query jpql

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

一对一关系还是一对多关系?

也许我今天早上需要更多咖啡,但这里有......

我有一个非常简单的库存系统.现在我有两个表:项目和库存.

项目
编号
标题
YearReleased

库存
标识
ItemId(项目的外键)
数量
QuantityOnHand

每个项目都有一个库存,每个库存属于一个项目.两者之间的关系是一对一的.但是,当我计算出这个时,基于我的设置到目前为止的关系是一对多的,因为我对Inventory有自动递增的ID.

现在,我可以通过消除Inventory表中的自动递增id来实现这一对一,但这让我觉得很脏.我总是使用内部id作为主键.

我看到几个选项:

1.)删除库存中的自动递增ID字段并以肮脏的感觉生活.
2.)保持表格原样.
3.)将项目和库存合并到一个表中:ItemsInventory.
4.)还有别的吗?

mysql sql database sql-server database-design

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

在emacs中设置auto-mode-alist

我注意到当前的自动模式alist条目都以单引号结束,例如

 ("\\.java\\'" . java-mode)
Run Code Online (Sandbox Code Playgroud)

单引号的目的是什么?我本以期待看到

 ("\\.java$" . java-mode)
Run Code Online (Sandbox Code Playgroud)

我问的原因是我试图获取名称与regexp匹配的文件

^twiki\.corp.* 
Run Code Online (Sandbox Code Playgroud)

以组织模式打开.我试过以下没有成功:

(add-to-list 'auto-mode-alist '("^twiki\\.corp" . org-mode))
(add-to-list 'auto-mode-alist '("\\'twiki\\.corp" . org-mode))
Run Code Online (Sandbox Code Playgroud)

以下作品:

(add-to-list 'auto-mode-alist '("twiki\\.corp" . org-mode))
Run Code Online (Sandbox Code Playgroud)

但是不是我想要的,因为嵌入了twiki.corp的文件名将在org-mode中打开.

emacs elisp

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

恢复数据库时mssql'5(访问被拒绝.)'错误

我想通过SQL Server管理工作室从文件(任务 - >恢复 - >数据库;从设备中选择并选择文件后)恢复数据库.

之后,我收到此错误:

在'E:\ Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\XXXXXX.mdf'上尝试'RestoreContainer :: ValidateTargetForCreation'时,操作系统返回错误'5(访问被拒绝.)'.消息3156,级别16,状态8,服务器XXXX,第2行

我该如何解决这个问题?这是安全错误吗?

sql-server ssms

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

使用数据模板将视图与视图模型关联时如何以动画方式从一个视图到另一个视图的转换

我将发布我目前拥有的源代码,然后解释我的问题。

这是我希望发生转换的窗口

<Window x:Class="MyApp.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MyApp" Height="600" Width="800">
<StackPanel>
    <Button Content="View1" Command="{Binding View1Command}"/>
    <Button COntent="View2" Command="{Binding View2Command}"/>
    <ContentControl Content="{Binding MyContent}"/>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

这是关联的视图模型

public class MainViewModel
{
    public RelayCommand View1Command{ get; private set;}
    public RelayCommand View2Command{ get; private set;}

    //INotifyPropertyChanged is implemented of course
    public ViewModelBase MyContent { get; set;}

    public MainViewModel()
    {
        View1Command = new RelayCommand(() => { MyContent = new ViewModel1();});
        View2Command = new RelayCommand(() => { MyContent = new ViewModel2();});
    }
}
Run Code Online (Sandbox Code Playgroud)

在 app.xaml 中,我使用数据模板将 ViewModel1 与 …

wpf animation transition mvvm mvvm-light

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

jQuery find似乎不起作用

我有一个存储在"selectedContents"中的DocumentFragment,我试图在jQuery的帮助下找到它中的"span"元素.它有两个子节点,第一个是文本节点,第二个是跨度.

当我尝试时$(selectedContents.childNodes).find('span'),它返回一个空集!

但是,当我打印时,"$(selectedContents.childNodes)[1].localName"它说"跨度"!

我的发现有什么不对吗?请帮忙.

谢谢
Srikanth

jquery find

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

vimrc使评论斜体

如何更改~/.vimrc以使我的代码中的注释为斜体?

在我的~/.vimrc档案中,我有:

highlight Comment ctermfg=blue
Run Code Online (Sandbox Code Playgroud)

这使评论变成蓝色.我需要做些什么才能使它们变成斜体?

vim comments highlight italics

31
推荐指数
4
解决办法
2万
查看次数

什么是"谷物"包装文件中提到的"隔离原始"?

Haskell存储库中有大量独特的单词集合,(非常轻微的夸张).无论如何,今天的术语是孤立的原始.什么是隔离原语?它与非隔离原语相比如何?不幸的是,我没有足够的背景来了解Haskell的大部分说法,谷歌对此并没有多大帮助.

我熟悉的命名法将原定义为没有超类型的类型,我从未在任何地方看到过isolate作为前缀.

primitive haskell definition

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