PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » PureBasic для Windows » Quotation - цитатник


Quotation - цитатник

Сообщений 1 страница 30 из 45

1

Quotation - цитатник

Скачать: yandex upload.ee
(на яндексе версия новей, так как легче обновлять)

https://i.imgur.com/agzFbP3.png

Назначение
Быстро сохраняет выделенные тексты.

Использование
1. Запуск проги, иконка будет в трее, создаётся файл TXT возле исполняемого EXE для сохранения цитат.
2.  Выделяем текст и жмём Ctrl+J, можно переназначить на другую клавишу, при этом текст пишется в конец TXT-файла с указанием даты и времени.
3. ini-файл создаётся в "AppData\Roaming". Если его создать в папке программы, то будет использоваться он и не создастся в "AppData\Roaming".

Обновления
Добавлен второй режим сохранения и выбор в какой раздел сохранять (на данный момент обязателен Preview = 1)

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

Отредактировано AZJIO (07.03.2025 05:19:30)

0

2

не знаю зачем это нужно, но тебе наверно надо
писать в конец очень просто, но очень неудобно потом читать, надо в начало добавлять
посмотри не множатся ли у тебя в конце пустые строки

0

3

newJS написал(а):

не знаю зачем это нужно, но тебе наверно надо

http://forum.ru-board.com/topic.cgi?for … rt=3040#13

newJS написал(а):

посмотри не множатся ли у тебя в конце пустые строки

разделитель задаётся в ini-файле.

newJS написал(а):

писать в конец очень просто, но очень неудобно потом читать, надо в начало добавлять

если просто, не значит что надо делать наоборот. В начало файла писать это переписывать файл каждый раз. Была идея в отдельные файлы писать, как я у себя куски кода по папкам "2022.08" раскладываю и т.д.

0

4

AZJIO написал(а):

В начало файла писать это переписывать файл каждый раз.

ну да, зато ты видишь последнее, а не старое, а к новому ещё прокручивать надо, неудобно же
что за проблема добавлять в начало

AZJIO написал(а):

разделитель задаётся в ini-файле.

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

0

5

newJS написал(а):

пустые строки образуются от многократного переписывания файла

Можешь объяснить как? PureBasic не пишет в файл что-либо самостоятельно. Сколько я задал переносов строк в разделителе, столько и запишет, не больше и не меньше. Сама команда записывает один перенос. Возможно ты писал пустые строки, а функция на каждый вызов заканчивает переносом строки и поэтому туда записалось куча переносов, а у меня то не так, если отказался делать запись, то пустой вызов не происходит, а только когда согласился.

Я ещё не выкладывал, но уже исходник увеличился в полтора раза. Сделал окно предпросмотра с ListViewGadget для выбора типа сохранения, сейчас прописываю режим сохранения отдельных файлов в папку заданную в FormatDate(), так что вроде получается то что я хотел.

0

6

По поводу кода. Я бы этот фрагмент оформил бы в виде структуры

