Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Transparent Edit

  Alt 22. Aug 2012, 10:30
Ok hat sich erledigt..
Hatte wirklich was am Kopf.
Wenn man die Messagen einer gesubclassed Edit nicht weiterleitet kann das nicht gehen.

implementation

Delphi-Quellcode:
{ TSkinEdit }

procedure TSkinEdit.ClientWndProc(var Message: TMessage);
begin
  with Message do
  begin
    case Msg of
      WM_ERASEBKGND:
        Result := EditProc(Handle, integer(Msg), Message.WParam, Message.LParam);
      WM_PAINT:
        Result := EditProc(Handle, integer(Msg), Message.WParam, Message.LParam);
      WM_GETTEXT:
        Result := EditProc(Handle, integer(Msg), Message.WParam, Message.LParam);
      WM_GETTEXTLENGTH:
        Result := EditProc(Handle, integer(Msg), Message.WParam, Message.LParam);
    end;
  end;
end;
Danke für deine Hilfe das hat mich erst darauf gebracht.
Muss jetzt noch schaun wie ich die Eingabe von Hand tätigen muss.

Also dieser abgewandelte Schnipsel geht so schon mit 2010!
Delphi-Quellcode:
function GetWindowText(WinHandle: HWND): PWideChar;
 var
   TextLength: Integer;
   Text: PWideChar;
 begin
   Result := '';
   if wnd = 0 then
     Exit;
   TextLength := SendMessageW(WinHandle, WM_GETTEXTLENGTH, 0, 0);
   if TextLength <> 0 then
   begin
     GetMem(Text, sizeof(Text) + 1);
     SendMessageW(wnd, WM_GETTEXT, TextLength + 1, Integer(Text));
     Result := Text;
     FreeMem(Text);
   end;
 end;
Zitat:
sollte es also PChar heißen
PChar wird automatisch nach PWideChar gecastet warum dann nicht direkt?


gruss

Geändert von EWeiss (11. Jul 2019 um 16:41 Uhr)
  Mit Zitat antworten Zitat