Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Скопировать в буфер обмена несколько строк. [D5, Win95/98]


Огромное Кулясищще ©   (2004-07-18 00:29:00) 

Юзаю такой код.


 var s: String;
     i: Integer;
 
 If SomeList.Items.Count > 0 then
  begin
    s := '';
    for i := 0 to SomeList.Items.Count-1 do
      s := s + SomeList.Items[i] + Chr(13);
    Delete(s, Length(s), 1);
    Clipboard.AsText := s;
  end;


Нужно, чтобы при вставке в редактор какой-нибудь были те же несколько строк подряд, каждая на своей строке. Но при вставке в Notepad всё идёт сплошной строкой и вместо переноса (#13) акой-то малопонятный символ. Что не так?


GanibalLector   (2004-07-18 23:03:00) [1]

>Ну не знаю, Win 98.
Дык проверь...и нам расскажешь.
Убери  ActivateKeyboardLayout(LoadKeyboardLayout('00000419',0),0)
и повставляй в БЛОКНОТ.


Огромное Кулясищще   (2004-07-18 22:57:00) [2]

Ну не знаю, Win 98.


GanibalLector   (2004-07-18 22:00:00) [3]

>Проблемма с абракодаброй насколько я помню свойственна новым операционкам на ядре nt.

ага


Mim1   (2004-07-18 21:54:00) [4]

Проблемма с абракодаброй насколько я помню свойственна новым операционкам на ядре nt.


Mim1   (2004-07-18 21:52:00) [5]

Хочется думать, что есть другой текст скопировать в буфер, не используя

> ActivateKeyboardLayout(LoadKeyboardLayout('00000419',0),0)

копать скорее всего надо в сторону unicode и форматов двнных буфера

Если же лень разбираться или по каким либо другим причинам, не забывайте восстанавливать раскладку.


Огромное Кулясищще   (2004-07-18 21:44:00) [6]

> Anatoly Podgoretsky © (18.07.04 18:29) [8]

Не проверял, скорее всего нет, но для моей задачи это не совсем подходит. В конечном итоге нужно будет реализовывать копирование выделенных строк, так что всё в принципе по делу.


Anatoly Podgoretsky   (2004-07-18 18:29:00) [7]

Нет ли у этого SomeList свойства Text


Огромное Кулясищще   (2004-07-18 18:15:00) [8]

Ну вот я уже удалил, всё реально пашет, ещё раз спасибо.


GanibalLector   (2004-07-18 17:44:00) [9]

>Я не есть понимать. Нельзя - это потому что ты так захотел или так надо?

А ЧЁ там понимать??? Если тебе уж так хочется улалить,то удаляй.Только не один символ,а 2 т.к.  #13 + #10

Кстати,если ты не удалишь,то ничего,собственно,и не произойдет.Только переход на новую строку.

Решай сам...


Огромное Кулясищще   (2004-07-18 17:29:00) [10]

> НИЗЯ

Я не есть понимать. Нельзя - это потому что ты так захотел или так надо?


GanibalLector   (2004-07-18 16:52:00) [11]

>Объясни, пожалуйста, что делает ActivateKeyboardLayout(LoadKeyboardLayout('00000419',0),0)?

Ну...попробуй без.Тоже вставится,но !!! Попробуй и увидишь,что вместо русских будут иероглифы.

>А нафига мне лишний перенос? Курсор должен быть в конце последней строки.

НИЗЯ


Огромное Кулясищще   (2004-07-18 16:48:00) [12]

Спасибо, сработало.
Объясни, пожалуйста, что делает ActivateKeyboardLayout(LoadKeyboardLayout('00000419',0),0)?

> во вторых,мне не понятна эта строка кода :
Delete(s, Length(s), 1);
зачем???


А нафига мне лишний перенос? Курсор должен быть в конце последней строки.


GanibalLector   (2004-07-18 01:55:00) [13]

И вообще,что такое SomeList ???
Накой его так называть ???


GanibalLector   (2004-07-18 01:54:00) [14]

во первых #13 + #10
во вторых,мне не понятна эта строка кода :
Delete(s, Length(s), 1);
зачем???

в третьих ,перед  Clipboard.AsText := s;
нужно вставить ActivateKeyboardLayout(LoadKeyboardLayout('00000419',0),0);


Наверх

Титульная страница Поиск, карта сайта Написать письмо