Код:
Global ini_PathQuoteTxt$ = GetPathPart(ProgramFilename()) + GetFilePart(ProgramFilename(), #PB_FileSystem_NoExtension) + ".txt"
Global ini_HotkeyCode.l = 586
Global ini_MaxSize.l = 500
Global ini_Preview = 1
Global ini_Clipboard = 0
Global ini_Separator$ = "\n\n=== %d %t ====\n\n"

Будет только одна глобальная переменная-экземпляр структуры - ini.

Код:
Structure ini
  PathQuoteTxt$
  HotkeyCode.l
  MaxSize.i
  Preview.i
  Clipboard.i
  Separator$
EndStructure

Global gIni.ini

Потому что как известно чем меньше глобальных переменных тем лучше.

Код:
hHotkey = CreateWindowEx_(0, #HOTKEY_CLASS, 0, #WS_CHILD | #WS_VISIBLE | #WS_TABSTOP, 10, 10, 200, 25, hWnd_0, 0, 0, 0)

В PB есть ShortcutGadget.

Код:
If OpenWindow(0, 0, 0, 240, 70, "ShortcutGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ShortcutGadget(0, 20, 20, 200, 25, #PB_Shortcut_Control | #PB_Shortcut_A)
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
  EndIf

При клике по пункту меню "Показать настройки" окно не появляется. Нужно в обработчик меню #mShow добавить

Код:
HideWindow(#WindowSet, #False)

0

7

Обновление
Добавлено изменение размера окна предпросмотра
Добавлен пункт "Открыть в ini"
Добавлен цвет в ini-файл
Добавлено закрытие окна после "Применить" хоткей, а также показ реального хоткея из ini-файла
"Enter" - применить выбор если фокус в списке (в предпросмотре)
"Esc" - отменить сохранение (в предпросмотре) и "закрыть" окно.

У кого не работает, обновить ini (удалить или взять из \Source\sample.ini). Имя файла сохранения зависит от имени EXE-файла (x86 и x64 из-за префикса не будут работать в один файл)

Пётр написал(а):

В PB есть ShortcutGadget.

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

Пётр написал(а):

Нужно в обработчик меню #mShow добавить

там было по-другому и у меня работало

Код:
SetWindowState(#WindowSet, #PB_Window_Normal)

но сделал HideWindow(), тем более он у меня везде по коду.

Пётр написал(а):

Я бы этот фрагмент оформил бы в виде структуры

Всё ни как не могу привыкнут и пишу по старому. Наверно надо будет переделать.

Отредактировано AZJIO (21.08.2022 19:33:04)

0

8

AZJIO написал(а):

Всё ни как не могу привыкнуть и пишу по старому

Для небольших программ это не столь важно и можно оставить как есть, но по мере увеличения объема кода (или его повторного использования в других программах), глобальные переменные могут добавить сложностей.

0

9

Обновление
Добавлен параметр "Signal = ", чтобы воспроизводить звук при успешной записи, полезно при Preview = 0, когда можно недонажать хоткей и не знать об отсутствии записи.
Добавил справку - chm-файл
Добавлен параметр "bom = ", для указания добавлять ли метку BOM.
Добавлен параметр "wstr = ", для указания кодировки файла сохранения, по умолчанию UTF-8.
Добавлен параметр "separator = ", для индивидуального выбора.
Добавлен параметр "edit = ", позволяющий править фрагмент в окне предпросмотра.
Добавлен параметр "genname = 1", который в режиме mode=2 генерирует имя файла из даты (1) или индекса (2). При 0 (запрос, по умолчанию) добавлен проверка что файл не существует, иначе добавляет суффикс-индек "_1", "_2" и т.д.

Отредактировано AZJIO (22.08.2022 18:32:15)

0

10

Добавил для Linux. Но проблема с горячей клавишей, пример с X11 не завёлся. Функция событий горячих клавиш приостанавливает основной цикл и не даёт окну работать. Пришлось переписать в стиле однократного запуска. Клавиша вешается на прогу в DE, то есть запускает её рабочий стол.

0

11

За файлы в Roaming я бы убивал - итак мусора хватает.
Было бы интересно посмотреть на список цитат.

0

12

egons написал(а):

За файлы в Roaming я бы убивал - итак мусора хватает.

удали папку, создай файл-ссылку с направлением в корзину и скрипт для очистки корзины при загрузке ОС и при выгрузке. Или сделай файл и дай права чтобы файл был не доступен, пускай проги получают отлуп. Вот и все дела, без высказываний, всё в твоих руках. Но система так сделана, что в программной папке не даст сохранить файл, а людям твои проги не будут нужны если они не работают.

В контексте моей проги положи конфиг рядом с прогой и рабочей папкой станет папка проги, как-то так.

Смотри как всё просто

Код:
;- ini
Global PathConfig$ = GetPathPart(ProgramFilename())
Global ini$
If FileSize(PathConfig$ + "Quotation.ini") < 0
	PathConfig$ = GetHomeDirectory() + "AppData\Roaming\Quotation\"
EndIf
ini$ = PathConfig$ + "Quotation.ini"

Если файл не найден, то рабочей папкой становится виндовая папка для конфигов ну и далее по коду там создаётся ini-файл.
Если что по этой системе работают ВСЕ мои проги.

Отредактировано AZJIO (05.03.2025 19:39:58)

0

13

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

0

14

Пётр
1. Я сталкивался что чел ложит прогу в "C:\Program Files", а потом пишет "твоя прога не работает".
2. Так же как бывший любитель LiveCD, должен быть готов к тому, что источник запуска DVD или флешка с запретом на запись, но они создают папки конфигов на рам-диске, то есть невозможность писать в место откуда прога запущена не должна делать прогу нерабочей.
3. Есть куча прог, которые либо предупреждают или предлагают "готовы ли вы удалить папки конфигурации", а есть те, которые тупо удаляют только файлы созданные на момент инсталляции и никогда не удалят файлы созданные прогой после.
4. Ну с чего мне трястить за папку Roaming? Я сам когда занимаюсь чисткой от проги первым делом смотрю есть ли одноимённая папка в Roaming, для меня это как часы. Я постоянно делаю копию конфига PureBasic в Roaming, постоянно чищу там кэш от браузера, телеграм и ватсап там может хранить гигабайты и никому об этом не говорить, а чистка кеша это не та зона, там уже куки, он уже в папке куков хранит гигабайты и мне проще удалять их сканируя по размеру, а не по имени в настройках куков, прога Scanner сразу выдаст топ да удаления, да они там уже и называются моргом (имя папки), можно было бы назвать их "удали". Восстанавливаю конфиги Qtranslate, проверяю/обновляю свои проги лежащие там, у меня в проге SaveFolder (для прыжка в избранные папки) эта папка в приоритете в разделе Windows. Авторы Windows сделали эту папку специально для конфигов, любая прога должна хранить конфиги именно там, если это не так то у авторов проблемы. У линукс аналогичная папка ".config". Ну нет у системщиков такой концепции, чтобы хранить всё в одной куче. Тем более, что если автор удалить прогу, то очевидно что конфиги раздельно, то есть если чел передумает и пожалеет что удалил прогу и восстановит её, то она подхватит конфиги и будет с теми же настройками.
5. Предполагаю, что кто-то на работе использует и не хочет доступа от посторонних, но даже если вы уговорите меня, тем более я указал как работает мои проги, то всё равно не уговорить всех авторов, проще принять что проги всегда будут использовать Roaming.

0

15

AZJIO написал(а):

Я сталкивался что чел ложит прогу в "C:\Program Files"

Туда вручную не следует помещать приложения. Для этого есть инсталляторы.
В программе нужно проверять удалось ли открыть файл для записи. Если нет, сообщать об этом пользователю и предлагать сохранить в другом месте. В дальнейшем, найдя там файл программы молча его использовать. Это будет компромиссом в данной ситуации.
А еще в PB есть возможность включить перенаправление файлов.

Требовать режим Пользователя в Windows Vista и выше (только Windows)
Эта опция отключает возможность "Виртуализации" этого исполняемого файла на Windows Vista и выше. Виртуализация заставляет обращения к файлам и к реестру перенаправляться в специальный пользовательский каталог, если пользователь не имеет требуемых прав для выполнения операции. (это сделано для совместимости со старыми программами)
Учтите, что это перенаправление делается без уведомления пользователя, что может привести к некоторому замешательству, если он попытается найти сохранённые файлы в файловой системе. Из-за этого рекомендуется выключить эту возможность если программа соответствует правилам доступа к файлам/реестру Windows Vista и выше.

Примечание: Эта опция ни на что не влияет, если программа выполняется в другой версии Windows. Её невозможно сочетать с упомянутой выше опцией "Режим Администратора".

AZJIO написал(а):

Ну с чего мне трястить за папку Roaming?

На своем компе не нужно. Но если распространяете приложение, оно не должно "мусорить" на дисках. Может его запустят всего лишь раз и все.
В таком случае лучше приложение устанавливать инсталлятором, а деинсталлятор очищал комп от файлов и записей в реестре.

AZJIO написал(а):

кэш от браузера, телеграм и ватсап там может хранить гигабайты и никому об этом не говорить

Их нужно перенести на RAM диск. Меньше мусора и SSD дольше прослужит.

0

16

Пётр написал(а):

оно не должно "мусорить" на дисках

МС это так не называет. Да и не видел я ни одной проги, чтобы просила "можно мы создадим что-то в Roaming" (или что-то другое но одинаковое по смыслу), вот прям совсем ни разу. Просто устанавливает туда конфиги как само собой разумеющееся. Хотя видел выбор "Портабле или установка".
То что я не создаю инсталлятор не является тем что прога не должна хранить настройки в Roaming. Я могу создать инсталлятор, но просто лень. Если бы было что-то выдающееся что пользователи устанавливали бы мою прогу каждый день, то да, я бы сделал. А сейчас их на пальцах можно счесть и каждому могу объяснить как что работает. Да и ни разу никто по этому поводу претензии не предъявлял.
Так же наличие конфига часто говорит о том что где то есть файл и я часто делаю пункт меню чтобы открыть его и очевидно что путь в заголовке редактора покажет где он. Так что нет случая, когда бы что-то создалось и это осталось тайной и пользователь бы остался в расплохе.
Хотя я могу при создании первого конфига предложить создать его в папке файла. Тут тоже есть минус, скачаешь прогу в download, запустишь, а она по тихому создаст в папке download 4 папки и 10 файлов, а там было уже 100 папок и 1000 файлов и думашь вотжеж, сортируешь по дате и удаляешь, думаешь хорошо хоть могу вывести, а то бы искал этот мусор среди 1000 файлов.

Пётр написал(а):

Их нужно перенести на RAM диск

каким образом? То есть при перезагрузке всё потеряется? Вообще там есть данные о регистрации и я понимаю что ватсап сразу же скажет активируй доступ с телефона. Удаляя можно удалить все папки, а можно только контент. Если только контент, то ничего не будет, а если всё удалить то это же каждый раз делать вход в аккаунт на каждый сайт в браузере.

Отредактировано AZJIO (06.03.2025 03:29:41)

0

17

AZJIO написал(а):

удали папку, создай файл-ссылку с направлением в корзину и скрипт для очистки корзины при загрузке ОС и при выгрузке. Или сделай файл и дай права чтобы файл был не доступен, пускай проги получают отлуп. Вот и все дела, без высказываний, всё в твоих руках. Но система так сделана, что в программной папке не даст сохранить файл, а людям твои проги не будут нужны если они не работают.

поучи меня, как с вендой обращаться, да.

0

18

Если знаешь ответ, зачем спрашивал?

0

19

В виду того что при переработки версии для линукс было добавлено несколько полезных вещей, то перенёс их для Windows версии.

Есть сообщение на старте где создавать конфиг.
Добавлены пункты меню чтобы открыть файл цитат и рабочую папку цитат и справку.
В конфиг добавлены параметры:
SelLst - сохранить выбор
Editor - в чём открывать файл цитат. Если не указан, то берётся прога ассоциациированная с txt.
fm - чем открывать папку цитат (explorer)
run = 1 при сохранении фрагментов кода открывать их в редакторе. Кто знает, может кто будет выделять код на форуме и хоткеем сразу сохранять и открывать в IDE.

0

20

AZJIO написал(а):

Да и не видел я ни одной проги, чтобы просила "можно мы создадим что-то в Roaming"

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

AZJIO написал(а):

каким образом? То есть при перезагрузке всё потеряется? Вообще там есть данные о регистрации и я понимаю что ватсап сразу же скажет активируй доступ с телефона.

Запуск с вводом регистрационных данных осуществляется как обычно, а последующие в песочнице расположенной на RAM диске. К существующим файлам на диске прога получит доступ в режиме только чтение. Все записи перенаправятся в папку песочницы. Браузеры, телеграмм и многие другие приложения нормально работают, а на диске мусора гораздо меньше!

0

21

Пётр написал(а):

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

AZJIO, Пётр прав, так и должно быть
И за проверку Пётр правильно сказал, матюкнись если не записалось, и предложи на винт переложить

у меня отдельная папка и она не на диске с виндой, куда все портабле ложу
напиши маленький файлик сопроводиловку с разъяснением этого момента

кому нужна такая портабля которая мусорит где не попадя для пользователя

у меня не запустилось на 7х86, ругается на какую то горячую клавишу

Отредактировано newJS (06.03.2025 17:40:16)

0

22

newJS написал(а):

напиши маленький файлик сопроводиловку с разъяснением этого момента

Запусти regshot, отсканируй hdd и реестр, установи прогу, отсканируй второй снимок, выполни сравнение и получишь сопроводиловку.
Всё равно то что я пишу никто не читает, вот прям всё что написано в CHM обязательно надо спросить у автора лично.

newJS написал(а):

кому нужна такая портабля которая мусорит где не попадя для пользователя

MS против того чтобы Roaming назвать "где не попадя". Причём это одно место, а не множество.

newJS написал(а):

у меня не запустилось на 7х86, ругается на какую то горячую клавишу

В трее нажми "Настройки" и задай другой хоткей.

Отредактировано AZJIO (06.03.2025 19:32:13)

0

23

AZJIO написал(а):

Если знаешь ответ, зачем спрашивал?

Выглядит не как программа, а тренажер юзверя. Ты думаешь о себе, а не об остальных.

0

24

Добавил Faq в справку.

Добавление сообщения куда сохранять Quotation.ini ломает мою концепцию многоязычной программы, т.е. я не могу применить язык до чтения ini-файла, так как флаг "принудительный язык" используется после прочтения ini-файла. Мне остаётся только сделать сокращённый текст, указав в заголовке "Portable?", а в тексте "Quotation.ini ≠ %AppData%?

Отредактировано AZJIO (07.03.2025 03:48:33)

0

25

Только сейчас нашел косяк в своей программе. Из-за того, что в ярлыке не задана текущая папка, .ini не читался. Исправимо.

0

26

egons написал(а):

нашел косяк в своей программе. Из-за того, что в ярлыке не задана текущая папка, .ini не читался.

Добавь в код принудительная текущая директория.
SetCurrentDirectory(GetPathPart(ProgramFilename()))
Тогда внешние ярлыки или батники не смогут изменить это. А также если прога будет запущена как инструмент из редактора, то есть как дочерняя, то корневая папка этого редактора не станет текущей для твоей проги. То есть сразу всех зайцев убьёшь, а не одного.

0

27

AZJIO написал(а):

Добавь в код принудительная текущая директория.
SetCurrentDirectory(GetPathPart(ProgramFilename()))

Я думал о другом пути - функция winAPI GetModuleFileName_()

0

28

AZJIO написал(а):

т.е. я не могу применить язык до чтения ini-файла, так как флаг "принудительный язык" используется после прочтения ini-файла.

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

AZJIO написал(а):

В трее нажми "Настройки" и задай другой хоткей.

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

egons написал(а):

Выглядит не как программа, а тренажер юзверя. Ты думаешь о себе, а не об остальных.

с товарищем полностью согласен

AZJIO ты на выходе перезаписываешь ини когда этого не требуется и этим создаёшь себе проблемы
зачем бессмысленно его перезаписывать???
у тебя руки отвалятся проверить надо или не надо сохранять

AZJIO написал(а):

MS против того чтобы Roaming назвать "где не попадя". Причём это одно место, а не множество

тебе про фому а ты про ерёму

0

29

egons написал(а):

Я думал о другом пути - функция winAPI GetModuleFileName_()

Чтобы получить ту же ProgramFilename()?

Код:
      push	ebx
      push	esi
      push	edi
      push	[esp+10h]
      mov	ebx,00000104h
      push	ebx
      call	SUB_L004022B0
      push	ebx
      mov	edi,eax
      push	edi
      push	[L00404198]
      call	[KERNEL32.dll!GetModuleFileNameW] ; <--------
      push	SWC00403000_____
      push	edi
      mov	esi,eax
      call	jmp_MSVCRT.dll!wcscmp
      pop	ecx
      pop	ecx
      test	eax,eax
      jnz	L004020D3
      lea	ecx,[FFFFFFF8h+esi*2]
      push	ecx
      lea	eax,[edi+08h]
      push	eax
      push	edi
      call	jmp_MSVCRT.dll!memmove
      add	esp,0000000Ch
      sub	esi,00000004h
 L004020D3:
      sub	ebx,esi
      push	ebx
      call	SUB_L00402380
      xor	eax,eax
      mov	[edi+esi*2],ax
      pop	edi
      pop	esi
      pop	ebx
      retn	0004h

0

30

Пётр написал(а):

Чтобы получить ту же ProgramFilename()?

Там так всё очевидно, что даже пост писать лень. Заменять кроссплатформенную функцию WinAPI рука не поднимается.

newJS написал(а):

когда прочтётся ini и прочтётся сохранённый язык

Диалог до прочтения ini. Флаг мною используемый не требует на пост-советсвом пространстве создавать языковой файл. Это классная фишка. В исходнике изначально 2 языка, колониальный и родной. Я бы оставил только родной, но мы же на международном уровне  :D

newJS написал(а):

чел может построчно делать сам себе перевод

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

newJS написал(а):

портабля должна запуститься, а не морочить людям голову,

на самом деле не должна. Так то она запускается, если она есть в трее, но если имеется ввиду запуститься сразу рабочей, и как это предлагается сделать? Автоматически назначить другую горячую клавишу, на которую пользователь не согласен? Или убить прогу, которая заняла горячую клавишу? Как ты себе это представляешь?

newJS написал(а):

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

Сейчас пойду поплачу. Серьёзно? Тут надо изначально настраивать себя что никто качать не будет, а то разочарование быстро настигнет.

newJS написал(а):

egons написал(а):

    Выглядит не как программа, а тренажер юзверя. Ты думаешь о себе, а не об остальных.

с товарищем полностью согласен

А я не понял смысл слов первого предложения. А то что я о себе думаю, так это так все сейчас делают. Я на оф. форуме много хотелок описываю, что-то никто сломя голову, теряя тапки не собирается исполнять мои пожелания.

newJS написал(а):

AZJIO ты на выходе перезаписываешь ини когда этого не требуется и этим создаёшь себе проблемы
зачем бессмысленно его перезаписывать???

С чего вдруг? Код говорит о том что перезаписывает только когда требуется.

newJS написал(а):

у тебя руки отвалятся проверить надо или не надо сохранять

проверяется и достаточно просто. Если изменился выбор на выходе, то он и сохраняется. А если учесть что прога по типу автозагрузки, то сохраняется раз в день (при выключении компа). Хотя не уверен, получит ли прога команду выхода и сделает сохранение сама, надо проверять. Если при выходе пользователю будет выдано сообщение, что незакрыты проги и хотите ли закрыть их принудительно, то скорее даже и не запишет.

newJS написал(а):

тебе про фому а ты про ерёму

Я раньше тоже после WinXP, где доступ был на запись доступен, был не согласен, чтобы принудительно хранить настройки в Roaming. Винда перестала позволять сохранять в "Program Files" и бороться с этим бесполезно. Все проги сейчас пишут в "Roaming". Если кто фанат портативных, я не против, при условии что не страдают те, кому на портативки ровно. Я же не обзваниваю всех кто пишет в Roaming с критикой, да им на меня плевать будет. Да и вообще если хочешь поломать человека через колено у тебя должны быть рычаги влияния, в противном случае остаётся только попросить. И при этом предложить такой вариант, который бы не ущемлял автора проги. С чего вдруг я пойду против своих убеждений? И что я тоже должен бегать по форумам убеждать в чём-то? Не благодарная эта работа, борьба с ветряными мельницами, люди всё равно будут делать как им нравится. Я уже сказал, что у меня тоже полно хотелок, но на оф.форуме всем на это ровно, надо это принять. Можно один раз спросить, если чел не хочет, то замолчать. В любом случае сам можешь править код по своей концепции.

0


Вы здесь » PureBasic - форум » PureBasic для Windows » Quotation - цитатник