source: cprs/branches/tmg-cprs/TMG_Extra/tntUniCode/Source/TntClipBrd.pas@ 1024

Last change on this file since 1024 was 672, checked in by Kevin Toppenberg, 15 years ago

Adding source to tntControls for compilation

File size: 2.2 KB
Line 
1
2{*****************************************************************************}
3{ }
4{ Tnt Delphi Unicode Controls }
5{ http://www.tntware.com/delphicontrols/unicode/ }
6{ Version: 2.3.0 }
7{ }
8{ Copyright (c) 2002-2007, Troy Wolbrink (troy.wolbrink@tntware.com) }
9{ }
10{*****************************************************************************}
11
12unit TntClipBrd;
13
14{$INCLUDE TntCompilers.inc}
15
16interface
17
18uses
19 Windows, Clipbrd;
20
21type
22{TNT-WARN TClipboard}
23 TTntClipboard = class(TClipboard{TNT-ALLOW TClipboard})
24 private
25 function GetAsWideText: WideString;
26 procedure SetAsWideText(const Value: WideString);
27 public
28 property AsWideText: WideString read GetAsWideText write SetAsWideText;
29 property AsText: WideString read GetAsWideText write SetAsWideText;
30 end;
31
32{TNT-WARN Clipboard}
33function TntClipboard: TTntClipboard;
34
35implementation
36
37{ TTntClipboard }
38
39function TTntClipboard.GetAsWideText: WideString;
40var
41 Data: THandle;
42begin
43 Open;
44 Data := GetClipboardData(CF_UNICODETEXT);
45 try
46 if Data <> 0 then
47 Result := PWideChar(GlobalLock(Data))
48 else
49 Result := '';
50 finally
51 if Data <> 0 then GlobalUnlock(Data);
52 Close;
53 end;
54 if (Data = 0) or (Result = '') then
55 Result := inherited AsText
56end;
57
58procedure TTntClipboard.SetAsWideText(const Value: WideString);
59begin
60 Open;
61 try
62 inherited AsText := Value; {Ensures ANSI compatiblity across platforms.}
63 SetBuffer(CF_UNICODETEXT, PWideChar(Value)^, (Length(Value) + 1) * SizeOf(WideChar));
64 finally
65 Close;
66 end;
67end;
68
69//------------------------------------------
70
71var
72 GTntClipboard: TTntClipboard;
73
74function TntClipboard: TTntClipboard;
75begin
76 if GTntClipboard = nil then
77 GTntClipboard := TTntClipboard.Create;
78 Result := GTntClipboard;
79end;
80
81initialization
82
83finalization
84 GTntClipboard.Free;
85
86end.
Note: See TracBrowser for help on using the repository browser.