我正在编写一个面板控件,允许用户最小化面板并隐藏此面板上的组件.单个THidePanel似乎按预期工作,但是当我将其中两个放在由分割器分隔的表单上时.第一个面板是alLeft对齐的; 第二个面板alClient:

单击第二个面板的按钮时,它不会对最小化或最大化做出反应.这是我的所有代码.为什么不起作用?
const
BoarderSize = 20;
type
TButtonPosition = (topleft, topright, buttomleft, buttomright);
///
/// a panel with a smaller panel inside and a button on the side
///
THidePanel = class(TPanel)
private
{ Private-Deklarationen }
///
/// a smaller working panel
WorkingPanel: TPanel;
FLargeHight: Integer;
FLargeWidth: Integer;
FActivateButton: TButton;
FExpandState: Boolean;
FButtonPosition: TButtonPosition;
FOnActivateBtnClick: TNotifyEvent;
procedure SetButtonPosition(const Value: TButtonPosition);
protected
{ Protected-Deklarationen }
public
{ Public-Deklarationen }
constructor create(aOwner: TComponent); override;
procedure WMSize(var Msg: …Run Code Online (Sandbox Code Playgroud) 我想对程序和功能使用相同的名称,我可以这样做,有关这个问题的任何规定吗?
/// first version
function RunMyImageProcess (aRect : TRect; aBitmap : TBitmap ): TPoint; overload ;
/// a overload version, this works , it is simple :-)
function RunMyImageProcess (aRect : TRect; aBitmap : TBitmap ; aprocessflag : Boolean): TPoint; overload ;
/// need now a procedure
/// will return 2 Points now !!!
/// can I do this in DELPHI ????
procedure RunMyImageProcess (var LowerLeft, Upperright: TPoint; aBitmap : TBitmap ; aprocessflag : Boolean): boolean; overload ;
Run Code Online (Sandbox Code Playgroud) 我需要计算直到下一个圣诞节24.12的天数.我想知道下一个圣诞节是否有一个非常简单的计算功能.
deltaDays := Today - NextChristmas;
Run Code Online (Sandbox Code Playgroud) 我可以用TIniFileDelphi中的类以任何方式将注释写入我的INI文件吗?
[VALUES]
; first number
a=5
; something else
b=25
...
...
Run Code Online (Sandbox Code Playgroud)
在我在网上找到的示例(示例)中,有时添加了很好的注释行,但没有显示如何创建,读取,写入这些行....
根据上一个问题TABS @RUN TIME我在运行时创建标签页.现在我遇到了在运行时删除标签的问题,我的反函数解决方案是这样的
procedure TForm.DeleteAllTabs(sender : TObject);
var i : Integer;
begin
for I := 0 to pagecontrol1.PageCount-1 do
pagecontrol1.Pages[i].Destroy
end;
Run Code Online (Sandbox Code Playgroud)
但它声称我是出界的.....(访问违规)
如何使用DELPHI运算符重载将数据从一个类复制到第二个类?
我的虚拟应用程序是这样的:
type
TClass_A = class
a: String;
end;
TClass_B = class(TClass_A)
b: String;
end;
implementation
procedure TForm1.Button1Click(Sender: TObject);
var
a: TClass_A;
b: TClass_B;
begin
a := TClass_A.Create;
b := TClass_B.create;
b := a; // <<-- What code should be here? Can I overload := operator?
end;
Run Code Online (Sandbox Code Playgroud) 下面的代码片段适用于 DELPHI 10.4 和 FMX 框架,但不能使用 DELPHI 11 进行编译。错误:maReadWrite 未定义
[dcc64 Error] ImageUnit.FMX.pas(5340): E2003 Undeclared identifier: 'maReadWrite'
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题以及如何编写使用 DELPHI 10.4 和 DELPHI 11 进行编译的代码?
var bit : TBitmap;
begin
if (Bit.Map(TMapAccess.maReadWrite, bitdata1)) then
try
for i := 0 to Bit.width - 1 do
for j := 0 to Bit.height - 1 do
begin
Run Code Online (Sandbox Code Playgroud) 我的函数EnumToStringList()本身可以编译,但我无法使用应用程序中的任何枚举类型调用它:
[dcc64 错误] Unit_test.pas(119): E2029 '(' 预期但 ')' 找到
我的方法有什么问题吗?
function EnumToStringList(const TypeInfo: pTypeInfo): TStringlist;
var i : Integer;
begin
Result := TStringList.Create;
for i := GetTypeData(TypeInfo)^.MinValue to GetTypeData(TypeInfo)^.MaxValue do
begin
result.add (GetEnumName(TypeInfo, i));
end;
end;
function EnumToString(const TypeInfo: pTypeInfo; Ix: Integer): string;
begin
result := GetEnumName(TypeInfo, Ix);
end;
type
TProjectTypes = (low,hot,skip,pause,others);
// test code:
MyProjectStrings := EnumToStringList (TProjectTypes);
Run Code Online (Sandbox Code Playgroud) 我TPaintBox在我的应用程序中使用了一个 已经设置了几个鼠标事件处理程序:鼠标按下,鼠标按下等.但是,我还想响应键盘输入:如果用户按下任何功能键,我想执行一个单独的过程(事件处理程序)而不是Mouse*事件处理函数.但我也需要在我的新程序中使用鼠标位置.
我如何编码,因为TPaintBox不支持任何按键事件?
procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
// here some code
end;
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
// more code here
end;
procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
// here other code
end;
Run Code Online (Sandbox Code Playgroud) 我在下面的代码中为用户类显示了一个简短的设计模式.
type
MytestClass = class
alist: TStringlist;
public
constructor Create;
destructor destroy; override;
end;
{ MytestClass }
type
TForm1 = class(TForm)
btn_version01: TBitBtn;
btnversion02: TBitBtn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure btn_version01Click(Sender: TObject);
procedure btnversion02Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
btestClass : MytestClass;
aComplexClassDesign : TComplexClassDesign;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
constructor MytestClass.Create;
begin
alist := TStringlist.Create;
end;
destructor MytestClass.destroy;
begin
alist.free;
inherited;
end;
procedure TForm1.btnversion02Click(Sender: TObject);
var atestClass : …Run Code Online (Sandbox Code Playgroud) delphi ×10
class ×1
date ×1
enums ×1
firemonkey ×1
ini ×1
memory-leaks ×1
tstringlist ×1
typeinfo ×1