Пользовательские плагины

Дополнительные плагины к программе
AndrewSt
Extra
Posts: 31
Joined: Mon Mar 30, 2009 5:55 pm

Re: Пользовательские плагины

Post by AndrewSt » Tue Aug 10, 2010 8:33 pm

Ошибка с реестром так до конца и не исчезла. :(
вот еще что заметил код такой:

Code: Select all

procedure TfmPluginExample.InitDefaultValues;
var
	str: string;
begin
  edDataBase.Text := RegReadString('Recent1');
  FMoviesList := TObjectList.Create(True);
  lstMovies.Items.Add('RecentItems: '+RegReadString('RecentItems', '0'));
end;
Т.е. при запуске должно выводиться кол-во запомненных баз мувинизера.
При первом запуске плагина все нормально выводиться, но если закрыть окошко плагина (не закрывая тестовую программу)
запустить его еще раз то мы получим единственный символ с ASCII кодом 16.

AndrewSt
Extra
Posts: 31
Joined: Mon Mar 30, 2009 5:55 pm

Re: Пользовательские плагины

Post by AndrewSt » Tue Aug 10, 2010 8:39 pm

Еще для теста такая ситуация.
Создадим на форме тестового плагина кнопочку и повесим на нее вот такой код

Code: Select all

procedure TfmPluginExample.btn1Click(Sender: TObject);
var
	count: Integer;
    str: string;
    i: integer;
begin
    lstMovies.Items.Clear();
    str := RegReadString('RecentItems', '0');
    MessageDlg(str+#13#10+inttostr(ord(str[1])), mtError, [mbOk], 0);
    count := StrToInt(str);

    for i := 0 to count -1 do
    begin
        str := RegReadString('Recent' + IntToStr(i), '');
        if (str = '')then
	        continue;
	    lstMovies.Items.Add(str);
    end;
end;
Так вот что бы этот код заработал надо сначала нажать на кнопку "Фильмы" иначе он всегда выводит сообщение с ASCII кодом 16.
После второго запуска плагина он вообще перестает работать.

User avatar
ilychuk
Star
Posts: 382
Joined: Mon Oct 22, 2012 1:58 pm
Location: Minsk, Belarus
Contact:

Re: Пользовательские плагины

Post by ilychuk » Thu Jul 25, 2013 6:09 am

Написал плагин используя вашу unUsersFunction.pas - в итоге плагин не коннектится к базе: говорит неверный тип базы. Пересоздал Ваш пример - тоже перестало коннектиться к базе (и перестал подгружать *.lang). Может в настройках делфы надо что-то подправить? У меня Delphi XE3

И еще вопрос
maniac wrote:function GetLangStr(ANumber: Integer): string; Данная функция считывает строку из языкового файла с индексом ANumber. Языковый файл считывается из реестра. Если строка с таким индексом не найдена – результат – пустая строка.
Как задать языковой файл?

User avatar
maniac
Developer
Posts: 4387
Joined: Wed Jan 23, 2008 11:06 am
Location: La Prairie, Canada
Contact:

Re: Пользовательские плагины

Post by maniac » Wed Jul 31, 2013 4:25 pm

Мы тоже пишем на XE3, поэтому не должно быть с этим проблема.
Насколько помню, языковые файлы не надо никак настраивать, просто рядом с плагином положить необходимые файлы. Как сделано у нас, например: PluginExample.Russian.lng
А вы смотрели этот пример (PluginExample.dpr)?
ImageImage

User avatar
ilychuk
Star
Posts: 382
Joined: Mon Oct 22, 2012 1:58 pm
Location: Minsk, Belarus
Contact:

Re: Пользовательские плагины

Post by ilychuk » Wed Jul 31, 2013 10:22 pm

На основе его и делал. Пока писал вам личное сообщение задумался о необходимости наличия рядом с prUserPluginDemo.exe библиотеки sqlite3.dll. быстро добавил к екзешнику и базы стали узнаваться :lol: Более подробно посмотрю уже утром на работе.

Посмотрел и мои подозрения оправдались. Спасибо всем, кто отозвался.

Post Reply