小编Fra*_*anz的帖子

为什么我的尺寸变化控制在与TSplitter共享表单时不起作用?

我正在编写一个面板控件,允许用户最小化面板并隐藏此面板上的组件.单个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)

delphi

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

过载功能和程序,任何规则?

我想对程序和功能使用相同的名称,我可以这样做,有关这个问题的任何规定吗?

 /// 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)

delphi

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

计算直到圣诞节的天数

我需要计算直到下一个圣诞节24.12的天数.我想知道下一个圣诞节是否有一个非常简单的计算功能.

     deltaDays := Today - NextChristmas; 
Run Code Online (Sandbox Code Playgroud)

delphi date

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

使用TiniFile类使用注释行编写INI文件

我可以用TIniFileDelphi中的类以任何方式将注释写入我的INI文件吗?

[VALUES]
; first number
a=5
; something else
b=25
...
...
Run Code Online (Sandbox Code Playgroud)

在我在网上找到的示例(示例)中,有时添加了很好的注释行,但没有显示如何创建,读取,写入这些行....

delphi ini

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

在运行时从页面控件中删除选项卡

根据上一个问题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

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

如何将数据从一个类复制到另一个类

如何使用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 class

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

TMapAccess.maReadWrite 未使用 DELPHI 11 定义

下面的代码片段适用于 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)

delphi firemonkey

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

以 TStringList 形式返回所有枚举项

我的函数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)

delphi enums tstringlist typeinfo

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

将键盘事件添加到TPaintBox组件

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)

delphi

0
推荐指数
1
解决办法
235
查看次数

内存泄漏与访问冲突,类设计问题

我在下面的代码中为用户类显示了一个简短的设计模式.

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 memory-leaks

0
推荐指数
1
解决办法
192
查看次数

标签 统计

delphi ×10

class ×1

date ×1

enums ×1

firemonkey ×1

ini ×1

memory-leaks ×1

tstringlist ×1

typeinfo ×1