type
  TPaperSize = record
    rCode: Integer;
    rName: string;
  end;const
  cPaperSizeCount = 28;
  cPaperSizeList: array[0 .. Pred(cPaperSizeCount)] of TPaperSize =
(
(rCode: 08; rName: 'A3')            {00},//A3=8
(rCode: 09; rName: 'A4')            {01},//A4=9
(rCode: 10; rName: 'A4Small')       {02},//A4Small=10
(rCode: 11; rName: 'A5')            {03},//A5=11
(rCode: 12; rName: 'B4')            {04},//B4=12
(rCode: 13; rName: 'B5')            {05},//B5=13
(rCode: 24; rName: 'CSheet')        {06},//CSheet=24
(rCode: 27; rName: 'Custom')        {07},//Custom=27
(rCode: 09; rName: 'Default')       {08},//Default=0 //rCode: 00;
(rCode: 25; rName: 'DSheet')        {09},//DSheet=25
(rCode: 20; rName: 'Env10')         {10},//Env10=20
(rCode: 21; rName: 'Env11')         {11},//Env11=21
(rCode: 22; rName: 'Env12')         {12},//Env12=22
(rCode: 23; rName: 'Env14')         {13},//Env14=23
(rCode: 19; rName: 'Env9')          {14},//Env9=19
(rCode: 26; rName: 'ESheet')        {15},//ESheet=26
(rCode: 07; rName: 'Executive')     {16},//Executive=7
(rCode: 14; rName: 'Folio')         {17},//Folio=14
(rCode: 04; rName: 'Ledger')        {18},//Ledger=4
(rCode: 05; rName: 'Legal')         {19},//Legal=5
(rCode: 01; rName: 'Letter')        {20},//Letter=1
(rCode: 02; rName: 'LetterSmall')   {21},//LetterSmall=2
(rCode: 18; rName: 'Note')          {22},//Note=18
(rCode: 16; rName: 'qr10X14')       {23},//qr10X14=16
(rCode: 17; rName: 'qr11X17')       {24},//qr11X17=17
(rCode: 15; rName: 'Quarto')        {25},//Quarto=15
(rCode: 06; rName: 'Statement')     {26},//Statement=6
(rCode: 03; rName: 'Tabloid')       {27} //Tabloid=3
);function ZsPaperSizeNameToCode(mName: string): Integer;
var
  I: Integer;
begin
  Result := -1;
  for I := 0 to Pred(cPaperSizeCount) do
    if UpperCase(cPaperSizeList[I].rName) = UpperCase(mName) then begin
      Result := cPaperSizeList[I].rCode;
      Exit;
    end;
end; { ZsPaperSizeNameToCode }procedure TForm1.Button1Click(Sender: TObject);
var
  I: Variant;
begin
  I := ZsPaperSizeNameToCode('A4');
  QRCompositeReport1.PrinterSettings.PaperSize := I;
end;