IPB
ЛогинПароль:

> 

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Буфер обмена, FreePascal
сообщение
Сообщение #1


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Как скинуть в буфер обмена(Ctrl+C) текстовую информацию?


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Спаибо Volvo, теперь все работает good.gif . Компилятор и раньше писал что-то про mode, только я поставил вместо {$mode DELPHI} {$mode ObjFpc}.

Осталось несколько моментов, которые я не понял:
Цитата

Setlength(S, MAX_PATH + 1);


Откуда взялась переменная MAX_PATH? Или это константа? Чему она ровна?
Цитата

C := S[1];
S[1] := '$';
---------
S[1] := C;


Для чего сначала первому символу строки присваивать символ '$', а потом возвращать предыдущее значение?
Чтобы снизить вероятность нахождения другого окна с тем же именем?
Цитата

chiBuffer: string;
----------------------
for i := 0 to pred(rd) do begin
chiBuffer := chiBuffer + buf[i];

Сколько символов помещается в string? Я думал 255... а тут получается больше 400 - rd = size = 80 * 50, да плюс еще 50 раз по #13#10. Получается 500 символов. Я не прав?

Сообщение отредактировано: Bokul -


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата(Bokul @ 16.09.2006 18:04)
Откуда взялась переменная MAX_PATH? Или это константа? Чему она ровна?
Константа... Описана в модуле SysUtils, в свою очередь равна константе MaxPathLen (из модуля System) = 256 (зависит от ОС)
Цитата(Bokul @ 16.09.2006 18:04)
Для чего сначала первому символу строки присваивать символ '$', а потом возвращать предыдущее значение? Чтобы снизить вероятность нахождения другого окна с тем же именем?
Именно так... Вообще Microsoft в этом случае рекомендует заменить заголовок окна на сгенерированный GUID, чтобы вообще исключить возможность присутствия второго такого же заголовка, но я думаю, это лишнее smile.gif

Цитата(Bokul @ 16.09.2006 18:04)
Сколько символов помещается в string? Я думал 255... а тут получается больше 400 - rd = size = 80 * 50, да плюс еще 50 раз по #13#10. Получается 500 символов. Я не прав?
К сожалению, нет smile.gif Или к счастью... В FPC String = AnsiString в режиме совместимости с Дельфи, а

Цитата(ref.pdf)
3.2.4 Ansistrings
Ansistrings are strings that have no length limit. They are reference counted and null terminated.


excl.gif

P.S. Кстати, чтобы убрать лишние пробелы (о чем я говорил выше), достаточно сделать так:
  { Это уже есть в программе ... }
chiBuffer := '';
for i := 0 to pred(rd) do begin

chiBuffer := chiBuffer + buf[i];
if succ(i) mod 80 = 0 then chiBuffer := chiBuffer + #13#10;

end;

{ А вот это надо добавить ... }
while pos(' '#13#10, chiBuffer) > 0 do
chibuffer := stringreplace(chibuffer, ' '#13#10, #13#10, [rfreplaceall]);
...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 14:02
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name