Delphi: pourquoi le const est-il défini à cette valeur étrange, en utilisant l'interop OLE Excel?

Désolé, je suis très ingororant et j'aimerais savoir pourquoi la lWBATWorkSheet const lWBATWorkSheet est lWBATWorkSheet au numéro -4167 . Merci, Jack.

 function TForm1.SaveAsExcelFile(AGrid: TSsortingngGrid; ASheetName, AFileName: ssortingng): boolean; const xlWBATWorksheet = -4167; var righe, colonne: Integer; GridPrevFile: ssortingng; XLApp, Sheet, Data: OLEVariant; l, s: Integer; begin // Prepare Data Data := VarArrayCreate([1, AGrid.RowCount, 1, AGrid.ColCount], varVariant); for l := 0 to AGrid.ColCount - 1 do for s := 0 to AGrid.RowCount - 1 do Data[s + 1, l + 1] := AGrid.Cells[l, s]; // Create Excel-OLE Object Result := False; XLApp := CreateOleObject('Excel.Application'); try // Hide Excel XLApp.Visible := False; // Add new Workbook XLApp.Workbooks.Add(xlWBatWorkSheet); Sheet := XLApp.Workbooks[1].WorkSheets[1]; Sheet.Name := ASheetName; // Fill up the sheet Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount,AGrid.ColCount)].Value := Data; // Save Excel Worksheet try XLApp.Workbooks[1].SaveAs(AFileName); Result := True; except ShowMessage('Fatal Error!'); end; finally // Quit Excel if not VarIsEmpty(XLApp) then begin XLApp.DisplayAlerts := False; XLApp.Quit; XLAPP := Unassigned; Sheet := Unassigned; end; end; end; 

Ajouter excel2000 ou excel97 à la clause d'utilisation vous permettra de vous débarrasser de la nécessité de searchr et de déclarer les constantes par vous-même.

 implementation uses excel2000; {$R *.dfm} procedure TForm3.FormCreate(Sender: TObject); begin Showmessage(Format('Unsigned %u, Signed %d', [xlWBATWorksheet , xlWBATWorksheet])); // will return Unsigned 4294963129, Signed -4167 end; 

Il s'agit d'une énumération. Probablement, c'est cette valeur parce que c'était la prochaine valeur gratuite dans la list.

Voici une belle list avec les énumérations Microsofts où vous verrez qu'ils ont commencé avec -4098 et utilisez les valeurs à partir de là.

http://include.wutils.com/com-dll/constants/constants-Graph.htm