小编Ben*_*iss的帖子

Delphi VirtualKey 到 WideString

我想将虚拟键转换为 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 但为什么呢?请帮忙。

delphi keyboard winapi delphi-7

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

虚拟TreeView循环

我想浏览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)

谢谢您的帮助.

delphi delphi-7 virtualtreeview tvirtualstringtree

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

将BS(退格)发送到TMemo

我想将一个BackSpace控件字符发送到TMemo,就像用户实际按下BackSpace按钮一样.

我的备忘录是只读的,如果我点击一个按钮,它应该删除备忘录中的最后一个字符.我想这样做而不使用Memo.Text:= ...(所以没有重绘或初始更新等)这是可能的,如果是的话,怎么样?

谢谢您的帮助.

编辑:我试图添加#8但没有运气...

delphi vcl delphi-7

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

KOL - 将PStream加载到TImage

我有一个保存在字符串中的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中没有显示图片...感谢您的帮助:)

delphi delphi-7 kol

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

WM_COPYDATA在Delphi中没有类

我想从2个CONSOLE应用程序发送/接收一个字符串(2个不同的PID,没有表格!).我看到我需要在课堂上声明这个.是否可以在控制台应用程序中完全没有类的情况下执行此操作?如果是这样,我该怎么做?

谢谢你的帮助.

delphi wm-copydata

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

如何使两个控件占据父母区域的一半?

我有一个附加了侧边栏的应用程序(TPanel- > alRight),它在其中使用了CategoryPanel(alClient).此CategoryPanel正好有2个未对齐的组.我想分享这两组的边界,以便以50/50的比例填满整个面板空间.不幸的是,CategoryGroups在设计时不支持对齐,这迫使我每次想要测试它时都运行我的应用程序.我尝试将每个CategoryGroup设置为面板的一半高度,但它显示滚动条.(见图2)

如何以50/50的比例正确对齐/共享边界?

此搜索 镜像2

delphi vcl delphi-xe

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

隐藏和恢复应用程序的最佳方法

我想隐藏我的整个应用程序,然后将其恢复到原来的状态(有点像托盘最小化).这包括所有打开的表格和包含的模态表格.它还应该隐藏每个表单的任务栏可见性.我可以隐藏MainForm,但其他形式和模态形式呢?什么是动态隐藏所有表单并将其恢复到状态的最简单方法?

delphi vcl

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

您如何使用备用数据流?有哪些好处?

我已经阅读了一些文档Alternate Data Streams,我正在考虑在我自己的项目中使用它们.然而,在我决定使用它们之前,我还有很多未知的知识和开放的问题.这就是我提出这个问题清单的原因:

  1. 如果没有Sysinternals工具,你如何枚举Streams streams?
  2. 流是否会影响"主机"文件的MD5值?
  3. 如果我将"主机"文件复制/剪切到另一个(NTFS)路径会发生什么?溪流也会自行复制/剪切吗?
  4. 如果我将"主机"文件复制/剪切到非NTFS的另一个路径会发生什么?
  5. 是否可以在现有流中添加另一个流?
  6. 由于每个流都有一个实际的文件句柄,是否可以更改流的属性?
  7. 我可以使用LoadLibraryAPI从流加载DLL吗?
  8. 是否可以执行(例如ShellExecute)流?
  9. 使用有哪些优点/好处/缺点Alternate Data Streams?
  10. 如果我使用,我必须谨慎Alternate Data Streams吗?

我期待你的答案/信息/总结.最好的语言是Delphi,但任何其他语言都可以,只要它使用WinAPI.

winapi alternate-data-stream

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

跳转到最终而不退出函数/过程

我有以下情况:

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页脚?

delphi

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

Delphi的`New`分配的内存是否可以全局访问`Dispose`?

我在思考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)

delphi

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