powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / разработчики пишут для программистов ?
17 сообщений из 17, страница 1 из 1
разработчики пишут для программистов ?
    #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
разработчики пишут для программистов ?
    #39778654
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TАнтон,

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

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

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

Сомневаюсь что есть дополнительные функции для получения данных с элемента коллекции. Проще опубликовать свойства, можно даже для чтения.
У вас есть FR6 ? Там реально есть дополнительные методы для получения информации ом элементе ?
...
Рейтинг: 0 / 0
разработчики пишут для программистов ?
    #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
разработчики пишут для программистов ?
    #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
разработчики пишут для программистов ?
    #39930665
_Den_Z_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Квейд,
Зачем добру простаивать :)

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


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