Ru-Board.club
← Вернуться в раздел «Программы»

» Mark - небольшой удобный редактор

Автор: OdesitVadim
Дата сообщения: 12.04.2006 19:53

Цитата:
ИМХО, лучше "2 in 1", чтобы не нагромождать плагинов.

Это можно. Автоопределение тоже добавить.

Цитата:
С каким запросом? Подробнее как это будет выглядеть? )

А типа как в рутеплай. Вызываеш плагин, появляется окошко с запросов как конвертируем (транслит->рус,транслит->укр и наоборот. Всё таки я Украинец.) и что - выделеный текст, всё или буфер обмена. После декодирования (а можно сразу, тут же) "Как выдать результат" заменить выделеный текст, дописать, в новом окне, просто в мессаге отобразить, в буфер обмена.
А визуально будет выглядеть как пара комбобоксов и кнопки. Мне кажеться таоке будет решать все проблемы.

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

Добавлено:
да, забыл сказать, правил транслитерации есть много типов, поэтому может быть ещё окошко выбора "как" (оно может быть совмещенно с выбором направления)
Автор: Harrier
Дата сообщения: 12.04.2006 20:08
OdesitVadim

А может сделаешь две версии плагина русский и с поддержкой украинского отдельно? Кому какой нужен пусть такой и качают, чтобы не перегружать плагин опциями, не всем же они нужны.
Автор: vitaly1
Дата сообщения: 12.04.2006 21:17
OdesitVadim
Да, поддержка украинского - это было бы здорово
Автор: zep
Дата сообщения: 12.04.2006 23:01
vito333

Цитата:
создай папку Plugins_

Пора уже в шапку добавлять.

При захвате буфера обмена между копируемыми частями остается пустая строка. А нельзя ли добавить возможность удалять эти строчки?
Автор: vito333
Дата сообщения: 13.04.2006 00:30
zep
это сделано было сознательно, как разграничитель.
Можно убрать. Лучше конечно было бы настраивать, но пока настройки нет, так что или с разгрничителем, или без.
Автор: zep
Дата сообщения: 13.04.2006 00:39
vito333

Цитата:
пока настройки нет

Буду надеяться, что пока
Ситуации разные бывают, оба варианта нужны.
Автор: ShIvADeSt
Дата сообщения: 13.04.2006 01:24
OdesitVadim

Цитата:
ShIvADeSt, не в обиду будет ему сказано, демонстрирует типичное для рынка решение - побыстрей выбросить продукт, потом можно напильником доделовать.
Да, его плагин ещё на буковке j пучит.

Без обид, просто для транслита использует каждый свои правила - кстати windows нет такого слова при транслите руслите в связи с тем, что буква w никакую букву русского языка не заменяет (букву ш всегда использлвал sh) аналогично 4 не видел чтобы ее вместо ч использовали то в таблице не фигурируют. Нет единообразной таблицы транслита, поэтому делал сам согласовываясь с бредом и своими познаниями, как никак бред писал фидошник, а они вроде транслит придумали, поэтому считаю его таблицу транслита правильной. Все остальные модификации, такие как 4 (кстати еще трактуется как А, 3 как е), и прочие не учитывал в связи с отходом от стандартов.

Цитата:
yo-moje

в этом слове буква Ё записана 2 способами, что не есть верно для алфавита неоднозначное соответствие получается. Ну это уже мелочи. Если сделаешь правильную транслитерацию с поддержкой всех вариаций, то респект.
Подсказка детект в какую сторону переводить реализовал фонарно, но тем не менее работает, считаю сколько русских букв в первых н символах строки и если больше половины, то транслит иначе руслит, можно весь текст анализировать, но обычно народ не извращается с набором начала текста на англ языке.
Автор: zep
Дата сообщения: 13.04.2006 01:59

Цитата:
Нет единообразной таблицы транслита

В программе Shtirlitz можно выбирать аж из десяти штук
Автор: ALeXkRU
Дата сообщения: 13.04.2006 02:12
zep
02:59 13-04-2006
Цитата:
В программе Shtirlitz можно выбирать аж из десяти шту

ага.. а еще можно добавлять свои, использовать совместно
Автор: OdesitVadim
Дата сообщения: 13.04.2006 12:16
Улучшил немного плагин. Стал декодировать тексты, взятые с различных форумов практически идеально (читается непринуждённо). Плагин делает анализ на основании особенностей русского языка и подменяет буковки так, чтобы "было по правилам".
Правда некоторые "извращенства" я не собираюсь поддерживать, так как это превратиться в "бред" в прямом смысле слова. К примеру вот текст, который пришёл мне в смс от одной знакомой

Цитата:

BADIM, 3AYDI CEГОDHR

(на некоторых телефонах есть буковка Г, а также Д в виде греческой дельты)
Прочитать текст можно, но декодировать

Думаю добавить проверку на некоторые слова, которые не нужно декодировать - Borland, Microsoft...
сейчас сайтик настрою и выложу ссылку, то на рапиду вылаживать как то некраиво
Автор: vito333
Дата сообщения: 13.04.2006 14:52
сейчас думаю, как хоткеи на плагины сделать, так вот вопрос - какие по умолчанию хоткеи на плагины сделать? напоминаю, плагинов м.б. до 20
Автор: OdesitVadim
Дата сообщения: 13.04.2006 15:15
vito333
Вариат А) Плагин сам с помощью спец.функции регит себе горячую клавишу.
Вариант Б) Делаем окошко, в котором перечислен список плагинов. Сбоку кнопки "Удалить плагин", "Настройка", окошко для ввода хоткея. Двойной клик по плагину - вызывается окно растроек плагина (эта функциональность уже заложена в Mark).

Добавлено:
Наконец сделал маленький сайтик по плагинам. http://www.midav.land.ru/
Ох и намучился я с этим почта.ру. Упорно пытаются засунуть свой банер, в конец добавляют кучу кода для защиты банера. Но мы лёгких путей не ищем, "обошли". В кавычках, потому что это произошло случайно. Вначале хотел добиться, чтобы он нормально отображался,но он упорно сопротивлялся. Теперь в Opera и FireFox всё нормально, кроме того, что под менюшкой выдны остатки банера. В Explorer ещё выпадающий список посредь екрана....
Автор: vito333
Дата сообщения: 13.04.2006 16:26
исправь "О мне" на "Обо мне"

Добавлено:
дизайн приятный - простой и наглядный, мне нравится.
Автор: OdesitVadim
Дата сообщения: 13.04.2006 16:55
Исправился. Если с чем-то не согласен или есть предложения - пиши в ПМ.
Shivadest и другие, кто напишет плагины. Если вы хотите, чтобы я добавил их на сайт - стучитесь в ПМ.
Автор: ShIvADeSt
Дата сообщения: 14.04.2006 01:19

Цитата:
сейчас думаю, как хоткеи на плагины сделать, так вот вопрос - какие по умолчанию хоткеи на плагины сделать? напоминаю, плагинов м.б. до 20

добавляется след функция прототип
function GetHotKey(WndHandle:HWND; var HKAtom:LPWSTR):DWORD;cdecl;
begin
Result:=0; // если не нужна горячка иначе 1
HKAtom:='MyCoolPlugin';
RegisterHotKey(WndHandle,GlobalAddAtom(HKAtom),MOD_CONTROL,VK_F10);
// мы добавили Атом для того чтобы можно было зарегить горячку, если результ=1
кстати в этом случае горячка будет общесистемная, то есть по всей винде, если вместо хэндла сделать ноль и еще лучше регистрацию горячек засунуть в сам марк, то будет локальный хоткей.
end;

итак горячка зарегена, теперь по атому мы делаем сопоставление реального плагина и атома, чтобы знать какой плагин вызывть
то есть Атом1 - плагин 1 и так далее
в основной функции марка в сообщении WM_HOTKEY:
делается по циклу проверка всех атомов, которые зарегили плагины
if wParam=GlobalFindAtom(HKAtom) then вызываем соотв плагин, HKAtom перебираем из нашей таблицы атомов, которую заполняем при вызове каждого плагина.

Думаю идея понятна, реализация достаточно проста, немного кода и у нас уже есть плагины, которые реагируют на свои горячки.
Автор: OdesitVadim
Дата сообщения: 14.04.2006 10:36
А что будет, если два плагина попытаются зарегить одну и ту же горячую клавишу? И каждий с них (плагин или разработчик) будет уверен, что это именно та клавиша, что нужно? Бардак!
Предлагаю, что бы плагин "рекомендовал" клавишу, а уже пользователь с марка розруливал в случае чего. А то программисту кажеться, что здесь будет удобна такая-то клавиша, а на самом деле совсем другая.

Цитата:
напоминаю, плагинов м.б. до 20

Так поделим плагины на группы. Группы могут быть следующие "Правка", "Выделеный текст" (сюда оба мои плагина попадают), "Файл" (сюда попадут плагины, которые смогут открывать нестандартные файлы и препросмотр) ну и "Разное" - если плагин не определился (автоматом старые плагины попадают сюда).
Мне кажеться, так будет интуитивно понятно. Группы плагинов не даром совпадают с названиями пунктов меню - их туда и стоит помещать. Получиться, что пользователь даже не будет знать, плагин это или внутреняя функция. Каждый сможет собрать себе необходимую конфигурацию.
Для реализации этого дела, необходимо ввести только одну функцию, которая будет возвращать некое число, которе определяет категорию
Автор: vito333
Дата сообщения: 14.04.2006 11:51
насчёт разнесения плагинов по соответствующим пунктам меню - интересная мысль, только она имеет смысл когда плагинов будет какое-то немалое количество, например более 10. И я не думаю, что надо их равнять с обычными пунктами меню, наверное есть смысл создать в каждом подменю подпункт с плагинами. Так что пока пусть плагины полежат в одной кучке
Автор: OdesitVadim
Дата сообщения: 14.04.2006 11:58
vito333

Цитата:
например более 10

Это мы уж постараемся
Можно их отрисовывать немного другим цветом.
Автор: EagleXK
Дата сообщения: 14.04.2006 16:51
Вот, попытался написать плагин, который заменяет английскую раскладку на русскую и наоборот. Даже это не получилось:


Цитата:

library ChangeKeyboardLayout;

uses
Windows, SysUtils;

function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
Directory: PChar; ShowCmd: Integer): HINST; stdcall; external 'Shell32.dll' name 'ShellExecuteA';


function Init(hWndMain,hClientWnd:HWND;lpReserved:DWORD;lpParam:Pointer):DWORD;cdecl;
begin
Result:=1;
end;

function PluginName:LPWSTR;cdecl;
begin
Result:='Change Keyboard Layout Plugin';
end;


function MenuItemName:LPWSTR;cdecl;
begin
Result:='Change Keyboard Layout';
end;

function MenuItemNameRus:LPWSTR;cdecl;
begin
Result:='Изменить раскладку клавиатуры';
end;

const
EM_GETSEL: Word = $B0;
EM_SETSEL: Word = $B1;
EM_REPLACESEL: Word = $C2;
EM_GETSELTEXT: Word = $400 + 62;


function DoMyJob(hWndMain,hClientWnd,hActiveRtfWnd:HWND;lpReserved:DWORD;lpParam:Pointer):DWORD;cdecl;
var
SelStart, SelEnd, SelLen: Integer;
Selection: array of WideChar;
begin
Result:=0;

        SendMessage(hActiveRtfWnd, EM_GETSEL, wParam(LPDWORD(@SelStart)), lParam(LPDWORD(@SelEnd)));
        if SelStart = SelEnd then Exit;

SelLen := SelEnd - SelStart;
if SelLen < 0 then SelLen := -SelLen;

SetLength(Selection, SelLen + 2);
ZeroMemory(Selection, (SelLen + 2) * SizeOf(WideChar));

SendMessage(hActiveRtfWnd, EM_GETSELTEXT, 0, lParam(Selection));
{DEBUG}SendMessage(hActiveRtfWnd, EM_SETSEL, wParam(SelStart), lParam(SelStart+2));
        SendMessage(hActiveRtfWnd,EM_REPLACESEL, 1, lParam(LPCSTR(Selection)));
//        SendMessage(hActiveRtfWnd, EM_SETSEL, wParam(SelStart), lParam(SelEnd));

(*
            ::SendMessage(hActiveRtfWnd, EM_GETSELTEXT, 0, (LPARAM)pBuf);
            ::SendMessage(hActiveRtfWnd,EM_REPLACESEL,TRUE,(LPARAM)(LPCTSTR)pBuf);
            ::SendMessage(hActiveRtfWnd, EM_SETSEL, (WPARAM)selstart, (LPARAM) selend);
*)
Result:=1;
end;

function Setup(dwReserved:DWORD;lpReserved:Pointer):DWORD;cdecl;
begin
Result:=1;
end;

exports Init,PluginName,MenuItemName,MenuItemNameRus,DoMyJob,Setup;

begin
end.

Передирал из сишного примера СДК...
Автор: WATERPROOF
Дата сообщения: 14.04.2006 22:57
OdesitVadim
Дата открытия сайта: 13 апреля 2005
Автор: ShIvADeSt
Дата сообщения: 15.04.2006 02:04
OdesitVadim

Цитата:
А что будет, если два плагина попытаются зарегить одну и ту же горячую клавишу? И каждий с них (плагин или разработчик) будет уверен, что это именно та клавиша, что нужно? Бардак!
Предлагаю, что бы плагин "рекомендовал" клавишу, а уже пользователь с марка розруливал в случае чего. А то программисту кажеться, что здесь будет удобна такая-то клавиша, а на самом деле совсем другая.

Тогда че вообще париться, сделать настройку горячек прямо в самом марке, отдельное значение в реестре например PlugHotKeys и туда пихать запись вида PlugName - HotKey
Если пользователь хочет назначить горячку плагину, то делает это как в Марке, только горячка заносится (если ранее не была зарегена уже) в таблицу горячек плагина и при старте все так же добавляется атом (просто с атомами проще отслеживать динамические гоячие клавиши) по имени plugName, а все остальное остается как я писал ранее. И не надо будет тогда в плагины пихать назначение горячих клавиш.
EagleXK

Цитата:
Вот, попытался написать плагин, который заменяет английскую раскладку на русскую и наоборот. Даже это не получилось:

По твоему коду ты просто получил текст в переменную и его же обратно вставляешь, при этом никаких действий не совершая, естессно что ты никаких изменений не увидишь Попробуй че нить сделать с ним.
Автор: EagleXK
Дата сообщения: 15.04.2006 02:30

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

Пошти. Я выделяю первый символ из раньше выделенного текста и должен был заместить его всем выделенным текстом. Не фурычит
Автор: OdesitVadim
Дата сообщения: 17.04.2006 11:02
WATERPROOF

Цитата:
Дата открытия сайта: 13 апреля 2005

Да, смазал
Сейчас написал плагин, который вначале перекодировал текст, который набран не в той раскладке клавиатуры. Но потом наткнулся на прикол, связаный с тем, что иногда текст, вставленый русский текст отображается в виде умляутов. Чуть плагин покрутил - и он уже умеет исправлять такое. Завтра надеюсь выложить.
Автор: ArtLonger
Дата сообщения: 17.04.2006 11:13
ALL

Господа, скоро тему прикроют по лимиту страниц (здесь можно не более 100).
Когда модератор начнёт новую, предлагаю плагины выделить в отдельную тему. Имхо удобнее будет.
Автор: Harrier
Дата сообщения: 17.04.2006 12:59
Так плагинов мало очень. Да и Mark не большая программа. ИМХО, лучше и программу и плагины обсуждать в одной теме.
Автор: ArtLonger
Дата сообщения: 18.04.2006 08:02
Harrier
Пока мало
Автор: OdesitVadim
Дата сообщения: 18.04.2006 11:48
Добавил новый плагин для перекодировки текста и исправления проблемы вставки русского текста. Более подробно здесь http://www.midav.land.ru/vswitch.html
Автор: Harrier
Дата сообщения: 18.04.2006 18:10
OdesitVadim

Ты "VTranslit" обновлял? На главной страничке сайта пиши об обновлениях программы и плагинов.
Автор: OdesitVadim
Дата сообщения: 18.04.2006 19:40
Harrier
Если бы обновил - то написал бы. А с чего взял?
Автор: Harrier
Дата сообщения: 18.04.2006 20:37
OdesitVadim

Ни с чего. Спрашиваю просто.


Цитата:
Если бы обновил - то написал бы.


Ok.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Какой нужен формат?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.