source: trunk/Packages/TemplateGenerics/Generic/GenericListString.inc

Last change on this file was 30, checked in by chronos, 12 years ago
  • Updated: Component versions.
  • Added: Missing forms.
File size: 2.3 KB
Line 
1{$IFDEF INTERFACE}
2
3{$DEFINE TGListIndex := TGListStringIndex}
4{$DEFINE TGListItem := TGListStringItem}
5{$DEFINE TGList := TGListStringList}
6{$DEFINE TGListSortCompare := TGListStringSortCompare}
7{$DEFINE TGListToStringConverter := TGListStringToStringConverter}
8{$DEFINE TGListFromStringConverter := TGListStringFromStringConverter}
9{$DEFINE TGListItemArray := TGListStringItemArray}
10{$DEFINE INTERFACE}
11{$I 'GenericList.inc'}
12
13 // TGListString<TListStringIndex, TListStringItem> = class(TGList)
14 TGListString = class(TGList)
15 private
16 public
17 procedure Delete(Index: TGListStringIndex); override;
18 procedure Clear; override;
19 procedure Assign(Source: TGList); override;
20 function IndexOf(Item: TGListItem; Start: TGListIndex = 0): TGListIndex; override;
21 constructor Create; override;
22 destructor Destroy; override;
23 end;
24
25{$UNDEF INTERFACE}
26{$ENDIF}
27
28{$IFDEF IMPLEMENTATION_USES}
29
30 {$DEFINE IMPLEMENTATION_USES}
31 {$I 'GenericList.inc'}
32
33{$UNDEF IMPLEMENTATION_USES}
34{$ENDIF}
35
36{$IFDEF IMPLEMENTATION}
37
38{$DEFINE TGListIndex := TGListStringIndex}
39{$DEFINE TGListItem := TGListStringItem}
40{$DEFINE TGList := TGListStringList}
41{$DEFINE TGListSortCompare := TGListStringSortCompare}
42{$DEFINE TGListToStringConverter := TGListStringToStringConverter}
43{$DEFINE TGListFromStringConverter := TGListStringFromStringConverter}
44{$DEFINE TGListItemArray := TGListStringItemArray}
45{$DEFINE IMPLEMENTATION}
46{$I 'GenericList.inc'}
47
48{ TGListString }
49
50procedure TGListString.Assign(Source: TGList);
51begin
52 Clear;
53 inherited;
54end;
55
56procedure TGListString.Delete(Index: TGListStringIndex);
57begin
58 FItems[Index] := '';
59 inherited Delete(Index);
60end;
61
62procedure TGListString.Clear;
63var
64 I: TGListStringIndex;
65begin
66 I := 0;
67 while I < Count do begin
68 FItems[I] := '';
69 I := I + 1;
70 end;
71 inherited Clear;
72end;
73
74function TGListString.IndexOf(Item: TGListItem; Start: TGListIndex): TGListIndex;
75begin
76 Result := Start;
77 while (Result < Count) and
78 (CompareStr(FItems[Result], Item) <> 0) do
79 Result := Result + 1;
80 if Result = FCount then Result := -1;
81end;
82
83constructor TGListString.Create;
84begin
85 inherited;
86end;
87
88destructor TGListString.Destroy;
89begin
90 Clear;
91 inherited Destroy;
92end;
93
94{$UNDEF IMPLEMENTATION}
95{$ENDIF}
Note: See TracBrowser for help on using the repository browser.