Could you try this experiment: Add a button to the form with this OnClick event handler:
uses
Lcltype, Lclintf, clipbrd;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
rs: RawByteString;
s: String;
begin
StringGrid1.Cells[1, 1] := 'AsText';
StringGrid1.Cells[1, 2] := 'AsHTML';
StringGrid1.Cells[1, 3] := 'Format';
StringGrid1.Cells[1, 4] := 'Raw';
SetLength(rs, 100);
Clipboard.GetTextBuf(PChar(rs), 100);
s := '';
for i:=1 to Length(rs) do
if rs[i] < #128 then
s := s + rs[i] else
s := s + '.';
StringGrid1.Cells[2, 1] := Clipboard.AsText;
StringGrid1.cells[2, 2] := Clipboard.GetAsHtml(true);
StringGrid1.Cells[2, 3] := IntToStr(PredefinedClipboardFormat(pcfText));
StringGrid1.Cells[2, 4] := s;
end;
This code pastes the text into cell (2,1), reads the clipboard format identifier used when pasting the text (cell 2,3), and displays the clipboard's raw bytes as ASCII characters in cell (2, 4). If the clipboard contains UTF8-encoded text then two or three dots should be shown in place of the "ü", "ç" and other Turkish characters. The format identifier is 13 in my case.
See my screenshot as an example when pasteing is working correctly. I copied the text to be pasted from your previous post. Please try this also, maybe Excel is doing something weird.
Cell (2,2) is pasted as HTML. Does this work for you? For me it does.
BTW, Windows7 in my VM is behaving correctly either.