Показать сообщение отдельно
Старый 03.11.2004, 19:34     # 4
LAndrew2
Full Member
 
Аватар для LAndrew2
 
Регистрация: 15.11.2002
Адрес: Moscow
Сообщения: 834

LAndrew2 Луч света в тёмном царствеLAndrew2 Луч света в тёмном царствеLAndrew2 Луч света в тёмном царствеLAndrew2 Луч света в тёмном царствеLAndrew2 Луч света в тёмном царстве
Цитата:
Опиши какими символьными типами ты пользуешься для хранения-передачи данных, и кусок кода покажи, где у тебя не получается выцепить данные правильно. ИМХО тут в типе STRING заморочка.
в буфер я копирую текст так:
Код:
Clipboard.SetTextBuf(PChar(  eBuilding.Text+#9+#9+AnsiUpperCase(cbStreetsList.Text)+#9+#9+AnsiUpperCase(cbCitiesList.Text)+#9+#9+eIndex.Text+#10#13))
соответвственно, все типы - String.
по два #9 - это так и надо, ибо надо вставлять данные в поля через 2


для проверки того, как передаются поля из Excel'a в буфер и из моей проги, использовал следующий код:
Код:
procedure TZipForm.Button2Click(Sender: TObject);
var
  MyHandle: THandle;
  TextPtr: PChar;
  MyString,S: string;
  i:Integer;
begin
  ClipBoard.Open;
try
  MyHandle := Clipboard.GetAsHandle(CF_TEXT);
  TextPtr := GlobalLock(MyHandle);
  MyString := StrPas(TextPtr);
  GlobalUnlock(MyHandle);
finally
  Clipboard.Close;
end;

 if Clipboard.HasFormat(CF_TEXT) then
  S:='';
  lFullStreet.Caption:=MyString ;
  for i:=1 to length(MyString)
  do S:=S+IntToStr(Ord(MyString[i]))+' ';
 lFullStreet.Caption:=S;

end;
анализирует содержимое буфера по нажатию клавиши, в результате в строку S передается через пробел ASCII коды того, что есть в буфере (может проблема в том, что текст в буфере НЕ надо принимать за текст?). анализ этого показывает, что моя программа и Excel передают данные в одинаковом формате... но вот другая прога (куда их вставляют) понимает их по-разному...

Цитата:
ЧересЧеловек:
'text1'+'#9'+'text2'+'#10#13'
тогда просто в буфере будет строка 'text1#9text2#10#13'

Цитата:
ЧересЧеловек:
и вставлял в офис2003
мне нужно не в офис вставлять, а в другую прогу! (офис сам пробелы или Tab заменяет на некий разделитель ячеек), мне нужно сделать такое содержимое буфера, как будто эти данные были переданы из офиса!
LAndrew2 вне форума