小编lyb*_*rko的帖子

如何在Javascript中简化事件处理?

这可能是一个非常简单的问题.你会如何合理地简化这个令人敬畏的代码?我将添加更多的事件处理程序和列表项,我不敢相信,它是唯一的"解决方案".我是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)

非常感谢

javascript

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

为什么加载方法被忽略?

我想知道为什么,但我不能简单地调试我的简单程序.忽略加载的方法,它永远不会被执行.不知道为什么.看:

    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)

delphi

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

如何将指针值转换为字符串

如何将指针值转换为字符串?想象一下:

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)

谢谢

delphi

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

Dll可以为主程序提供模块化吗?

简单的任务:我想制作一个程序(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)

delphi vcl

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

我应该选择哪个数据库不要担心大小限制?

我想制作相当简单的数据库,它应该存储视频文件和声音文件.我想使用MS Access数据库(mdb),但这仅限于2 GB.我不想使用服务器 - 客户端解决方案,因为它应该是单个应用程序,只使用存储在本地硬盘上的本地数据库.这就是主意.

你可以给我一个建议吗?

感谢名单

delphi

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

适当的对象创建 - 寻找通用解决方案

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

delphi delphi-7

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

如何使用 contentEditable = true 选择两个元素的文本?

我想问一下,如何选择两个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)

非常感谢

html javascript

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

动态创建的对象(将其类名称作为字符串)不会调用其构造函数

这是对象:

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)

delphi delphi-7

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

Windows任务管理器可靠的工具来检测内存泄漏吗?

如果创建了TObject,则必须在最后销毁它.在开发过程中,它发生在我身上,运行的应用程序在短时间内反应缓慢,我注意到,它耗尽了大量的内存.我在里面看到了它__CODE__.

我做了一些改变,但我仍然看到渐进的内存消耗.该应用程序在内存中有大约22000 Kb,并且在重复重绘之后,涉及创建和销毁对象,它上升到33000.

所以我的问题是,如果这是一个明确的标志,那么代码中的某个地方我没有正确地释放对象.还是有其他原因导致内存泄漏?是否有方法可以轻松调试此问题?

我总是非常注意以正确的方式创建和销毁对象,所以我没有看到明显的失败.它让我疯了......

感谢名单.

delphi

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

是否可以将 Form.Width 设置为 10000 像素?

当您编译空白表单并尝试用鼠标调整其宽度时,当它的客户端宽度接近屏幕分辨率宽度时,它可能会停止。

即使在设计器中也不可能设置更宽的形式。(很奇怪,我永远不会想到它会发生)。我也玩过约束,但这也不是解决方案。

是否可以将 Form.Width 设置为 10000 像素?

delphi delphi-7

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

对象检查器不应用更改的属性

//我不知道如何更好地提出这个问题... //

我注册了自己的新课程(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)

delphi

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

如何在包含转义字符的字符串中使用 MySQL 中的 UPDATE

请看这里:

    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 文件在很多地方都损坏了,因为字符串中使用的转义字符被替换了。如何按原样使用字符串抑制此替换和更新字段?

谢谢指教

莱博科

mysql

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

标签 统计

delphi ×9

delphi-7 ×3

javascript ×2

html ×1

mysql ×1

vcl ×1