在Pascal中我们有var参数,函数可以将参数值更改为新值:
procedure a(var S1, S2: string);
begin
S1:= S1+'test'+S1;
S2:= S1+'('+S2+')';
end;
Run Code Online (Sandbox Code Playgroud)
Python有这样的功能吗?我可以更改string方法内的参数,还是必须return稍后使用并分配变量?
我得到了包含声明的模块名称os.path.isfile.Jedi lib给了我genericpath(没有文件路径).现在我想用这个genericpath模块获得PY文件的完整文件名.例如"C:\ Py27\Lib\genericpath.py".我该怎么做?绝地不能这样做?
我在Windows中的"c:\ Pyhton3"文件夹中安装了Python 3.x. 如何为SublimeCodeIntel指定Python文件夹位置 - 是否可以通过"查找声明"cmd找到Python 3源文件?在.codeintel/config文件中写什么?
例如,我想把插入符号os.path.isfile和查找源文件 - 使用此ID.
我将D7与TreeView(不是VirtualTreeView)一起使用.如何更改节点高度以使用OwnerDraw并在节点矩形中绘制3(或5个或更多)"文本"行?
所以树应该看起来像这样(根节点+ 2节点显示,aaa和bbb):
[+] Root node
|
| [aaa1
|--[aaa2222
| [aaa333
|
| [bbb1
|--[bbb2222
| [bbb333
|
...
Run Code Online (Sandbox Code Playgroud)
我知道如何使用所有者绘制.但不知道如何制作高节点矩形.
我为PyEnchant提供了许多语言的文件:en_US, en_AU, de_DE, fr_FR.现在我调用字典列表,只看到小集:'en', 'en_US', 'en_GB', 'en_CA'.我打电话:
items = enchant._broker.list_languages()
Run Code Online (Sandbox Code Playgroud)
如何加载Enchant其他langs?新文件?所以enchant.Dict()可以接受它.
我连续有4个面板,中间有3个分割器.第1 /第2 /第3窗格:align=alLeft,第4窗格:align=alClient.
[1] | [2] | [3] | [4]
现在用户想要,那
如何做到这一点,处理什么事件(TSplitter.OnMoved当然)以及如何处理它们?也许Align不像现在这样设定?
我无法将TTrackBar拇指尺寸调整到更高的尺寸.看图像:

我左边有一个小拇指,我不能让它变大(但不是TrackBar本身).
所需的拇指尺寸显示在带有红色区域的图像上.
也许我可以用某种方式使用WINAPI?C++应用程序经常有更大的拇指.
这就是我实际上的目的:

在我目前的项目中,我有一个TTbxDock工具栏和面板(TTbxDockablePanel).移动TBX后 - > SpTBX我不能放置一个面板(TSpTbxDockablePanel)TSpTbxDock.我看到一条运行时错误消息,说我无法在面板上放置面板.

TSpTbxMultiDock替代面板?为什么?TSpTbxMultiDock而不是一个TSpTBXDock?即为什么要写这样的代码:
procedure TSpTBXCustomMultiDock.ValidateInsert(AComponent: TComponent);
begin
inherited;
if not (AComponent is TSpTBXCustomDockablePanel) then
raise EInvalidOperation.CreateFmt('Cannot insert %s into MultiDock', [AComponent.ClassName]);
end;
procedure TSpTBXCustomDockablePanel.ValidateContainer(AComponent: TComponent);
begin
inherited;
if (AComponent is TTBDock) and not (AComponent is TSpTBXCustomMultiDock) then
raise EInvalidOperation.CreateFmt('Cannot insert %s into %s. Place it on a MultiDock instead', [Self.ClassName, AComponent.ClassName]);
end;
Run Code Online (Sandbox Code Playgroud)
为什么我不能只使用一种类型的码头?
我使用Delphi7,PageControl和owner-draw.正如我在非所有者绘制的PageControls上看到的那样,我无法获得如此简单明了的标签.有什么不好的:当使用所有者绘制时,我无法在"整个"标签标题区域上绘制,选项卡标题周围的小1-2px框架由OS绘制.
1)Delphi不是自主绘图,看起来也可以(XPMan使用):

2)Delphi owner-draw,你看不是整个标签头都可以着色(XPMan使用):

我在这里用蓝色绘制当前标签,用白色绘制其他标签.只是例子.码:
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
c: TCanvas;
begin
c:= (Control as TPageControl).Canvas;
if Active then
c.Brush.Color:= clBlue
else
c.Brush.Color:= clWhite;
c.FillRect(Rect);
end;
Run Code Online (Sandbox Code Playgroud)
2b)Delphi所有者在真实应用程序中绘制(使用XPMan):

为什么我需要使用所有者抽奖?简单.要在选项卡标题上绘制X按钮,使用自定义颜色绘制上线,以从图像列表中绘制图标.
我正在寻找一种方法来绘制标签标题的整个矩形,而不是减少给予PageControl所有者绘制事件的rect.我试图增加由所有者绘制事件给出的矩形,但这没有帮助,操作系统重新绘制了标签标题周围的这个薄的1-2px框架.
Delphi 7,带标签的TPageControl.如果我单击选项卡标题,它将变为焦点(虚线框被绘制).这里不需要它,我想始终保持标签内容的重点(内部页面控制).如何禁用焦点标签标题?
例如,Notepad ++禁用它.
delphi ×6
delphi-7 ×5
python ×3
pyenchant ×1
python-2.7 ×1
splitter ×1
sptbxlib ×1
sublimetext2 ×1
tpagecontrol ×1
trackbar ×1
treeview ×1