小编Naf*_*lem的帖子

当移动/加载图像时,Delphi PNG图像显示矩形BUG

在png图像周围,在加载图像上或移动图像时出现奇怪的矩形.

矩形在24位PNG或jpg中很少出现,但是32位PNG是个问题.有谁知道是什么原因造成的?PNG是在Photoshop中创建的.我也尝试了gimp但同样的问题.

24BitPNG-BetterResult

32BitPNG-BAD-BUG

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, pngimage, jpeg, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Timer1: TTimer;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Label1: TLabel;
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: …
Run Code Online (Sandbox Code Playgroud)

delphi png image

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

Delphi如何将所有参数检索为单个字符串

application1运行另一个带有2个参数的application2,例如:(注意:application1不是我的程序)

application2.exe -d:C:\Program Files\app folder -z:Folder menu\app icons
Run Code Online (Sandbox Code Playgroud)

问题是......引号不知何故消失了,所以代替2个参数application2将获得5个参数

Param1=-d:C:\Program
Param2=Files\app
Param3=folder
Param4=-z:Folder menu\app
Param5=app icons
Run Code Online (Sandbox Code Playgroud)

有没有办法将所有参数检索为单个字符串?

我尝试在循环中组合参数

for i:=1 to ParamCount do
parameters=parameters+' '+ParamStr(i);
Run Code Online (Sandbox Code Playgroud)

但这不是一个好的解决方案,因为路径也可以包含双重或三重空间,例如.

Program files\app   folder\ 
Run Code Online (Sandbox Code Playgroud)

cmd.exe可以捕获%*中的所有参数,但如果参数包含特殊字符,如^^〜@@ &&,则会产生错误的结果

delphi parameters

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

Delphi监控CapsLock密钥的状态

我的程序在后台运行,并使用计时器定期检查Capslock是ON还是OFF.

我的问题是,是否存在比使用计时器更好的解决方案?

procedure TForm1.Timer2Timer(Sender: TObject);
var KeyState: TKeyboardState;
begin
  GetKeyboardState(KeyState) ;
 if (KeyState[VK_CAPITAL] = 0) then
  CheckBox1.Checked:=False //Capslock is OFF
 else
  CheckBox1.Checked:=True; //Capslock is ON
end;
Run Code Online (Sandbox Code Playgroud)

delphi winapi

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

标签 统计

delphi ×3

image ×1

parameters ×1

png ×1

winapi ×1