Einzelnen Beitrag anzeigen

Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#1

GlobalLock und Unicode

  Alt 2. Jan 2012, 20:45
Erst mal frohes neues Jahr

Habe dieses von den Kollegen aus der Schweiz

http://www.swissdelphicenter.ch/de/showcode.php?id=1403

Code:
procedure TMyDBRichEdit.WMPaste(var Message: TMessage);
var
  Accept: Boolean;
  Handle: THandle;
  CText: string;
  LText: string;
  AText: string;
begin
  if FPreventPaste then
    Exit;
  if IsClipboardFormatAvailable(CF_TEXT) then
  begin
    try
      OpenClipBoard(Self.Handle);
      Handle := GetClipboardData(CF_TEXT);
      if Handle = 0 then
        Exit;
      CText := StrPas(GlobalLock(Handle)); // Hier meckert er
      GlobalUnlock(Handle);
      Accept := True;
      if Assigned(FOnPaste) then
        FOnPaste(Self, CText, Accept);
      if not Accept then
        Exit;
      LText := '';
      if SelStart > 0 then
        LText := Copy(Text, 1, SelStart);
      LText := LText + CText;
      AText := '';
      if (SelStart + 1) < Length(Text) then
        AText := Copy(Text, SelStart + SelLength + 1, Length(Text) - SelStart + SelLength + 1);
      Text := LText + AText;
    finally
      CloseClipBoard;
    end;
  end;
end;
Habe versucht diese Procedure zu verwenden nun habe ich diesen Fehler
Zitat:
[DCC Fehler] MyDBRichEdit.pas(58): E2251 Doppeldeutiger überladener Aufruf von 'StrPas'
SysUtils.pas(9705): Verwandte Methode: function StrPas(const PAnsiChar): AnsiString;
SysUtils.pas(9710): Verwandte Methode: function StrPas(const PWideChar): string;
Hat jemand eine Idee wie man das Unicode korrekt löst
Martin MIchael
  Mit Zitat antworten Zitat