Q:  How do I handle TEdit text with windows messages only?

A:

procedure TForm1.Button1Click(Sender: TObject);
var
  p: pChar;
  i: integer;
begin
  i := edit1.perform(wm_GetTextLength, 0, 0) + 1;
  p := AllocMem(i);
  edit1.perform(wm_GetText, i, longint(p));
  edit2.perform(wm_SetText, 0, longint(p));
  FreeMem(p, i);
end;