Changeset 219 for trunk/Acronym.pas
- Timestamp:
- Jan 17, 2025, 9:05:54 PM (4 days ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/Acronym.pas
r218 r219 1 unit UAcronym; 2 3 {$mode delphi}{$H+} 1 unit Acronym; 4 2 5 3 interface 6 4 7 5 uses 8 Classes, SysUtils, Contnrs, XMLRead, XMLWrite, DOM, UXMLUtils,9 fphttpclient2, Dialogs, odbcconn, sqldb, LazUTF8, fgl;6 Classes, SysUtils, XMLRead, XMLWrite, DOM, XML, fphttpclient2, Dialogs, 7 odbcconn, sqldb, LazUTF8, Generics.Collections, ListViewSort; 10 8 11 9 type … … 34 32 { TAcronyms } 35 33 36 TAcronyms = class(TObjectList )34 TAcronyms = class(TObjectList<TAcronym>) 37 35 Db: TAcronymDb; 38 36 procedure SaveToNode(Node: TDOMNode); … … 61 59 { TAcronymMeanings } 62 60 63 TAcronymMeanings = class(TObjectList )61 TAcronymMeanings = class(TObjectList<TAcronymMeaning>) 64 62 public 65 63 Acronym: TAcronym; … … 80 78 ImportSources: TImportSources; 81 79 Enabled: Boolean; 80 procedure Assign(Source: TAcronymCategory); 82 81 procedure SaveToNode(Node: TDOMNode); 83 82 procedure LoadFromNode(Node: TDOMNode); … … 88 87 { TAcronymCategories } 89 88 90 TAcronymCategories = class(TObjectList )89 TAcronymCategories = class(TObjectList<TAcronymCategory>) 91 90 Db: TAcronymDb; 92 91 procedure UpdateIds; … … 101 100 procedure AssignFromStrings(Strings: TStrings); 102 101 procedure AddFromStrings(Strings: TStrings); 103 procedure AssignToList(List: TFPGObjectList<TObject>); 102 procedure AssignToList(List: TObjects); 103 procedure Assign(Source: TAcronymCategories); 104 104 function GetString: string; 105 105 procedure UpdateLinkImportSources(Item: TImportSource); … … 138 138 { TImportPatterns } 139 139 140 TImportPatterns = class(TObjectList )140 TImportPatterns = class(TObjectList<TImportPattern>) 141 141 procedure SaveToNode(Node: TDOMNode); 142 142 procedure LoadFromNode(Node: TDOMNode); … … 163 163 { TImportFormats } 164 164 165 TImportFormats = class(TObjectList )165 TImportFormats = class(TObjectList<TImportFormat>) 166 166 procedure UpdateIds; 167 167 procedure SaveToNode(Node: TDOMNode); … … 204 204 { TImportSources } 205 205 206 TImportSources = class(TObjectList )206 TImportSources = class(TObjectList<TImportSource>) 207 207 AcronymDb: TAcronymDb; 208 208 procedure UpdateIds; … … 214 214 procedure SaveToNode(Node: TDOMNode); 215 215 procedure LoadFromNode(Node: TDOMNode); 216 procedure AssignToList(List: T FPGObjectList<TObject>);216 procedure AssignToList(List: TObjects); 217 217 end; 218 218 … … 230 230 Modified: Boolean; 231 231 AddedCount: Integer; 232 OnUpdate: T FPGList<TNotifyEvent>;232 OnUpdate: TList<TNotifyEvent>; 233 233 constructor Create; 234 234 destructor Destroy; override; … … 243 243 procedure RemoveMeaning(Meaning: TAcronymMeaning); 244 244 procedure RemoveAcronym(AcronymName, MeaningName: string); 245 procedure AssignToList(List: T FPGObjectList<TObject>; EnabledCategoryOnly: Boolean = False);245 procedure AssignToList(List: TObjects; EnabledCategoryOnly: Boolean = False); 246 246 procedure BeginUpdate; 247 247 procedure EndUpdate; … … 249 249 end; 250 250 251 function AcronymComparer(Item1, Item2: Pointer): Integer;252 253 251 var 254 252 ImportVariableString: array [TImportVariable] of string; … … 256 254 257 255 procedure Translate; 256 258 257 259 258 implementation … … 285 284 ImportPatternFlagString[ipfSkip] := SSkip; 286 285 ImportPatternFlagString[ipfRemove] := SRemoveOnStart; 287 end;288 289 function AcronymComparer(Item1, Item2: Pointer): Integer;290 begin291 Result := CompareStr(TAcronym(Item1).Name, TAcronym(Item2).Name);292 286 end; 293 287 … … 372 366 begin 373 367 for I := 0 to Count - 1 do 374 with TImportPattern(Items[I])do begin368 with Items[I] do begin 375 369 NewNode2 := Node.OwnerDocument.CreateElement('Pattern'); 376 370 Node.AppendChild(NewNode2); … … 476 470 LastLength := Length(S); 477 471 for I := 0 to Format.ItemPatterns.Count - 1 do 478 with TImportPattern(Format.ItemPatterns[I])do472 with Format.ItemPatterns[I] do 479 473 if Flag = ipfRemove then begin 480 474 P := Pos(StartString, S); … … 494 488 I := 0; 495 489 while I < Format.ItemPatterns.Count do 496 with TImportPattern(Format.ItemPatterns[I])do begin490 with Format.ItemPatterns[I] do begin 497 491 if Flag <> ipfRemove then begin 498 492 if Length(StartString) > 0 then begin … … 559 553 P1 := Pos(StartString, S); 560 554 if P1 > 0 then begin 561 P2 := Pos(TImportPattern(Format.ItemPatterns[(I + 1) mod Format.ItemPatterns.Count]).StartString, S); 555 P2 := Pos(TImportPattern(Format.ItemPatterns[(I + 1) mod 556 Format.ItemPatterns.Count]).StartString, S); 562 557 if (P2 > 0) and (P1 < P2) then Continue; 563 558 end; … … 594 589 end; 595 590 596 procedure TImportSources.AssignToList(List: T FPGObjectList<TObject>);591 procedure TImportSources.AssignToList(List: TObjects); 597 592 var 598 593 I: Integer; … … 600 595 List.Clear; 601 596 for I := 0 to Count - 1 do 602 List.Add( TImportSource(Items[I]))597 List.Add(Items[I]); 603 598 end; 604 599 … … 614 609 LastImportTime := Now; 615 610 end; 616 617 611 618 612 { TImportFormat } … … 631 625 ItemPatterns.Count := Source.ItemPatterns.Count; 632 626 for I := 0 to ItemPatterns.Count - 1 do begin 633 TImportPattern(ItemPatterns[I]).Assign(TImportPattern(Source.ItemPatterns[I]));627 ItemPatterns[I].Assign(Source.ItemPatterns[I]); 634 628 end; 635 629 end; … … 673 667 destructor TImportFormat.Destroy; 674 668 begin 675 Block.Free;676 ItemPatterns.Free;677 inherited Destroy;669 FreeAndNil(Block); 670 FreeAndNil(ItemPatterns); 671 inherited; 678 672 end; 679 673 … … 688 682 LastId := 0; 689 683 for I := 0 to Count - 1 do begin 690 if TImportSource(Items[I]).Id > LastId then LastId := TImportSource(Items[I]).Id;684 if Items[I].Id > LastId then LastId := Items[I].Id; 691 685 end; 692 686 // Add ID to new items without ID 693 687 for I := 0 to Count - 1 do begin 694 if TImportSource(Items[I]).Id = 0 then begin688 if Items[I].Id = 0 then begin 695 689 Inc(LastId); 696 TImportSource(Items[I]).Id := LastId;690 Items[I].Id := LastId; 697 691 end; 698 692 end; … … 704 698 begin 705 699 I := 0; 706 while (I < Count) and ( TImportSource(Items[I]).Id <> Id) do Inc(I);707 if I < Count then Result := TImportSource(Items[I])700 while (I < Count) and (Items[I].Id <> Id) do Inc(I); 701 if I < Count then Result := Items[I] 708 702 else Result := nil; 709 703 end; … … 717 711 NewNode := Node.OwnerDocument.CreateElement('Ref'); 718 712 Node.AppendChild(NewNode); 719 NewNode.TextContent := WideString(IntToStr( TImportSource(Items[I]).Id));713 NewNode.TextContent := WideString(IntToStr(Items[I].Id)); 720 714 end; 721 715 end; … … 745 739 Strings.Clear; 746 740 for I := 0 to Count - 1 do 747 Strings.AddObject( TImportSource(Items[I]).Name, Items[I]);741 Strings.AddObject(Items[I].Name, Items[I]); 748 742 end; 749 743 … … 753 747 begin 754 748 I := 0; 755 while (I < Count) and ( TImportSource(Items[I]).Name <> Name) do Inc(I);756 if I < Count then Result := TImportSource(Items[I])749 while (I < Count) and (Items[I].Name <> Name) do Inc(I); 750 if I < Count then Result := Items[I] 757 751 else Result := nil; 758 752 end; … … 765 759 UpdateIds; 766 760 for I := 0 to Count - 1 do 767 with TImportSource(Items[I])do begin761 with Items[I] do begin 768 762 NewNode2 := Node.OwnerDocument.CreateElement('ImportSource'); 769 763 Node.AppendChild(NewNode2); … … 796 790 begin 797 791 I := 0; 798 while (I < Count) and ( TImportFormat(Items[I]).Name <> Name) do Inc(I);799 if I < Count then Result := TImportFormat(Items[I])792 while (I < Count) and (Items[I].Name <> Name) do Inc(I); 793 if I < Count then Result := Items[I] 800 794 else Result := nil; 801 795 end; … … 809 803 LastId := 0; 810 804 for I := 0 to Count - 1 do begin 811 if TImportFormat(Items[I]).Id > LastId then LastId := TImportFormat(Items[I]).Id;805 if Items[I].Id > LastId then LastId := Items[I].Id; 812 806 end; 813 807 // Add ID to new items without ID 814 808 for I := 0 to Count - 1 do begin 815 if TImportFormat(Items[I]).Id = 0 then begin809 if Items[I].Id = 0 then begin 816 810 Inc(LastId); 817 TImportFormat(Items[I]).Id := LastId;811 Items[I].Id := LastId; 818 812 end; 819 813 end; … … 827 821 UpdateIds; 828 822 for I := 0 to Count - 1 do 829 with TImportFormat(Items[I])do begin823 with Items[I] do begin 830 824 NewNode2 := Node.OwnerDocument.CreateElement('ImportFormat'); 831 825 Node.AppendChild(NewNode2); … … 855 849 begin 856 850 I := 0; 857 while (I < Count) and ( TImportFormat(Items[I]).Id <> Id) do Inc(I);858 if I < Count then Result := TImportFormat(Items[I])851 while (I < Count) and (Items[I].Id <> Id) do Inc(I); 852 if I < Count then Result := Items[I] 859 853 else Result := nil; 860 854 end; … … 869 863 if DownloadHTTP(URL, ResponseStream) then begin 870 864 ResponseStream.Position := 0; 865 S := default(string); 871 866 SetLength(S, ResponseStream.Size); 872 867 ResponseStream.Read(S[1], Length(S)); … … 942 937 // Add reverse references 943 938 for I := 0 to Categories.Count - 1 do 944 TAcronymCategory(Categories[I]).ImportSources.Add(Self);939 Categories[I].ImportSources.Add(Self); 945 940 end; 946 941 … … 959 954 begin 960 955 for I := 0 to Categories.Count - 1 do 961 TAcronymCategory(Categories[I]).ImportSources.Remove(Self);956 Categories[I].ImportSources.Remove(Self); 962 957 FreeAndNil(Categories); 963 958 FreeAndNil(ResponseStream); 964 inherited Destroy;959 inherited; 965 960 end; 966 961 … … 980 975 FreeAndNil(Categories); 981 976 FreeAndNil(Sources); 982 inherited Destroy;977 inherited; 983 978 end; 984 979 … … 993 988 LastId := 0; 994 989 for I := 0 to Count - 1 do begin 995 if TAcronymMeaning(Items[I]).Id > LastId then LastId := TAcronymMeaning(Items[I]).Id;990 if Items[I].Id > LastId then LastId := Items[I].Id; 996 991 end; 997 992 // Add ID to new items without ID 998 993 for I := 0 to Count - 1 do begin 999 if TAcronymMeaning(Items[I]).Id = 0 then begin994 if Items[I].Id = 0 then begin 1000 995 Inc(LastId); 1001 TAcronymMeaning(Items[I]).Id := LastId;996 Items[I].Id := LastId; 1002 997 end; 1003 998 end; … … 1011 1006 UpdateIds; 1012 1007 for I := 0 to Count - 1 do 1013 with TAcronymMeaning(Items[I])do begin1008 with Items[I] do begin 1014 1009 NewNode2 := Node.OwnerDocument.CreateElement('Meaning'); 1015 1010 Node.AppendChild(NewNode2); … … 1042 1037 I := 0; 1043 1038 if sfCaseInsensitive in Flags then begin 1044 while (I < Count) and (LowerCase( TAcronymMeaning(Items[I]).Name) <> LowerCase(Name)) do Inc(I);1039 while (I < Count) and (LowerCase(Items[I].Name) <> LowerCase(Name)) do Inc(I); 1045 1040 end else begin 1046 while (I < Count) and ( TAcronymMeaning(Items[I]).Name <> Name) do Inc(I);1047 end; 1048 if I < Count then Result := TAcronymMeaning(Items[I])1041 while (I < Count) and (Items[I].Name <> Name) do Inc(I); 1042 end; 1043 if I < Count then Result := Items[I] 1049 1044 else Result := nil; 1050 1045 end; … … 1063 1058 Result := ''; 1064 1059 for I := 0 to Count - 1 do 1065 Result := Result + ', "' + TAcronymMeaning(Items[I]).Name + '"';1060 Result := Result + ', "' + Items[I].Name + '"'; 1066 1061 System.Delete(Result, 1, 2); 1067 1062 end; … … 1076 1071 if Categories.IndexOf(MergedCategories[I]) = -1 then begin 1077 1072 Categories.Add(MergedCategories[I]); 1078 TAcronymCategory(MergedCategories[I]).AcronymMeanings.Add(Self);1073 MergedCategories[I].AcronymMeanings.Add(Self); 1079 1074 end; 1080 1075 end; … … 1113 1108 // Add reverse references 1114 1109 for I := 0 to Categories.Count - 1 do 1115 TAcronymCategory(Categories[I]).AcronymMeanings.Add(Self);1110 Categories[I].AcronymMeanings.Add(Self); 1116 1111 end; 1117 1112 … … 1134 1129 begin 1135 1130 for I := 0 to Categories.Count - 1 do 1136 TAcronymCategory(Categories[I]).AcronymMeanings.Remove(Self);1131 Categories[I].AcronymMeanings.Remove(Self); 1137 1132 FreeAndNil(Categories); 1138 1133 FreeAndNil(Sources); 1139 inherited Destroy;1134 inherited; 1140 1135 end; 1141 1136 … … 1148 1143 begin 1149 1144 for I := 0 to Count - 1 do 1150 with TAcronym(Items[I])do begin1145 with Items[I] do begin 1151 1146 NewNode2 := Node.OwnerDocument.CreateElement('Acronym'); 1152 1147 Node.AppendChild(NewNode2); … … 1177 1172 I := 0; 1178 1173 if sfCaseInsensitive in Flags then begin 1179 while (I < Count) and (LowerCase( TAcronym(Items[I]).Name) <> LowerCase(Name)) do Inc(I);1174 while (I < Count) and (LowerCase(Items[I].Name) <> LowerCase(Name)) do Inc(I); 1180 1175 end else begin 1181 while (I < Count) and ( TAcronym(Items[I]).Name <> Name) do Inc(I);1182 end; 1183 if I < Count then Result := TAcronym(Items[I])1176 while (I < Count) and (Items[I].Name <> Name) do Inc(I); 1177 end; 1178 if I < Count then Result := Items[I] 1184 1179 else Result := nil; 1185 1180 end; … … 1202 1197 LastId := 0; 1203 1198 for I := 0 to Count - 1 do begin 1204 if TAcronymCategory(Items[I]).Id > LastId then LastId := TAcronymCategory(Items[I]).Id;1199 if Items[I].Id > LastId then LastId := Items[I].Id; 1205 1200 end; 1206 1201 // Add ID to new items without ID 1207 1202 for I := 0 to Count - 1 do begin 1208 if TAcronymCategory(Items[I]).Id = 0 then begin1203 if Items[I].Id = 0 then begin 1209 1204 Inc(LastId); 1210 TAcronymCategory(Items[I]).Id := LastId;1205 Items[I].Id := LastId; 1211 1206 end; 1212 1207 end; … … 1220 1215 UpdateIds; 1221 1216 for I := 0 to Count - 1 do 1222 with TAcronymCategory(Items[I])do begin1217 with Items[I] do begin 1223 1218 NewNode2 := Node.OwnerDocument.CreateElement('Category'); 1224 1219 Node.AppendChild(NewNode2); … … 1251 1246 NewNode := Node.OwnerDocument.CreateElement('Ref'); 1252 1247 Node.AppendChild(NewNode); 1253 NewNode.TextContent := WideString(IntToStr( TAcronymCategory(Items[I]).Id));1248 NewNode.TextContent := WideString(IntToStr(Items[I].Id)); 1254 1249 end; 1255 1250 end; … … 1289 1284 begin 1290 1285 I := 0; 1291 while (I < Count) and ( TAcronymCategory(Items[I]).Name <> Name) do Inc(I);1292 if I < Count then Result := TAcronymCategory(Items[I])1286 while (I < Count) and (Items[I].Name <> Name) do Inc(I); 1287 if I < Count then Result := Items[I] 1293 1288 else Result := nil; 1294 1289 end; … … 1299 1294 begin 1300 1295 I := 0; 1301 while (I < Count) and ( TAcronymCategory(Items[I]).Id <> Id) do Inc(I);1302 if I < Count then Result := TAcronymCategory(Items[I])1296 while (I < Count) and (Items[I].Id <> Id) do Inc(I); 1297 if I < Count then Result := Items[I] 1303 1298 else Result := nil; 1304 1299 end; … … 1317 1312 Strings.Clear; 1318 1313 for I := 0 to Count - 1 do 1319 Strings.AddObject( TAcronymCategory(Items[I]).Name, Items[I]);1314 Strings.AddObject(Items[I].Name, Items[I]); 1320 1315 end; 1321 1316 … … 1335 1330 end; 1336 1331 1337 procedure TAcronymCategories.AssignToList(List: T FPGObjectList<TObject>);1332 procedure TAcronymCategories.AssignToList(List: TObjects); 1338 1333 var 1339 1334 I: Integer; … … 1341 1336 List.Clear; 1342 1337 for I := 0 to Count - 1 do 1343 List.Add(TAcronymCategory(Items[I])) 1338 List.Add(Items[I]); 1339 end; 1340 1341 procedure TAcronymCategories.Assign(Source: TAcronymCategories); 1342 var 1343 I: Integer; 1344 NewCategory: TAcronymCategory; 1345 begin 1346 Clear; 1347 for I := 0 to Source.Count - 1 do begin 1348 NewCategory := TAcronymCategory.Create; 1349 NewCategory.Assign(Source[I]); 1350 Add(NewCategory); 1351 end; 1344 1352 end; 1345 1353 … … 1350 1358 Result := ''; 1351 1359 for I := 0 to Count - 1 do 1352 Result := Result + TAcronymCategory(Items[I]).Name + ',';1360 Result := Result + Items[I].Name + ','; 1353 1361 System.Delete(Result, Length(Result), 1); 1354 1362 end; … … 1359 1367 begin 1360 1368 for I := 0 to Count - 1 do 1361 if TAcronymCategory(Items[I]).ImportSources.IndexOf(Item) = -1 then1362 TAcronymCategory(Items[I]).ImportSources.Add(Item);1369 if Items[I].ImportSources.IndexOf(Item) = -1 then 1370 Items[I].ImportSources.Add(Item); 1363 1371 end; 1364 1372 … … 1368 1376 begin 1369 1377 for I := 0 to Count - 1 do 1370 if TAcronymCategory(Items[I]).AcronymMeanings.IndexOf(Item) = -1 then1371 TAcronymCategory(Items[I]).AcronymMeanings.Add(Item);1378 if Items[I].AcronymMeanings.IndexOf(Item) = -1 then 1379 Items[I].AcronymMeanings.Add(Item); 1372 1380 end; 1373 1381 … … 1378 1386 Result := False; 1379 1387 for I := 0 to Count - 1 do 1380 if TAcronymCategory(Items[I]).Enabled then begin1388 if Items[I].Enabled then begin 1381 1389 Result := True; 1382 1390 Break; … … 1417 1425 begin 1418 1426 FreeAndNil(Meanings); 1419 inherited Destroy;1427 inherited; 1420 1428 end; 1421 1429 1422 1430 { TAcronymCategory } 1431 1432 procedure TAcronymCategory.Assign(Source: TAcronymCategory); 1433 begin 1434 Id := Source.Id; 1435 Name := Source.Name; 1436 // AcronymMeanings.Assign(Source.AcronymMeanings); 1437 // ImportSources.Assign(Source.ImportSources); 1438 Enabled := Source.Enabled; 1439 end; 1423 1440 1424 1441 procedure TAcronymCategory.SaveToNode(Node: TDOMNode); … … 1450 1467 begin 1451 1468 for I := 0 to AcronymMeanings.Count - 1 do 1452 TAcronymMeaning(AcronymMeanings[I]).Categories.Remove(Self);1469 AcronymMeanings[I].Categories.Remove(Self); 1453 1470 FreeAndNil(AcronymMeanings); 1454 1471 for I := 0 to ImportSources.Count - 1 do 1455 TImportSource(ImportSources[I]).Categories.Remove(Self);1472 ImportSources[I].Categories.Remove(Self); 1456 1473 FreeAndNil(ImportSources); 1457 inherited Destroy;1474 inherited; 1458 1475 end; 1459 1476 … … 1470 1487 ImportFormats := TImportFormats.Create; 1471 1488 FUpdateCount := 0; 1472 OnUpdate := T FPGList<TNotifyEvent>.Create;1489 OnUpdate := TList<TNotifyEvent>.Create; 1473 1490 end; 1474 1491 … … 1480 1497 FreeAndNil(Acronyms); 1481 1498 FreeAndNil(Categories); 1482 inherited Destroy;1499 inherited; 1483 1500 end; 1484 1501 … … 1636 1653 Line.Clear; 1637 1654 for I := 0 to Acronyms.Count - 1 do 1638 with TAcronym(Acronyms[I])do begin1655 with Acronyms[I] do begin 1639 1656 for K := 0 to Meanings.Count - 1 do 1640 with TAcronymMeaning(Meanings[K])do begin1657 with Meanings[K] do begin 1641 1658 Line.Clear; 1642 1659 Line.Add(Acronym.Name); … … 1644 1661 Context.Clear; 1645 1662 for J := 0 to Categories.Count - 1 do 1646 Context.Add( TAcronymCategory(Categories[J]).Name);1663 Context.Add(Categories[J].Name); 1647 1664 Line.Add(Context.DelimitedText); 1648 1665 F.Add(Line.CommaText); … … 1666 1683 Items.Clear; 1667 1684 for I := 0 to Acronyms.Count - 1 do 1668 with TAcronym(Acronyms[I])do begin1685 with Acronyms[I] do begin 1669 1686 for J := 0 to Meanings.Count - 1 do 1670 with TAcronymMeaning(Meanings[J])do begin1671 if (AName = '') or (Pos(AName, LowerCase( TAcronym(Acronyms[I]).Name)) > 0)1672 or (Pos(AName, LowerCase(Name)) > 0) then Items.Add( TAcronymMeaning(Meanings[J]))1687 with Meanings[J] do begin 1688 if (AName = '') or (Pos(AName, LowerCase(Acronyms[I].Name)) > 0) 1689 or (Pos(AName, LowerCase(Name)) > 0) then Items.Add(Meanings[J]) 1673 1690 end; 1674 1691 end; … … 1681 1698 Result := 0; 1682 1699 for I := 0 to Acronyms.Count - 1 do 1683 Result := Result + TAcronym(Acronyms[I]).Meanings.Count;1700 Result := Result + Acronyms[I].Meanings.Count; 1684 1701 end; 1685 1702 … … 1746 1763 end; 1747 1764 1748 procedure TAcronymDb.AssignToList(List: T FPGObjectList<TObject>; EnabledCategoryOnly: Boolean = False);1765 procedure TAcronymDb.AssignToList(List: TObjects; EnabledCategoryOnly: Boolean = False); 1749 1766 var 1750 1767 I: Integer; … … 1753 1770 List.Clear; 1754 1771 for I := 0 to Acronyms.Count - 1 do 1755 with TAcronym(Acronyms[I])do begin1772 with Acronyms[I] do begin 1756 1773 for J := 0 to Meanings.Count - 1 do 1757 with TAcronymMeaning(Meanings[J])do1774 with Meanings[J] do 1758 1775 if not EnabledCategoryOnly or (EnabledCategoryOnly and Categories.IsAnyEnabled) then begin 1759 List.Add( TAcronymMeaning(Meanings[J]));1776 List.Add(Meanings[J]); 1760 1777 end; 1761 1778 end;
Note:
See TracChangeset
for help on using the changeset viewer.