我正在使用DeDe创建一个我可以编译的API(接口).(严格合法:当我们等待供应商在两个月内交付D2010版本时,我们至少可以让我们的应用程序编译......)
我们将剔除所有方法.
Dede发出如下的常量声明:
LTIMGLISTCLASS =
00: ÿÿÿÿ....LEADIMGL|FF FF FF FF 0D 00 00 00 4C 45 41 44 49 4D 47 4C|
10: IST32. |49 53 54 33 32 00|;
DS_PREFIX =
0: ÿÿÿÿ....DICM.|FF FF FF FF 04 00 00 00 44 49 43 4D 00|;
我如何将这些转换为可编辑的声明?
从理论上讲,我不关心实际值,因为我怀疑它们在任何地方使用,但我想让它们的大小正确.这些整数,LongInts还是???
任何其他关于使用DeDe的提示都会受到欢迎.
为什么以下代码在Delphi 7中返回TRUE而在Delphi 2010中返回FALSE?TBitBtn是TButton的后代.
type
TForm1 = class(TForm)
Button1: TButton;
BitBtn1: TBitBtn;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TestControl( aControl: TControl);
begin
if (aControl is TButton) then showmessage('TRUE') else showmessage('FALSE');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TestControl(BitBtn1);
end;
Run Code Online (Sandbox Code Playgroud) 当用户将鼠标向下移动到TCheckListBox中的项目列表时,如何显示特定于鼠标下项目的提示?
在Delphi 2010中.
汤姆
当我单击并拖动鼠标时,我需要实现一个平移,并且使用鼠标滚轮朝向/远离鼠标光标进行缩放/缩放.(在Delphi 2010中,图像锚定在表单的左侧,右侧,顶部,底部.)
我刚安装了Graphics32,看看它的内置滚动条和.Scale如何允许其中一些.到目前为止,至少可以轻松实现这一目标.
问题:
Graphics32是一个很好的工具吗?我可能会研究其他(也许更简单的)工具吗?
有没有人有关于如何实现上述的指针或示例代码?
谢谢.
我正在仿效(尽可能)TPopup菜单,以便它可以浮动,用户可以拖动它.
为此,它采用自己的形式,并使用TPanels,就好像它们是可点击的TMenuItems一样.
我正在使用TPanels,所以我可以改变它们的颜色.
为了获得正确的颜色,我如何在运行时(在Delphi 2010中)确定TMenuItem.Color和TMenuItem.Font.Color的当前主题颜色(假设存在这样的属性).
TIA
编辑
我可以使用clBtnFace作为背景,使用clWindowText作为文本颜色.但是,我需要知道鼠标在菜单选择上的主题颜色.
简单的问题,(简单点!)
在Delphi 2010中(更新4和5)"在文件中查找"显示每个文件关闭树的结果.我必须单击加号才能打开每个文件的结果.
我知道有一种方法可以配置IDE以自动显示所有树打开的结果,但由于某种原因(我的疲劳?)我无法找到设置该选项的位置.
汤姆
一年后编辑:我在这里重新提出这个问题:在消息窗口中自动扩展"在文件中查找"的结果,得到了一个很好的答案:
"[Use the] Group results by file" checkbox on the Find In Files dialog.
Run Code Online (Sandbox Code Playgroud)
不知何故,我忽略了这一点!我发布了这个编辑,以便将来的其他读者可以在这里找到它.
是否可以使用名称/值对中的名称在TStringList上使用customSort
我当前正在使用TStringList对每个pos中的一个值进行排序.我现在需要使用此值添加其他数据,因此我现在使用TStringList作为名称/值
我目前的CompareSort是:
function StrCmpLogicalW(sz1, sz2: PWideChar): Integer; stdcall;
external 'shlwapi.dll' name 'StrCmpLogicalW';
function MyCompare(List: TStringList; Index1, Index2: Integer): Integer;
begin
Result := StrCmpLogicalW(PWideChar(List[Index1]), PWideChar(List[Index2]));
end;
Usage:
StringList.CustomSort(MyCompare);
Run Code Online (Sandbox Code Playgroud)
有没有办法修改它,以便它根据名称值对的名称进行排序?
或者,还有另一种方式吗?
这是我第一次使用BalloonHints.我正在使用Delphi 2010.
我不确定我是否正确使用提示,因为在下面的场景中,我得到了两次相同文本的提示:一次作为标题,一次作为正文.我已经挣扎了一段时间,这里也提到了其他帖子,Delphi的帮助,以及Cantu在D2009手册中的例子.
如果检测到用户需要单击按钮,我希望我的代码弹出一个提示.然后我想要显示相同的提示,如果用户稍后将鼠标悬停在按钮上.
按照以下顺序,在步骤3中,按钮的提示文本显示为气球文本上的标题,就好像有一个管道符...
第1步:调用ShowHint.提示正确显示,然后正常消失.
第2步:用户将鼠标移到按钮上.按钮的提示正确显示.
第3步:再次调用ShowHint.出现的提示具有来自气球提示的描述中的正确文本,但它具有来自按钮的标题.
Procedure TForm.ShowHintIfNeeded.
var
Pt: TPoint;
begin
if fNeedFileName then
begin
BalloonHint1.Description := 'Click this button to open';
Pt.X := btnOpenFile.Width Div 2;
Pt.Y := 0;
BalloonHint1.ShowHint(btnOpenFile.ClientToScreen(Pt));
end;
end;
Run Code Online (Sandbox Code Playgroud)
和我的按钮的dfm:
object btnOpenFile: TBitBtn
Hint = 'Click this button to open'
CustomHint = BalloonHint1
ShowHint = True
end
Run Code Online (Sandbox Code Playgroud) 关于OO设计的问题.
假设我有一个基础对象车辆.还有两个后代:卡车和汽车.
此外,假设基础对象具有基本方法:
Procedure FixFlatTire(); abstract;
Run Code Online (Sandbox Code Playgroud)
当卡车和汽车覆盖基础对象时,它们需要来自呼叫者的不同信息.
我最好在两个后代对象中像这样重载FixFlatTire:
Procedure Truck.FixFlatTire( OfficePhoneNumber: String;
NumberOfAxles: Integer): Override; Overload;
Procedure Automobile.FixFlatTire( WifesPhoneNumber: String;
AAAMembershipID: String): Override; Overload;
Run Code Online (Sandbox Code Playgroud)
或者在每个后代中引入新属性,然后在调用FixFlatTire之前设置它们,如下所示:
Truck.OfficePhoneNumber := '555-555-1212';
Truck.NumberOfAxles := 18;
Truck.FixFlatTire();
Automobile.WifesPhoneNumber := '555-555-2323';
Automobile.AAAMembershipID := 'ABC';
Automobile.FixFlatTire();
Run Code Online (Sandbox Code Playgroud) 如何检测TDbGrid当前是否处于"拖动模式",用户将一行(或多行)拖动到另一个组件.
我以为:
if Screen.Cursor = DBGrid.DragCursor then
Run Code Online (Sandbox Code Playgroud)
但这似乎太暴力了.
我可以使用OnStartDrag和OnEndDrag事件来跟踪自己.
我无法在TDbGrid中找到指示当前模式的属性.
有什么建议?