About the author
The following code in the unit of a package demonstrates how to iterate the names of the environment options in the Delphi IDE
procedure Register;var LOTAServices: IOTAServices; LEnvironmentOptions: IOTAEnvironmentOptions; LOptionNames: TOTAOptionNameArray; LOptionName: TOTAOptionName; SL: TStringList; LKind, LName, Line: string;begin if Supports(BorlandIDEServices, IOTAServices, LOTAServices) then begin LEnvironmentOptions := LOTAServices.GetEnvironmentOptions; LOptionNames := LEnvironmentOptions.GetOptionNames; SL := TStringList.Create; for LOptionName in LOptionNames do begin LKind := GetEnumName(typeinfo(TTypeKind), Ord(LOptionName.Kind)); LName := LOptionName.Name; Line :=Format('<tr>'#13#10+'<td>%s</td>'#13#10+'<td>%s</td>'#13#10+'</tr>'#13#10, [LName, LKind]); SL.Add(Line); end; SL.Sort; Clipboard.AsText := SL.Text; SL.Free; end;end;
A method to design records so that they're allocated on a specific byte boundary, such as 16 bytes, 512 bytes, 4096 bytes, etc.