Показать сообщение отдельно
  #13  
Старый 23.01.2010, 11:24
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
Стрелка Хреново.

Ferra,
интересный факт:
1) в GLScene много редакторов, но никто не наследуется от TClassProperty, а все либо от TForm, либо от TFame.
2) после установки GLSсene все файлы с формами (.dfm) становятся ненужными.,
3) как бы я не потылся, у меня действительно создаётся новое свойство в инспекторе объектов (ура), но у него в поле-значении написан класс и никакого троеточия (тобиш никакого редактора при нажатии не открывается). Скриншот:


Что посоветуете?

Цитата:
Сообщение от Ferra
Вот тебе кусок кода с моего старого проекта, разбирайся.
Код:
{$I versions.inc}
{$D-,L-,Y-}

unit uEditor;

interface

uses
  Windows, Classes, Forms, Controls, ExptIntf, TypInfo, ToolIntf,
  EditIntf, VirtIntf, SysUtils, Dialogs, ExtCtrls,
  {$IFDEF DELPHI5_OR_ABOVE}
  ToolsApi,
  {$ENDIF}
  {$IFNDEF DELPHI6_OR_ABOVE}
  DsgnIntf,
  {$ELSE}
  DesignIntf,
  DesignEditors,
  VCLEditors,
  {$ENDIF}
  StdCtrls,
  Graphics;

type
  TAboutProperty = class(TClassProperty)
  public
    procedure Edit; override;
    function GetAttributes: TPropertyAttributes; override;
    function GetValue: string; override;
    {$IFDEF VER130}
    procedure PropDrawName(ACanvas: TCanvas; const ARect: TRect;
      ASelected: Boolean); override;
    {$ENDIF}
  end;

implementation

uses uFormAbout;

function TAboutProperty.GetAttributes: TPropertyAttributes;
begin
  Result := [paDialog, paReadOnly {$IFDEF DELPHI5_OR_ABOVE}, paFullWidthName {$ENDIF}]
end ;

procedure TAboutProperty.Edit;
var
  Form : TFormAbout;
begin
  try
    Form := TFormAbout.Create(nil);
    Form.ShowModal;
  finally
    Form.Free;
  end;
end;

function TAboutProperty.GetValue: string;
begin
  Result := '(About)';
end;

{$IFDEF VER130}
procedure TCHAboutProperty.PropDrawName(ACanvas: TCanvas; const ARect: TRect;
  ASelected: Boolean);
begin
  ACanvas.Font.Style := [fsBold];
  inherited PropDrawName(ACanvas, ARect, ASelected);
end;
{$ENDIF}

end.
__________________
Делаем'c разные игры. Искать на glscene.ru
Ответить с цитированием