小编Lit*_*per的帖子

如何调整图片大小?

我有图像(500x500),但我需要将其调整为200x200并将其绘制在TImage上.如何实现这样的结果?

注意
我知道StretchTImage中的属性,但我想以编程方式调整图像大小.

delphi resize image delphi-7

14
推荐指数
4
解决办法
3万
查看次数

简单的字符串散列函数

我正在尝试将字符串散列为一个整数,以便将其放入数组中.但是我不太了解散列函数,这就是为什么我当前的方法只是将字符的所有ASCII数字加在一起并将其调整为数组大小.

有没有简单的更快/更好的方法?

delphi string hash

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

适用于XP的Windows防火墙规则

如何以编程方式将应用程序或端口添加到Windows XP上的Windows防火墙?

windows delphi winapi windows-firewall delphi-7

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

如何将PAnsiChar转换为WideString或string?

如何将PAnsiChar变量转换为WideString或转换为string

delphi delphi-7

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

Delphi:如何向其他应用程序发送命令?

如何从其他Delphi创建的应用程序发送和接收命令?
我想将命令发送到我的其他应用程序.

windows delphi process delphi-7

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

如何从其他PNG复制一个PNG?

我的应用程序需要大量的PNG,而且在尝试使用它们时,我经常搞砸我的代码.为了让我的生活更轻松,我在Realword Paint中制作了一个大的PNG图像,并将所有那些小的PNG图像粘贴到它上面.现在我有一个文件.现在我只需要将一个PNG复制到另一个具有透明度的PNG(顺便提一下,不要问为什么),因为我需要对每个图像进行简单的处理.在处理图像方面,我是程序员.我使用的是Delphi 7.

PGNImage.Resize

procedure TPngObject.Resize(const CX, CY: Integer);
  function Min(const A, B: Integer): Integer;
  begin
    if A < B then Result := A else Result := B;
  end;
var
  Header: TChunkIHDR;
  Line, NewBytesPerRow: Integer;
  NewHandle: HBitmap;
  NewDC: HDC;
  NewImageData: Pointer;
  NewImageAlpha: Pointer;
  NewImageExtra: Pointer;
begin
  if (CX > 0) and (CY > 0) then
  begin
    {Gets some actual information}
    Header := Self.Header;

    {Creates the new image}
    NewDC := CreateCompatibleDC(Header.ImageDC);
    Header.BitmapInfo.bmiHeader.biWidth := cx;
    Header.BitmapInfo.bmiHeader.biHeight := cy;
    NewHandle := CreateDIBSection(NewDC, pBitmapInfo(@Header.BitmapInfo)^, …
Run Code Online (Sandbox Code Playgroud)

delphi png image delphi-7

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

如何绘制Unicode文本?

如何在TCustomControl上绘制Unicode文本?没有画布还有其他选择吗?

delphi canvas delphi-7

7
推荐指数
1
解决办法
2984
查看次数

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

OpenGL - 直接渲染到位图

我正在制作具有一堆小窗口和控件的应用程序(所以它是2D渲染),我想将每个窗口和控件渲染到它自己的位图(没有那么多).这有:

uses dglOpenGL;
...
var BMP: TBitmap;
    DC, RC: HDC;
...
function TMainForm.Init: Boolean;
begin
  Result := InitOpenGL;
  if Result = True then
  begin
    BMP := TBitmap.Create;
    BMP.PixelFormat := pf24bit;
    BMP.Width := 1280;
    BMP.Height := 1024;

    DC := (BMP.Canvas.Handle);
    RC := CreateRenderingContext(DC,
                                 [opGDI, opDoubleBuffered], // tried changing, didn't help
                                 24,
                                 24,
                                 0,
                                 0,
                                 0,
                                 0);
    ActivateRenderingContext(DC, RC);

    glClearColor(0.27, 0.4, 0.7, 0.0); // light blue
    glViewport(0, 0, 1280, 1024);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity;
    glOrtho(0, 1280, 0, 1024, -1, 10);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity;
  end;
end; …
Run Code Online (Sandbox Code Playgroud)

windows delphi opengl rendering delphi-7

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

WideChar到字节?

我这里有一个简单的问题.如何在Delphi - 7中转换WideChar为2x Byte?我搜索了互联网和StackOverflow,但没有结果......

delphi byte bytearray widechar

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