它应该很简单,但我找不到怎么做.
我创建了一个带有右对齐面板的表单,例如我用蓝色着色.
如果我抓住我的表格左边缘并快速水平来回调整大小,我希望右边的面板不要移动或闪烁.由于其地位没有变化,因此没有理由不保持稳定.有没有人知道解决这个看似简单问题的简单技巧?
谢谢
我的程序是用Delphi编写的,基本上问题可以通过以下FormCreate的主窗体重现:
procedure TForm2.FormCreate(Sender: TObject);
var oldStyle : LongInt;
var newStyle : LongInt;
begin
// Adapt windows style.
oldStyle := WINDOWS.GetWindowLong (
handle,
GWL_STYLE);
newStyle := oldStyle and
(not WS_CAPTION) and
(not WS_MAXIMIZEBOX);
WINDOWS.SetWindowLong(
handle,
GWL_STYLE,
newStyle);
// SetWindowPos with SWP_FRAMECHANGED needs to be called at that point
// in order for the style change to be taken immediately into account.
WINDOWS.SetWindowPos(
handle,
0,
0,
0,
0,
0,
SWP_NOZORDER or
SWP_NOMOVE or
SWP_NOSIZE or
SWP_FRAMECHANGED or
SWP_NOACTIVATE);
end;
Run Code Online (Sandbox Code Playgroud) 如果我将 TRichedit 放在表单上,我将无法在控件中粘贴带有图像的 RTF。据我了解,这是由于 Delphi 2007 使用旧版本的 Richedit 控件所致。有没有一种简单的方法可以在 Delphi 2007 的窗体上使用最新的 Richedit 控件?
举一个例子,假设我想写一个简单的过程,从字符串中删除'X'字符.
如何设计我的程序,使其适用于字符串和PCHAR参数.
如果我将其定义为:
程序RemoveX(来源:PCHAR);
比调用RemoveX(PCHAR(mystring)),其中myString是一个字符串将删除'X'但不会更新字符串长度...因此后续的myString:= myString +'done'将保持myString不变.并且我不想在调用RemoveX之后更改长度,我希望RemoveX过程能够处理所有事情.
另一方面,如果我将其定义为:
procedure RemoveX(var source:string);
我不知道怎么把它传给PCHAR ......