这可能是一个非常简单的问题.你会如何合理地简化这个令人敬畏的代码?我将添加更多的事件处理程序和列表项,我不敢相信,它是唯一的"解决方案".我是javascript的新手(但不是编程).
function MouseOver(elem)
{
elem.style = "font-weight:800;";
}
function MouseOut(elem)
{
elem.style = "font-weight:100;";
}
...
<ul class="signs_UL" style="color:#039">
<li class="signs_LI" onmouseover="MouseOver(this);" onmouseout="MouseOut(this);">G</li>
<li class="signs_LI" onmouseover="MouseOver(this);" onmouseout="MouseOut(this);">D</li>
<li class="signs_LI" onmouseover="MouseOver(this);" onmouseout="MouseOut(this);">DD</li>
<li class="signs_LI" onmouseover="MouseOver(this);" onmouseout="MouseOut(this);">Dzw</li>
<li class="signs_LI" onmouseover="MouseOver(this);" onmouseout="MouseOut(this);">Do</li>
<li class="signs_LI" onmouseover="MouseOver(this);" onmouseout="MouseOut(this);">Gkomb</li>
<li class="signs_LI" onmouseover="MouseOver(this);" onmouseout="MouseOut(this);">DGkomb</li>
<li class="signs_LI" onmouseover="MouseOver(this);" onmouseout="MouseOut(this);">DGkonf</li>
<li class="signs_LI" onmouseover="MouseOver(this);" onmouseout="MouseOut(this);">DGkont</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
非常感谢
我想知道为什么,但我不能简单地调试我的简单程序.忽略加载的方法,它永远不会被执行.不知道为什么.看:
TGridObj = class (TComponent)
private
FPen1:TPen;
FBrush1:TBrush;
FChange:TNotifyEvent;
protected
procedure Loaded; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property OnChange:TNotifyEvent read FChange write FChange;
property Pen1:TPen read FPen1 write FPen1;
property Brush1:TBrush read FBrush1 write FBrush1;
end;
Run Code Online (Sandbox Code Playgroud)
...
constructor TGridObj.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FPen1:=TPen.Create;
FPen1.OnChange:=FChange;
FBrush1:=TBrush.Create;
FBrush1.OnChange:=FChange;
end;
destructor TGridObj.destroy;
begin
FPen1.Free;
FBrush1.Free;
inherited;
end;
procedure TGridObj.Loaded();
begin
inherited Loaded;
ShowMessage(''); // this is never executed;
FPen1.OnChange:=FChange;
FBrush1.OnChange:=FChange;
end;
Run Code Online (Sandbox Code Playgroud)
..
procedure TForm1.FormCreate(Sender: TObject);
begin
Grid:=TGridObj.Create(nil); …Run Code Online (Sandbox Code Playgroud) 如何将指针值转换为字符串?想象一下:
procedure TForm1.Button1Click(Sender: TObject);
var DummyPointer :Pointer;
begin
DummyPointer := Addr(Sender);
ShowMessage(IntToStr(DummyPointer)); //this is it, what I can not solve... it casts error
end;
Run Code Online (Sandbox Code Playgroud)
谢谢
简单的任务:我想制作一个程序(parent.exe).有三个按钮.当我单击Button1时,出现Form1; 按钮2,Form2出现时; 当Button3,Form3出现时......
Form1,Form2,Form3存储在三个不同的dll(Form1dll.dll,Form2dll.dll,Form3dll.dll)中.
我想让父程序(parent.exe)运行模块化.我计划添加和删除dll,但Parent.exe要求所有dll都存在,否则会发生异常.
我该如何解决这个问题?
感谢名单
这是来自parent.exe的代码:
procedure ShowForm1;stdcall;external 'Project1dll.dll' name 'ShowForm1';
procedure ShowForm2;stdcall;external 'Project2.dll' name 'ShowForm2';
procedure ShowForm3;stdcall;external 'Project3.dll' name 'ShowForm3';
var
ParentForm: TParentForm;
implementation
{$R *.DFM}
procedure TParentForm.Button1Click(Sender: TObject);
begin
ShowForm1;
end;
procedure TParentForm.Button2Click(Sender: TObject);
begin
ShowForm2;
end;
procedure TParentForm.Button3Click(Sender: TObject);
begin
ShowForm3;
end;
Run Code Online (Sandbox Code Playgroud) 我想制作相当简单的数据库,它应该存储视频文件和声音文件.我想使用MS Access数据库(mdb),但这仅限于2 GB.我不想使用服务器 - 客户端解决方案,因为它应该是单个应用程序,只使用存储在本地硬盘上的本地数据库.这就是主意.
你可以给我一个建议吗?
感谢名单
有3个类(可能还有更多),它们具有相同的过程(程序Populate).它们几乎相同,只是通过对象创建而不同.我想要的只是在基类中编写一个通用过程,它将永远取代这个臭名昭着的代码重复.我不确定,如果我可以准确地表达我的意思,但请查看下面的代码并查看.
TGrandFather = class(TObject)
end;
TFather = class(TGrandFather)
end;
TSon = class(TFather)
end;
TGrandson.... and so on...
TGrandFathers = class (TList)
public
procedure Populate(Amount:Integer);
end;
TFathers = class (TGrandFathers)
public
procedure Populate(Amount:Integer);
end;
TSons = class (TFathers)
public
procedure Populate(Amount:Integer);
end;
TGrandsons....
...
procedure TGrandFathers.Populate(Amount:Integer);
var i:integer;
xGrandFather:TGrandFather;
begin
for i := 0 to Amount do
begin
xGrandFather:=TGrandFather.Create;
Add(xGrandFather);
end;
end;
procedure TFathers.Populate(Amount:Integer);
var i:integer;
xFather:TFather;
begin
for i := 0 to Amount do
begin
xFather:=TFather.Create; //this is the point, …Run Code Online (Sandbox Code Playgroud) 我想问一下,如何选择两个HTML元素的文本,哪个属性contentEditable设置为true。当我开始在一个元素中用鼠标选择文本时,选择将在其范围内结束。永远不要到达第二个元素。
我也尝试应用“用户选择”属性,但没有效果。
这是片段。
<body>
<div contentEditable = true style="position:absolute; left: 10px; top:10px; width:100px; height:200px; border: 3px solid #73AD21;">
Donec tempus, nisi a pharetra placerat, diam nisi aliquam elit, a consectetur magna enim sed ligula.
</div>
<div contentEditable = true style="position:absolute; left: 130px; top:10px; width:100px; height:200px; border: 3px solid #73AD21;">
The oldest browsers support only one way of registering event handlers, the way invented by Netscape.
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
非常感谢
这是对象:
TCell = class(TPersistent)
private
FAlignmentInCell :byte;
public
constructor Create; virtual;
published
property AlignmentInCell:byte read FAlignmentInCell write FAlignmentInCell;
end;
Run Code Online (Sandbox Code Playgroud)
这是它的构造函数:
constructor TCell.Create;
begin
inherited;
FAlignmentInCell:=5;
end;
Run Code Online (Sandbox Code Playgroud)
这是一个函数,它动态创建从TPersistent派生的任何对象(参数是以字符串形式提供的类名)
function CreateObjectFromClassName(AClassName:string):TPersistent;
var DynamicObject:TPersistent;
TempObject:TPersistent;
DynamicPersistent:TPersistent;
DynamicComponent:TComponent;
PersistentClass:TPersistentclass;
ComponentClass:TComponentClass;
begin
PersistentClass:=TPersistentclass(FindClass(AClassName));
TempObject:=PersistentClass.Create;
if TempObject is TComponent then
begin
ComponentClass:=TComponentClass(FindClass(AClassName));
DynamicObject:=ComponentClass.Create(nil);
end;
if not (TempObject is TComponent) then
begin
DynamicObject:=PersistentClass.Create; // object is really TCell, but appropriate constructor seems to be not called.
end;
result:=DynamicObject;
end;
Run Code Online (Sandbox Code Playgroud)
我的想法是创建这样的新Cell(TCell):
procedure TForm1.btn1Click(Sender: TObject);
var p:TPersistent;
begin
p …Run Code Online (Sandbox Code Playgroud) 如果创建了TObject,则必须在最后销毁它.在开发过程中,它发生在我身上,运行的应用程序在短时间内反应缓慢,我注意到,它耗尽了大量的内存.我在里面看到了它__CODE__.
我做了一些改变,但我仍然看到渐进的内存消耗.该应用程序在内存中有大约22000 Kb,并且在重复重绘之后,涉及创建和销毁对象,它上升到33000.
所以我的问题是,如果这是一个明确的标志,那么代码中的某个地方我没有正确地释放对象.还是有其他原因导致内存泄漏?是否有方法可以轻松调试此问题?
我总是非常注意以正确的方式创建和销毁对象,所以我没有看到明显的失败.它让我疯了......
感谢名单.
当您编译空白表单并尝试用鼠标调整其宽度时,当它的客户端宽度接近屏幕分辨率宽度时,它可能会停止。
即使在设计器中也不可能设置更宽的形式。(很奇怪,我永远不会想到它会发生)。我也玩过约束,但这也不是解决方案。
是否可以将 Form.Width 设置为 10000 像素?
//我不知道如何更好地提出这个问题... //
我注册了自己的新课程(TDisplay).这个类的内部是一个对象(TRectangle - 也是我自己的),它是在TCustomDisplay的构造函数中创建的 - TDisplay的前身.
当我在表单上放置TDisplay时,我可以像往常一样编辑我的两个对象(TDisplay,TRectangle)的所有已发布属性,但是根据对象检查器只设置了TDisplay.TRectangle保持其默认值(左0,前0,右30,下20),尽管如此,这些属性设置为左0,前0右100,下100.
我应该检查什么才能使其正常运行?
感谢名单
PS当对象检查器中定义的属性实际加载到对象中时?
这是示例代码("short one").它不是"干净"所以请宽容......
TRectangle = class(TComponent)
private
FOnAdjustContent: TNotifyEvent;
FLeft, FRight, FBottom, FTop:Integer;
FoutLeft, FoutRight, FoutBottom, FoutTop:integer;
FinLeft, FinRight, FinBottom, FinTop:integer;
FAligning:TAligning;
FAdjustContent:TAdjustContent;
FAnchors:TAnchors;
FList:Tlist;
FRectangleContainer:TRectangleContainer;
FParentRectangle:TRectangle;
FdLeft, FdTop, FdBottom, FdRight: integer;
// function FindParent(AName:string):TRectangle;
public
constructor Create(AOwner:TComponent);override;
destructor Destroy; override;
procedure Assign(Source : TPersistent); override;
published
property AdjustContent:TAdjustContent read FAdjustContent write SetAdjustContent;
property Aligning:TAligning read FAligning write SetAlign;
property Anchors:TAnchors read FAnchors write SetAnchors;
.
.
.
end;
TTextObject …Run Code Online (Sandbox Code Playgroud) 请看这里:
UPDATE cars_tbl
SET description = '{\rtf1'
WHERE (ID=1)
Run Code Online (Sandbox Code Playgroud)
描述字段是“blob”,我的 RTF 文档将存储在其中。
当我检查更新的数据时,我总是发现
{
tf1
Run Code Online (Sandbox Code Playgroud)
\r 只是消失了。我试图在网上找到解决方案,但没有成功。我的 rtf 文件在很多地方都损坏了,因为字符串中使用的转义字符被替换了。如何按原样使用字符串抑制此替换和更新字段?
谢谢指教
莱博科