Alternatives for For..in loop in Delphi 7?

delphi, delphi-7

Solution

Delphi 7 does not support `for .. in`, so you have to iterate the `TSMBios.ProcessorInfo` array by yourself

procedure GetProcessorInfo;
Var
  SMBios             : TSMBios;
  LProcessorInfo     : TProcessorInformation;
  LSRAMTypes         : TCacheSRAMTypes;
  LIdx : Integer; // add this
begin
  SMBios:=TSMBios.Create;
  try
    WriteLn('Processor Information');
    if SMBios.HasProcessorInfo then
      // for LProcessorInfo in SMBios.ProcessorInfo do
      for LIdx := Low( SMBios.ProcessorInfo ) to High( SMBios.ProcessorInfo ) do
      begin
        LProcessorInfo := SMBios.ProcessorInfo[LIdx];
        ...
      end;
  ...
end;

Problem

I'm getting an error with Delphi 7 on for in loop when compiling this code Link ``` procedure GetProcessorInfo; Var SMBios : TSMBios; LProcessorInfo : TProcessorInformation; LSRAMTypes : TCacheSRAMTypes; begin SMBios:=TSMBios.Create; try WriteLn('Processor Information'); if SMBios.HasProcessorInfo then for LProcessorInfo in SMBios.ProcessorInfo do // <-- Error here begin ... end; ... end; ``` Error message: [Error] Project1.dpr(52): Operator not applicable to this operand type Any alternative way ? or how can I fix it ?

Original source