是否可以从代码中设置"版本信息"设置?我想在不使用项目选项对话框的情况下设置版本编号和"注释"属性的值.
我正在使用Delphi 7,我想创建一个自定义警告消息(将在编译时显示),因此我可以警告其他程序员进行一些修改.我在互联网上搜索过,但我没有发现任何相关内容.
其他解决方案也受到欢迎,因为其他程序员在编译/构建源代码时会被警告我想要的东西.
我正在尝试修改Delphi 7 Dialogs.pas以访问较新的Windows 7打开/保存对话框(请参阅使用Delphi创建Windows Vista Ready应用程序).我可以使用建议的修改显示对话框; 但是,诸如OnFolderChange和OnCanClose之类的事件不再起作用.
这似乎与将Flags:= OFN_ENABLEHOOK更改为Flags:= 0有关.当Flags设置为0时,将绕过TOpenDialog.Wndproc,并且不会捕获相应的CDN_xxxxxxx消息.
任何人都可以建议对D7 Dialogs.pas进行进一步的代码修改,既可以显示更新的常用对话框,又可以维护原始控件的事件功能?
谢谢...
delphi是否包含允许从db加载的自动滚动文本的组件,比如在新闻站点中?
这是一个delphi 7应用程序,需要垂直滚动.
我正在尝试找到一个专门用于显示图像的网格.它也需要具有良好的性能,并且最好具有某种缩略图缓存.图像需要从文件加载,如果图像也可以动态分配,那将是很好的.它不应该在标准网格的列/行记录列表上工作,而是单个项目列表,每个项目代表一个图像.应该有一个属性可以同时为所有列和行定义列宽和行高,而不是一次定义一个.最终目标是列出具有用户选项的所有图像,以控制显示图像的大小.它将用作产品展示,因此需要某种自定义绘图功能,如OnDrawItem事件.这可能会在此列表中显示多达50,000个图像,因此TListView无法正常工作,因为它非常重要.
它需要使用Delphi 2010,XE2,最好是7.
以下是如何在下面显示8张图像的3个示例.我并不是说每个图像的大小不同,但大小完全相同.没有2列可以具有不同的宽度,并且与行相同.

我想知道是否有任何Borland交叉编译器可以使我的Windows代码在没有wine的linux上工作.我正在使用winxp与delphi 7.我总是想知道是否有可能编写我在Windows中编码的相同工具,再次在Linux以及如何通过在linux中使用pascal代码来编写相同的工具.谢谢
我的应用程序需要大量的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) 我在TPanel上有一个TImage,还有一个其他(空)TPanel.我想使用拖放将图像从第一个面板拖动到第二个面板.
我实际上想要看到图像从一个面板移动到另一个面板(半透明).
我想我应该使用,TDragObject.GetDragImages但我无法弄清楚如何构建整个魔法.
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.ControlStyle := Image1.ControlStyle + [csDisplayDragImage]; // ???
TImage(Sender).BeginDrag(False);
end;
procedure TForm1.Image1StartDrag(Sender: TObject; var DragObject: TDragObject);
begin
// ???
end;
procedure TForm1.Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
if (Source is TImage) then
Accept := TImage(Source).Parent <> Sender;
end;
procedure TForm1.Panel1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
if (Source is TImage) then
begin
TImage(Source).Parent := TPanel(Sender);
TImage(Source).Align := alClient;
end; …Run Code Online (Sandbox Code Playgroud) 我正在使用此Delphi 7代码来检测Internet Explorer是否正在运行:
function IERunning: Boolean;
begin
Result := FindWindow('IEFrame', NIL) > 0;
end;
Run Code Online (Sandbox Code Playgroud)
这适用于使用IE 8,9和10的99%的系统.
但是有一些系统(不幸的是我没有,但我有两个beta测试人员都有这样的系统,都是Win7 x64 SP1),其中FindWindow()为IEFrame返回0,即使IE在内存中也是如此.
所以我编写了另一种方法来查找窗口:
function IERunningEx: Boolean;
var WinHandle : HWND;
Name: array[0..255] of Char;
begin
Result := False; // assume no IE window is present
WinHandle := GetTopWindow(GetDesktopWindow);
while WinHandle <> 0 do // go thru the window list
begin
GetClassName(WinHandle, @Name[0], 255);
if (CompareText(string(Name), 'IEFrame') = 0) then
begin // IEFrame found
Result := True;
Exit;
end;
WinHandle := GetNextWindow(WinHandle, GW_HWNDNEXT);
end; …Run Code Online (Sandbox Code Playgroud) 我对Delphi VCL控件的两个属性有点好奇.
每个组件有2种性质Owner和Parent在运行时.谁能帮助我理解两者之间的区别?它们如何被windows用于显示控件或表单?
delphi ×10
delphi-7 ×10
image ×2
delphi-xe2 ×1
grid ×1
linux ×1
png ×1
topendialog ×1
winapi ×1
windows ×1