specify variable name with string variable

classic Classic list List threaded Threaded
21 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: specify variable name with string variable

Santiago A.
El 08/07/2019 a las 22:43, James Richters escribió:

 

ports that are defined by port numbers and pins in an ini file,

Well, then they are dynamic. They are not hardcoded.

I would use something like:

TPortIdentifier=(Pin_1, pin_2, Port_x, Port_y...);
TIOPort=object
       private
          FPortPin:boolean;
          FPortByte:boolean; 
          procedure SetPortPin(value:boolean);               
          procedure SetPortByte(value:byte);               
       public 
          OtherData:...  // pin, port etc or other data
          PortAdress:PWord; // pointer to memory
          Name:string;
          constructor Init(aName:name;aPword:pWord);
          property  PortPin:boolean read fPortPin write SetPortPin;               
          property  PortByte:byte read fPortByte write SetPortByte;                            
        end;
  TPortList=array[TPortIdentifier] of TIOPort;

var
 PortList:TPortList;

begin
  // fill the array with name and values from Ini file
   PorList[Pin_1].init('Pin-1',@xxxx);
   PorList[Pin_2].init('Pin-2',@xxxx);

  // call
  PortList[pin_1].PortPin:=true;
  PortList[pin_2].PortPin:=false; 
end. 

Or you can use a TFPGMap from the standard library fgl.

-- 
Saludos

Santiago A.

_______________________________________________
fpc-pascal maillist  -  [hidden email]
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
12