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

📄 comstr.pas

📁 《参透Delphi Kylix》通过131个事例
💻 PAS
字号:
unit ComStr;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses
  Windows, ActiveX, Classes, ComObj;

type
  IJuComStrServer = interface(IUnknown)
    ['{70718A5F-E74C-43D4-B0C6-33212C196BF8}']
    function GetValue(): string; stdcall;
    procedure SetValue(const Value: string); stdcall;
    function UpperCase(): string; stdcall;
    function LowerCase(): string; stdcall;
    property Text: string read GetValue write SetValue;
  end;

  TJuComStrServer = class(TComObject, IJuComStrServer)
  private
    FText: string;
  public
    function GetValue(): string; virtual; stdcall;
    procedure SetValue(const Value: string); virtual; stdcall;
    function UpperCase(): string; virtual; stdcall;
    function LowerCase(): string; virtual; stdcall;
    property Text: string read GetValue write SetValue;
  end;

const
  Class_JuComStrServer: TGUID = '{0E4E670B-6A3B-4C5A-9BCE-3CC39DE1A917}';

implementation

uses SysUtils, ComServ;

{ TJuComStrServer }

function TJuComStrServer.GetValue: string;
begin
  Result := FText;
end;

function TJuComStrServer.LowerCase: string;
begin
  Result := SysUtils.LowerCase(FText);
end;

procedure TJuComStrServer.SetValue(const Value: string);
begin
  if FText <> Value then FText := Value;
end;

function TJuComStrServer.UpperCase: string;
begin
  Result := SysUtils.UpperCase(FText);
end;

initialization
  TComObjectFactory.Create(ComServer, TJuComStrServer, Class_JuComStrServer,
    'JuComStrServer', 'June String ComServer', ciMultiInstance, tmApartment);

end.

⌨️ 快捷键说明

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