Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / разработчики пишут для программистов ? / 17 сообщений из 17, страница 1 из 1
25.02.2019, 09:58
    #39778648
TАнтон
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
Смотрю на разработчиков FR и радуюсь
В 4 и 5 версии было такое свойство
Код: pascal
1.
2.
3.
4.
5.
TfrxCodeCompletionEvent = procedure(const Name: String; List: TStrings) of object;

TfrxSyntaxMemo = class(TfrxScrollWin)
    property OnCodeCompletion: TfrxCodeCompletionEvent read FOnCodeCompletion write FOnCodeCompletion;
end;



пришла 6-я версия и обнаруживается, что теперь
Код: pascal
1.
TfrxCodeCompletionEvent = procedure(const Name: String; List: TfrxCompletionList) of object;



Ладно, открываем TfrxCompletionList и видим чудо программирования

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
  TfrxCompletionItem = class
  private
    FParent: TfrxCompletionItem;
    FName: String;
    FType: String;
    FParams: String;
    FItemType: TfrxItemType;
    FStartVisible: Integer;
    FEndVisible: Integer;
  end;

  TfrxCompletionList = class
  private
    FConstants: TStringList;
    FVariables: TStringList;
    FFunctions: TStringList;
    FClasses: TStringList;
    FLocked: Boolean;
    function AddBaseVar(varList: TStrings; Name, sType: String; VisibleStart: Integer = 0; VisibleEnd: Integer = -1; ParentFunc: String = ''): TfrxCompletionItem;
    function GetItem(Index: Integer): TfrxCompletionItem;
  public
    constructor Create;
    destructor Destroy; override;
    procedure DestroyItems;
    function Count: Integer;
    function AddConstant(Name, sType: String; VisibleStart: Integer = 0; VisibleEnd: Integer = -1; ParentFunc: String = ''): TfrxCompletionItem;
    function AddVariable(Name, sType: String; VisibleStart: Integer = 0; VisibleEnd: Integer = -1; ParentFunc: String = ''): TfrxCompletionItem;
    function AddClass(Name, sType: String; VisibleStart: Integer = 0; VisibleEnd: Integer = -1; ParentFunc: String = ''): TfrxCompletionItem;
    function AddFunction(Name, sType, Params: String; VisibleStart: Integer = 0; VisibleEnd: Integer = -1; ParentFunc: String = ''): TfrxCompletionItem;
    function Find(Name: String): TfrxCompletionItem;
    property Items[Index: Integer]: TfrxCompletionItem read GetItem; default;
    property Locked: Boolean read FLocked write FLocked;
  end;



Можно добавить, найти, обратиться по номеру, но все свойства TfrxCompletionItem ПРИВАТНЫЕ.
Возникает вопрос, для кого они это пишут ?
...
Рейтинг: 0 / 0
25.02.2019, 10:20
    #39778654
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
TАнтон,

ну а зачем тебе к ним лезть? методы добавления же есть
...
Рейтинг: 0 / 0
25.02.2019, 10:23
    #39778656
TАнтон
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
Итемы есть, а свойств итемов нет.
...
Рейтинг: 0 / 0
25.02.2019, 12:06
    #39778715
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
TАнтон,

ну в этом месте да, не доработали
property Items убрать надо
...
Рейтинг: 0 / 0
25.02.2019, 13:21
    #39778767
TАнтон
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
И Find убрать и Count. Или же по человечески опубликовать свойства TfrxCompletionItem.
...
Рейтинг: 0 / 0
24.02.2020, 17:24
    #39930264
H.e.l.p
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
Подскажите, как на базе готового List : TStrings заполнить List : TfrxCompletionList?
...
Рейтинг: 0 / 0
24.02.2020, 18:55
    #39930302
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
TАнтон
. Или же по человечески опубликовать свойства TfrxCompletionItem.
Зачем? Логика следующая с TfrxCompletionItem умеет работать только один модуль. Для всех остальных это абстракция. И задача внешнего модуля передать эту абстракцию туда, где с ней умеют работать.

