Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Расскажите о CustomSort для TStringList, пожалуйста / 9 сообщений из 9, страница 1 из 1
14.05.2018, 01:31
    #39644081
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расскажите о CustomSort для TStringList, пожалуйста
Только не совсем для Delphi, а для скрипта (FS) в FastReport.
Чтобы функция кастом-сортировки тоже на скрипте была написана.
...
Рейтинг: 0 / 0
14.05.2018, 01:41
    #39644083
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расскажите о CustomSort для TStringList, пожалуйста
Для FastReport 4.*.
...
Рейтинг: 0 / 0
14.05.2018, 01:55
    #39644088
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расскажите о CustomSort для TStringList, пожалуйста
Сортировать скриптом ? Давай лучше видео перекодировать скриптом будем.
...
Рейтинг: 0 / 0
14.05.2018, 03:10
    #39644094
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расскажите о CustomSort для TStringList, пожалуйста
DimaBr,

барин, не ругайся.
...
Рейтинг: 0 / 0
14.05.2018, 08:59
    #39644147
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расскажите о CustomSort для TStringList, пожалуйста
Delphi
Код: 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.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
procedure TForm1.FormClick(Sender: TObject);
begin
  frxReport1.ShowReport();
end;


type
  TFunctions = class(TfsRTTIModule)
    function CallMethod(Instance: TObject; ClassType: TClass;  const MethodName: String; Caller: TfsMethodHelper): Variant;
    constructor Create(AScript: TfsScript); override;
  end;

constructor TFunctions.Create(AScript: TfsScript);
begin
  inherited;
  with AScript do begin
    with FindClass('TStringList') do begin
      AddMethod('procedure CustomSort(Compare: string);',CallMethod);
    end;
  end;
end;

var C: TfsMethodHelper;
    SL: TStringList;

function DoCompare(List: TStringList; Index1, Index2: Integer): Integer;
var V: TfsCustomVariable;
begin
  V := C.Prog.Find(C[0]);
  if not (V is TfsProcVariable) then begin
    Result := 0;
    Exit;
  end;
  V.Params[0].Value := integer(SL);
  V.Params[1].Value := Index1;
  V.Params[2].Value := Index2;
  Result := TfsProcVariable(V).Value;
end;

function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; const MethodName: String; Caller: TfsMethodHelper): Variant;
begin
  if Instance is TStringList then begin
    if MethodName = 'CUSTOMSORT' then begin
      C := Caller;
      SL := TStringList(Instance);
      SL.CustomSort(DoCompare);
    end else
  end;
end;


initialization
  fsRTTIModules.Add(TFunctions);

finalization
  fsRTTIModules.Remove(TFunctions);

end.



FR
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
var SL: TStringList;

function MySort(S: TStringList; Index1,Index2: integer): integer;
begin
  if S[Index1] < S[Index2] then Result := -1 else
  if S[Index1] > S[Index2] then Result := 1 else Result := 0;                                        
end;            



  
begin
  SL := TStringList.Create;
  
  SL.Add('ccc');
  SL.Add('bbb');
  SL.Add('aaa');
    
  SL.CustomSort(@MySort);
  ShowMessage(SL.Text);                                              
end.

...
Рейтинг: 0 / 0
14.05.2018, 17:57
    #39644582
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расскажите о CustomSort для TStringList, пожалуйста
DimaBr,

спасибо. :)
...
Рейтинг: 0 / 0
14.05.2018, 18:13
    #39644595
asviridenkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расскажите о CustomSort для TStringList, пожалуйста
DimaBr,

Код: pascal
1.
 V.Params[0].Value := integer(SL);



На x64 забиваем?
...
Рейтинг: 0 / 0
14.05.2018, 22:30
    #39644667
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расскажите о CustomSort для TStringList, пожалуйста
На всё кладём
...
Рейтинг: 0 / 0
15.05.2018, 03:32
    #39644723
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расскажите о CustomSort для TStringList, пожалуйста
Так точно, забиваем.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Расскажите о CustomSort для TStringList, пожалуйста / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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