Why variables are declared as TStrings and created as TStringList?
eg: the var sl is declared as TStrings but created as TStringList
var sl : TStrings; begin sl := TStringList.Create; // add string values... sl.Add( 'Delphi' ); sl.Add( '2.01' ); // get string value using its index // sl.Strings( 0 ) will return // 'Delphi' MessageDlg( sl.Strings[ 0 ], mtInformation, [mbOk], 0 ); sl.Free; end;
TStrings is an abstract type that doesn't have all methods implemented.
TStringList is a descendant of TStrings and implements all functions. In your code, you could declare your variable also as TStringList.
However e.g. on function definitions it makes sense to accept a TStrings parameter instead of a TStringList:
procedure doSomething(lst: TStrings); This enables the function to work with all implementations of TStrings, not only TStringList.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With