我需要一个具有自动完成功能的备忘录.最终,当用户按下类似于Delphi IDE自动完成的热键(Ctrl-space)时,我希望能够显示自定义自动完成列表.
我有TMS AdvMemo,但说实话,缺少对这个特定组件的帮助.似乎AdvMemo支持自定义自动完成,但我似乎无法找到如何显示列表.
所以,如果有人有任何建议在备忘录上实现自动完成,或者启发我使用AdvMemo,我将不胜感激
在VS2008中,如果我双击事件处理程序,VS将创建一个具有默认名称的默认事件处理程序,例如combobox1_SelectedIndexChanged.
比如说,我现在将combobox1重命名为cbStatus.它仍然具有相同的事件处理程序,所以我现在将其更改为cbStatus_SelectedIndexChanged.
有没有办法,除了旧的事件处理程序之外,VS可以将初始的combobox1_SelectedIndexChange更改为cbStatus_SelectedIndexChange而不是生成新的cbStatus事件处理程序?因为每次我必须将代码剪切并粘贴到新的事件处理程序,然后删除旧的.
另外,如果我已经定义了初始事件处理程序,然后不再需要处理程序,我不能简单地从代码中删除处理程序,因为表单设计者然后抱怨它无法找到原始事件处理程序.有没有办法让VS可以自动从表单设计器中删除事件处理程序的赋值?
我似乎整天都在剪切和粘贴,并从表单设计器代码中删除事件处理程序分配.
如果插入符号直接相邻或备忘录中的单词,我需要能够选择TMemo的整个单词.
考虑以下(其中|是插入符号)
Here is some text| =选择 text
Here is so|me text =选择 some
|Here is some text =选择 Here
Here is some text | =选择''
我一直在使用virtualstringtree一段时间了.我将它用于两个不同的东西,首先是作为选择的普通树,显示数据,其次是作为显示SQL语句输出的网格.
加载到树中的所有数据都来自数据库.对于树示例,我有一个parentId字段来区分层次结构,对于网格示例,我只使用带有每个树的自定义记录的SQL语句(这是唯一的).
我的问题与填充树的首选/最佳方式有关.我从VST文档中读到,您应该使用onInitNode事件和rootnodecount.但是我发现使用AddChild()方法非常相似,即使不鼓励它.
让我展示一些(简化的)示例:
Heirarchy
type PData = ^rData;
rData = packed record
ID : Integer;
ParentID : Integer;
Text : WideString;
end;
procedure Loadtree;
var Node : PVirtualNode;
Data : PData;
begin
Q1 := TQuery.Create(Self);
try
Q1.SQL.Add('SELECT * FROM Table');
Q1.Open;
Q1.Filter := 'ParentID = -1'; //to get the root nodes
Q1.Filtered := True;
while not Q1.Eof do
begin
Node := VST.AddChild(nil);
Data := VST.GetNodeData(Node);
Data.ID := Q1.Fields[fldID].AsInteger;
Data.ParentID := Q1.Fields[fldParentID].AsInteger;
Data.Text := Q1.Fields[fldText].AsString;
//now filter the query again …Run Code Online (Sandbox Code Playgroud) 这是这个问题的延伸
我正在尝试将文件从本地用户的临时文件夹复制到远程文件共享.我无法访问远程文件共享,因此我必须冒充用户.
现在,我可以从远程服务器成功读取文件并在本地复制它,但是我无法将本地文件写入共享,因为它给了我错误:
LOCAL文件的访问被拒绝
(因为我现在冒充另一个用户).
如果你需要一些代码,我可以发布它.
我正在录制视频流到磁盘.为此,我使用以下代码:
private async Task SaveToFile(IntPtr data, Int32 size)
{
if (_FileStream == null) return;
Byte[] buf = new Byte[size];
Marshal.Copy(data, buf, 0, size);
//dont await here - just continue
_FileStream.WriteAsync(buf, 0, size);
}
Run Code Online (Sandbox Code Playgroud)
到目前为止它似乎没有问题.我只想确认如果在上一次迭代完成之前调用此方法会发生什么.
你会注意到我没有等待WriteAsync()电话.我不确定这是否正确,但我使用的API声明在此方法中将操作保持在最低限度,以便不在API内部阻止回调.这似乎是要纠正的事情,只需将数据传递给流,然后立即返回.
有人可以确认如果最后一个WriteAsync()电话还没完成会发生什么,我WriteAsync()再打电话?或者我应该进行awaitWriteAsync()调用?
编辑:我还没有使用上述方法遇到异常,所以我想我的最后一个问题是在外部DLL回调中使用WriteAsync()时是否有任何影响?DLL是第三方Directshow组件.我无法验证它是如何在内部工作的,但它只是通过回调向我提供数据,我将其保存到文件流中.
我有一个连接到数据库的应用程序,可以在多用户模式下使用,从而多台计算机可以连接同一个数据库服务器来查看和修改数据.其中一个客户总是被指定为"主"客户.该主站还从RS232或UDP输入接收文本信息,并每秒将此数据记录到本地计算机上的文本文件中.
我的问题是其他客户端需要从主客户端访问此数据.我只是想知道最好和最有效的方法来解决这个问题.我正在考虑两种选择:
解决方案必须考虑以下因素:
一个.每秒都会写入日志文件.它必须避免任何潜在的文件锁定问题.
湾 复制例程应仅复制在比客户端计算机上已有的日期更新的文件.
C.尽可能高效
d.所有机器都在局域网上
即 仅需要每10分钟左右执行一次同步.
F.数据量仅为~50MB,但是一旦初始(第一次)同步完成,那么要传输的数据量将仅为~1MB.这将在未来增加
哪种方法更好?有哪些优点/缺点?我也看过我正在考虑使用的快速文件复制帖子.
我有一个SQL类连接到数据库并转发DataTable.我知道完成后必须处理SqlConnection.我知道这可以使用using块来完成,但是将Dispose()调用放在这个类的析构函数中也可以接受吗?
Herre是我的代码:
public class SQLEng
{
//Connection String Property
//Must be set to establish a connection to the database
public string ConnectionString{ get; set; }
SqlConnection _Conn;
//Overridden Constructor enforcing the Connection string to be set when created
public SQLEng(string connectionString)
{
ConnectionString = connectionString;
_Conn = new SqlConnection(connectionString);
}
//ensure the SqlConnection is disposed when destructing this object
public ~SQLEng()
{
_Conn.Dispose();
}
//various other methods to get datatables etc...
}
Run Code Online (Sandbox Code Playgroud)
基本上我希望有一个类变量SqlConnection,而不是在每个访问数据库的方法中实例化SqlConnection.这听起来有效吗?
我有一个包含以下列的表:
ID int, DISTANCE float, EVENT Varchar
Run Code Online (Sandbox Code Playgroud)
我想要实现的是选择所有数据,但按事件和距离字段进行分组(即删除相同距离的重复事件)。
我看到的问题是该Distance列是一个浮点数,因此GROUP BY可能不会按预期运行。大多数(我说的是大多数)数据存储到小数点后 3 位,这是我想要分组的标准。
示例数据:
ID、距离、事件
1, 0.001, A
2, 0.002, A
3, 0.002, A
4, 0.002, B
5, 0.003, C
6, 0.0035,C
Run Code Online (Sandbox Code Playgroud)
所以结果看起来像:
1, 0.001, A
2, 0.002, A
4, 0.002, B
5, 0.003, C
Run Code Online (Sandbox Code Playgroud) 我正在使用EF的异步方法从数据库中获取数据.大部分时间都很好.我最近遇到了一些ObjectContextDisposed异常,我很好奇为什么我的解决方案有效:
这是我的原始代码ObjectContextDisposed:
public Task<List<string>> GetEventParameterMru(EventParameter parameter, int count = 20)
{
using (var repo = new ConfigurationRepository())
{
return repo.GetEventParameterMRU(_CurrentWorkpack, parameter, count)
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的新代码,不抛出:
public async Task<List<string>> GetEventParameterMru(EventParameter parameter, int count = 20)
{
using (var repo = new ConfigurationRepository())
{
var result = await repo.GetEventParameterMRU(_CurrentWorkpack, parameter, count);
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释有什么不同,为什么它有效?
仅供参考,在我使用这种方法的所有用法中,我打电话 await GetEventParameterMru()
谢谢
c# ×5
delphi ×4
async-await ×2
asynchronous ×2
file-copying ×2
memo ×2
autocomplete ×1
destructor ×1
dispose ×1
events ×1
filestream ×1
group-by ×1
handlers ×1
ide ×1
mysql ×1
networking ×1
performance ×1
security ×1
selection ×1