我想将虚拟键转换为 WideString。这就是我到目前为止...
function VKeytoWideString (Key : Word) : WideString;
var
WBuff : array [0..255] of WideChar;
KeyboardState : TKeyboardState;
UResult : Integer;
begin
GetKeyBoardState (KeyboardState);
UResult := ToUnicode(key, MapVirtualKey(key, 0), KeyboardState, WBuff, 0,0);
Result := WBuff;
case UResult of
0 : Result := '';
1 : SetLength (Result, 1);
2 :;
else
Result := '';
end;
end;
Run Code Online (Sandbox Code Playgroud)
它总是返回 0 但为什么呢?请帮忙。
我想浏览VirtualTreeView的所有根并删除它们.
我不想清除它.
我使用此代码获取访问冲突:
var
Node : PVirtualNode;
begin
if VirtualStringTree1.GetFirst = NIL then exit;
Node := NIL;
repeat
if Node = NIL then
Node := VirtualStringTree1.GetLast
else Node:=VirtualStringTree1.GetPrevious (Node);
if Node <> NIL then VirtualStringTree1.DeleteNode(Node);
until Node = VirtualStringTree1.GetFirst;
end;
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
我想将一个BackSpace控件字符发送到TMemo,就像用户实际按下BackSpace按钮一样.
我的备忘录是只读的,如果我点击一个按钮,它应该删除备忘录中的最后一个字符.我想这样做而不使用Memo.Text:= ...(所以没有重绘或初始更新等)这是可能的,如果是的话,怎么样?
谢谢您的帮助.
编辑:我试图添加#8但没有运气...
我有一个保存在字符串中的jpeg文件.我想在Delphi7中将字符串加载/分配给TImage.我使用KOL代码如下:
var
ImageStream : PStream;
ImageString : String;
MyJpeg : TJpeg;
begin
ImageStream:= NewMemoryStream; // Create New Stream.
ImageStream.Write(ImageString [1], Length(ImageString )); // Fill the stream.
ImageStream.Position := 0; // Set Position to 0.
// ImageStream.SaveToFile('C:\test.jpg', 0, ImageStream.Size); // Debug --> WORKS!
MyJpeg := TJpegImage.Create; // Create a Jpeg Image.
MyJpeg.LoadFromStream(@ImageStream); // ???
Image1.picture.Assign(MyJpeg); // No picture is shown
end;
Run Code Online (Sandbox Code Playgroud)
它应该工作,因为PStream只是一个指向TStream的指针...但Timage中没有显示图片...感谢您的帮助:)
我想从2个CONSOLE应用程序发送/接收一个字符串(2个不同的PID,没有表格!).我看到我需要在课堂上声明这个.是否可以在控制台应用程序中完全没有类的情况下执行此操作?如果是这样,我该怎么做?
谢谢你的帮助.
我有一个附加了侧边栏的应用程序(TPanel- > alRight),它在其中使用了CategoryPanel(alClient).此CategoryPanel正好有2个未对齐的组.我想分享这两组的边界,以便以50/50的比例填满整个面板空间.不幸的是,CategoryGroups在设计时不支持对齐,这迫使我每次想要测试它时都运行我的应用程序.我尝试将每个CategoryGroup设置为面板的一半高度,但它显示滚动条.(见图2)
如何以50/50的比例正确对齐/共享边界?

我想隐藏我的整个应用程序,然后将其恢复到原来的状态(有点像托盘最小化).这包括所有打开的表格和包含的模态表格.它还应该隐藏每个表单的任务栏可见性.我可以隐藏MainForm,但其他形式和模态形式呢?什么是动态隐藏所有表单并将其恢复到状态的最简单方法?
我已经阅读了一些文档Alternate Data Streams,我正在考虑在我自己的项目中使用它们.然而,在我决定使用它们之前,我还有很多未知的知识和开放的问题.这就是我提出这个问题清单的原因:
streams?LoadLibraryAPI从流加载DLL吗?ShellExecute)流?Alternate Data Streams?Alternate Data Streams吗?我期待你的答案/信息/总结.最好的语言是Delphi,但任何其他语言都可以,只要它使用WinAPI.
我有以下情况:
procedure Test;
begin
repeat
TryAgain := FALSE;
try
// Code
// Code
if this and that then begin
TryAgain := TRUE;
exit;
end;
finally
// CleanUpCode
end;
until TryAgain = FALSE;
end;
Run Code Online (Sandbox Code Playgroud)
如何在不调用的情况下跳转到finally部分,exit以便它自动调用repeat页脚?
我在思考New和Dispose命令,从Delphi和想知道如果我可以在我的过程中使用的其它过程/函数/线程等等这些命令.
我想将地址存储到a TList但我有点不安全,因为它使用了var可以用来"保存"vars实际地址的引用.我不希望任何访问违规或任何东西......这是我的代码:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
MyTList : TList;
public
{ Public declarations }
end;
var
Form1 : TForm1;
type
TMyStruct = record
Int1 : Integer;
Int2 : Integer;
Str1 : String;
Str2 : String;
end;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
P_TMyStruct …Run Code Online (Sandbox Code Playgroud)