Вы же не возмущаетесь, что у HWND нет никаких свойств, а только численное представление? Тут то же самое, только вместо числа адрес в памяти + контроль типов
...
Рейтинг: 0 / 0
24.02.2020, 20:34
    #39930326
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
HWND - это численное представление окна (произвольного, не относящегося к Delphi). По нему можно определить класс окна, размеры, заголовок ....
Тут на лицо КОЛЛЕКЦИЯ, и к элементам коллекции дан доступ.
Элемент можно получить по номеру, и элемент можно найти по имени. Можно получить количество элементов и уничтожить их.
Но бОльшей информации о полученном элементе нет.
...
Рейтинг: 0 / 0
24.02.2020, 22:09
    #39930346
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
DimaBr
Но бОльшей информации о полученном элементе нет.
Внешнему коду больше и не нужно
DimaBr
По нему можно определить класс окна, размеры, заголовок ....
Вот с элементом этой коллекции также можно произвести некоторые действия. При помощи дополнительных функций
...
Рейтинг: 0 / 0
24.02.2020, 22:54
    #39930354
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
_Vasilisk_
Вот с элементом этой коллекции также можно произвести некоторые действия. При помощи дополнительных функций

Сомневаюсь что есть дополнительные функции для получения данных с элемента коллекции. Проще опубликовать свойства, можно даже для чтения.
У вас есть FR6 ? Там реально есть дополнительные методы для получения информации ом элементе ?
...
Рейтинг: 0 / 0
25.02.2020, 15:02
    #39930639
_Den_Z_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
H.e.l.p,

Заполнить чем ?
Если объектами, то примерно так:
Код: pascal
1.
2.
3.
4.
5.
procedure TForm.OnCodeCompletion(const Name: String; List: TfrxCompletionList);
begin  
  for i := 0 to MyStringList.Count - 1 do
    List.AddVariable(MyStringList[i], TObject(MyStringList[i]).ClassName);
end;
...
Рейтинг: 0 / 0
25.02.2020, 15:38
    #39930656
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
TАнтон

Код: pascal
1.
2.
3.
4.
5.
6.
    function AddConstant(Name, sType: String; VisibleStart: Integer = 0; VisibleEnd: Integer = -1; ParentFunc: String = ''): TfrxCompletionItem;
    function AddVariable(Name, sType: String; VisibleStart: Integer = 0; VisibleEnd: Integer = -1; ParentFunc: String = ''): TfrxCompletionItem;
    function AddClass(Name, sType: String; VisibleStart: Integer = 0; VisibleEnd: Integer = -1; ParentFunc: String = ''): TfrxCompletionItem;
    function AddFunction(Name, sType, Params: String; VisibleStart: Integer = 0; VisibleEnd: Integer = -1; ParentFunc: String = ''): TfrxCompletionItem;
    function Find(Name: String): TfrxCompletionItem;
  end;



Возникает вопрос, для кого они это пишут ?
Я смотрю, они еще менеджер памяти любят погонять нахаляву
...
Рейтинг: 0 / 0
25.02.2020, 15:50
    #39930665
_Den_Z_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
Квейд,
Зачем добру простаивать :)

А если серьезно, спасибо. Поправим. Пропустили как-то такое в сборку.
...
Рейтинг: 0 / 0
25.02.2020, 17:06
    #39930705
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
Квейд
Я смотрю, они еще менеджер памяти любят погонять нахаляву
А что не так? Строки без const?
...
Рейтинг: 0 / 0
25.02.2020, 17:26
    #39930711
vavan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
_Vasilisk_
Строки без const?
такие вещи там вполне традиционны
...
Рейтинг: 0 / 0
25.02.2020, 17:47
    #39930716
_Den_Z_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
_Vasilisk_,
С одной стороны, не так критично, ибо менеджер памяти дергаться не будет. Строки используют копирование при записи.
А увеличение/уменьшение счетчика ссылок в данном коде не приведет к потере производительности (это не системная pos вызываемая сотни тысяч раз).
Но, с другой стороны, это ужасно с точки зрения планирования интерфейса и в будущем может повлечь за собой что-то более серьезное.
Поэтому тут согласен с Квейд, некрасиво это, нужно исправлять.
...
Рейтинг: 0 / 0
26.02.2020, 15:29
    #39931113
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разработчики пишут для программистов ?
_Den_Z_
С одной стороны, не так критично, ибо менеджер памяти дергаться не будет.
Вот и я удивился
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / разработчики пишут для программистов ? / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]