⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 synunidesigner.pas

📁 用delphi写的delphi源代码 用delphi写的delphi源代码 用delphi写的delphi源代码 用delphi写的delphi源代码
💻 PAS
字号:
{
@abstract(Desginer for TSynUniSyn)
@authors(Vit [nevzorov@yahoo.com], Fantasist [walking_in_the_sky@yahoo.com],
         Vitalik [vetal-x@mail.ru])
@created(2003)
@lastmod(2006-07-23)
}

(******************************************************************************
Authors: Vit (Vitaly Nevzorov nevzorov@yahoo.com)
         Fantasist (Kirill Burtsev walking_in_the_sky@yahoo.com)
         Vitalik (Vitaly Lyapota vetal-x@mail.ru)
Official Site: http://www.unihighlighter.com
With all questions, please visit http://forum.vingrad.ru/index.php?showforum=170
******************************************************************************)

unit SynUniDesigner;

//{$DEFINE SYNPLUS} //*SCHMaster*//

{$I SynUniHighlighter.inc}

interface

uses
  Windows, Messages, Controls, SynUniHighlighter, SynUniDesignerForm;

type
  TSynUniDesigner = class(TObject)
  private
    Form: TfmDesigner;
    function Execute(AFormTitle: string; ALangFile: string): Boolean;
    procedure SetSample(const Value: string);
    function GetSample: string;
    procedure SetTitle(const Value: string);
    function GetTitle: string;
  public
    constructor Create(Highlighter: TSynUniSyn);
    destructor Destroy; override;
    property Title: string read GetTitle write SetTitle;
    property Sample: string read GetSample write SetSample;
    class function EditHighlighter(OriginalSyn: TSynUniSyn;
      FormTitle: string = ''; LangFile: string = ''): Boolean;
  end;

implementation

{$IFDEF UNIDESIGNER18}
uses
  SynUniDesignerOldTranslator,
  SynUniDesignerTranslator;
{$ENDIF}

constructor TSynUniDesigner.Create(Highlighter: TSynUniSyn);
begin
  inherited Create;
  Form := TfmDesigner.Create(nil);
{$IFDEF UNIDESIGNER18}
  Form.OriginalSyn := Highlighter;
{$ENDIF}
{$IFDEF UNIDESIGNER20}
  Form.TotalClear();
  Form.SynUniSyn := Highlighter;
  Form.TempStart();
{$ENDIF}
{$IFDEF NEWUNIDESIGNER}
  //...
{$ENDIF}
end;

destructor TSynUniDesigner.Destroy;
begin
  Form.SampleMemo.Highlighter := nil;
  Form.Free;
  inherited;
end;

class function TSynUniDesigner.EditHighlighter(OriginalSyn: TSynUniSyn; FormTitle: string; LangFile: string): Boolean;
begin
  with Create(OriginalSyn) do begin
    Result := Execute(FormTitle, LangFile);
    Free;
  end;
end;

procedure TSynUniDesigner.SetSample(const Value: string);
begin
  Form.SampleMemo.Text := Value;
end;

function TSynUniDesigner.GetSample: string;
begin
  Result := Form.SampleMemo.Text;
end;

procedure TSynUniDesigner.SetTitle(const Value: string);
begin
  Form.Caption := Value;
end;

function TSynUniDesigner.GetTitle: string;
begin
  Result := Form.Caption;
end;

{$IFDEF SYNPLUS} //*SCHMaster*//
function TSynUniDesigner.Execute(FormTitle: string; LangFile: string): Boolean;
var
  msg : TMsg;
  TcClosed: Boolean;
begin
  if FormTitle <> '' then Title := FormTitle;
   //###Form.Translate(LangFile);
   TcClosed := False;
   Form.ModalResult := mrNone;
   Form.Show;

  while (Form.ModalResult = mrNone) do begin
    GetMessage(msg, 0, 0, 0);
    if (msg.message = WM_QUIT) then begin
      TcClosed := True;
      Form.ModalResult := mrCancel;
      result:=False;
    end else begin
      Result := (Form.ModalResult = mrOk);
      TranslateMessage(msg);
      DispatchMessage(msg);
    end;
  end;

  Result := (Form.ModalResult = mrOk);
  if TcClosed then
    PostMessage(msg.hwnd, msg.message, msg.wParam, msg.lParam);
end;
{$ELSE}
function TSynUniDesigner.Execute(AFormTitle: string; ALangFile: string): Boolean;
begin
  if AFormTitle <> '' then
    Title := AFormTitle;
  {$IFDEF UNIDESIGNER18}
  TSynUniDesignerOldTranslator.Translate(Form, ALangFile);
  TSynUniDesignerTranslator.Translate(Form, ALangFile);
  {$ENDIF}
  Result := (Form.ShowModal = mrOk);
end;
{$ENDIF}

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -