Разработка плагинов на Delphi/ Pascal

Место, где разработчики плагинов могут поделиться своим опытом.
User avatar
HaRT
Moderator
Posts: 9936
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 141 times
Been thanked: 280 times

Re: Разработка плагинов на Delphi/ Pascal

Post by HaRT »

Latest post of the previous page:

Centaur wrote:Если каждый плагин будет выбирать себе горячую клавишу и регистрировать макрос, рано или поздно они подерутся.
Это так. Однако макроязык уже давно позволяет привязываться не к горячим клавишам, а к самоназванию плагина.
Фар есть инструмент, а не нянька. © 2009 DrKnS
niarbrnd
Posts: 22
Joined: Mon 17 Aug, 2009 11:10

Re: Разработка плагинов на Delphi/ Pascal

Post by niarbrnd »

Для работы с editor необходимо воспользоваться http://api.farmanager.com/ru/service_fu ... ntrol.html как мне кажется.
Но не могу понять как же все же понять, какой именно функцией
ECTL_SELECT - из описание следует что можно установить или снять выделение, а как же получить?
ECTL_GETINFO - но в описании структуры EditorInfo нет ничего о выделении

Если не сложно подскажите
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Разработка плагинов на Delphi/ Pascal

Post by Skirda »

niarbrnd
начни с разбора сорцов редакторных плагинов, которые идут в поставке Far`а (лежат в SVN`е).
We are the Borg. You will be assimilated.
So Say We All!
niarbrnd
Posts: 22
Joined: Mon 17 Aug, 2009 11:10

Re: Разработка плагинов на Delphi/ Pascal

Post by niarbrnd »

Спасибо. Разобрался.
Сначала надо получить FARAPI.EditorControl(ECTL_GETINFO,@ei)
и узнать есть ли выделенный фрагмент if ei.BlockType <> BTYPE_None then ...
затем получить первую строку выделенного фрагмента iCurrLine:=ei.BlockStartLine;
затем получить первую строку egs.StringNumber:=iCurrLine;
FARAPI.EditorControl(ECTL_GETSTRING,@egs);
И в этой строке уже можно найти первый выделенный символ, последний
Далее проверить следующию строку есть там выделение.
User avatar
hoopoe
Posts: 263
Joined: Mon 28 Mar, 2005 07:44
Location: Нежный Новгород
Has thanked: 1 time
Contact:

плуг на делфях

Post by hoopoe »

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

:Search:
thenext
Posts: 8
Joined: Sat 26 Mar, 2011 15:31
Location: Екатеринбург

Плагин на Object Pascal

Post by thenext »

Проблема с заполнением структур, в частности Dialog, помогите разобраться и найти ошибку.

Code: Select all

function OpenPlugin(
  OpenFrom: integer;
  Item: Integer): THandle
  stdcall export;
var dlg:tfarapidialog;
str:pchar;
itm: PFarDialogItemArray;
begin
str:='кнопка';
      itm[0].ItemType:=7;
      itm[0].X1:=-1;
      itm[0].Y1:=-1;
      itm[0].X2:=0;
      itm[0].Y2:=-1;
      itm[0].Data.data:='1';
      itm[0].Focus:=1;
      dlg(3,-1,-1,50,50,@itm,nil,1);
  Result := INVALID_HANDLE_VALUE;
end;
thenext
Posts: 8
Joined: Sat 26 Mar, 2011 15:31
Location: Екатеринбург

Re: Плагин на Object Pascal

Post by thenext »

используется api far 1.75.
плагин пишется впервые, в рамках учебной дисциплины, так что сильно не ругайтесь)
з.ы. простите за дубль темы, не заметил
User avatar
GrAnD
Posts: 351
Joined: Thu 13 Oct, 2005 23:47
Location: Amsterdam
Been thanked: 3 times
Contact:

Re: Плагин на Object Pascal

Post by GrAnD »

Max Rusov написал на паскале много хороших плагинов.
Смотри тут - http://code.google.com/p/far-plugins/source/browse/
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Плагин на Object Pascal

Post by Skirda »

Эххх... если бы Max Rusov (или еще какой знаток Паскаля) еще и вот эти файлы - FarColorW.pas, FarKeysW.pas и PluginW.pas - в порядок привел (ну и в актуальности содержал)... :-)

Примечание модератора:
Часть сообщений отделена в тему Headers для Delphi и FPC.
Last edited by Skirda on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Разделил тему
We are the Borg. You will be assimilated.
So Say We All!
User avatar
SUSim
Posts: 1553
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 13 times

Re: Плагин на Object Pascal

Post by SUSim »

thenext wrote: itm: PFarDialogItemArray;
Это же указатель, память выделять кто будет? типа getmem(itm,SizeOf(TFarDialogItem));
если еще вопросы в личку пиши мне, правда я уже не знаю насколько Delphi от Object Pascal ушла, да и я только под Far 2.0 практиковался...
SimSU ··· ·· -- ··· ··-
thenext
Posts: 8
Joined: Sat 26 Mar, 2011 15:31
Location: Екатеринбург

Re: Плагин на Object Pascal

Post by thenext »

Спасибо, обязательно обращусь, т.к. вопросов уйма. Думаю пока не поздно на на второй API перескочить. Сегодня уже голова кипит :crazy:
thenext
Posts: 8
Joined: Sat 26 Mar, 2011 15:31
Location: Екатеринбург

Re: Плагин на Object Pascal

Post by thenext »

правда я уже не знаю насколько Delphi от Object Pascal ушла
Даа, кстати, пользую среду - Delphi 7. :)
thenext
Posts: 8
Joined: Sat 26 Mar, 2011 15:31
Location: Екатеринбург

Re: Плагин на Object Pascal

Post by thenext »

SUSim wrote:
thenext wrote: itm: PFarDialogItemArray;
Это же указатель, память выделять кто будет? типа getmem(itm,SizeOf(TFarDialogItem));
Сделал => один фиг почему то excpetion error :o
User avatar
SUSim
Posts: 1553
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 13 times

Re: Плагин на Object Pascal

Post by SUSim »

посмотри в моей подписи исходники, они компилились и под Delphi 7...
SimSU ··· ·· -- ··· ··-
Yegor
Posts: 1147
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 20 times
Been thanked: 31 times

Headers для Delphi и FPC

Post by Yegor »

Skirda wrote:Эххх... если бы Max Rusov (или еще какой знаток Паскаля) еще и вот эти файлы - FarColorW.pas, FarKeysW.pas и PluginW.pas - в порядок привел (ну и в актуальности содержал)... :-)
Я согласен, но компилятор у меня Delphi XE, вот под него могу :)
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
Post Reply

Return to “Разработка плагинов”