Я делаю приложение с несколькими устройствами с помощью Rad Studio XE7. Иногда, когда я хочу сохранить свое последнее изменение в форме, Rad Studio вызывает исключение «Аргумент вне диапазона», но не дает мне никакой информации о том, где проблема. Фрагмент отчета об ошибке этого:Приложение XE7 Firemonkey получает «аргумент вне диапазона»
[067B425F]{fmx210.bpl } FMX.Types.{System.Generics.Collections}TList.SetCapacity (Line 737, "System.Generics.Collections.pas" + 1) + $1 [067B1703]{fmx210.bpl } FMX.Types.RegisterShortCuts (Line 7266, "FMX.Types.pas" + 23) + $7 [067448C7]{fmx210.bpl } FMX.Styles..TStyleReader (Line 351, "FMX.Styles.pas" + 0) + $132E [067448D6]{fmx210.bpl } FMX.Styles.TStyleReader.SetName (Line 368, "FMX.Styles.pas" + 0) + $2 [067449CE]{fmx210.bpl } FMX.Styles.TStyleStreaming.SameStyle (Line 404, "FMX.Styles.pas" + 1) + $17 [067177F4]{fmx210.bpl } FMX.Controls.DoWrite (Line 5896, "FMX.Controls.pas" + 2) + $C [06717847]{fmx210.bpl } FMX.Controls.TStyleBook.DefineProperties (Line 5902, "FMX.Controls.pas" + 0) + $B [50161682]{rtl210.bpl } System.Classes.TWriter.WriteProperties (Line 11571, "System.Classes.pas" + 19) + $8 [50160EE9]{rtl210.bpl } System.Classes.TWriter.WriteData (Line 11381, "System.Classes.pas" + 30) + $6 [5016C1F3]{rtl210.bpl } System.Classes.TComponent.WriteState (Line 15547, "System.Classes.pas" + 0) + $3 [50160CBF]{rtl210.bpl } System.Classes.TWriter.WriteComponent (Line 11333, "System.Classes.pas" + 18) + $8 [067A8F01]{fmx210.bpl } FMX.Types.TFmxObject.GetChildren (Line 4750, "FMX.Types.pas" + 7) + $17 [06760403]{fmx210.bpl } FMX.Forms.TCommonCustomForm.Notification (Line 3567, "FMX.Forms.pas" + 1) + $1 [5005F532]{rtl210.bpl } [email protected] (Line 16299, "System.pas" + 4) + $0 [50160FFA]{rtl210.bpl } System.Classes.TWriter.WriteData (Line 11403, "System.Classes.pas" + 52) + $16 [5016C1F3]{rtl210.bpl } System.Classes.TComponent.WriteState (Line 15547, "System.Classes.pas" + 0) + $3 [50160CBF]{rtl210.bpl } System.Classes.TWriter.WriteComponent (Line 11333, "System.Classes.pas" + 18) + $8 [5016114E]{rtl210.bpl } System.Classes.TWriter.WriteDescendent (Line 11431, "System.Classes.pas" + 8) + $4 [211357A3]{designide210.bpl} ComponentDesigner.WriteStream (Line 4184, "ComponentDesigner.pas" + 11) + $7 [21135870]{designide210.bpl} ComponentDesigner.TComponentRoot.WriteRootStream (Line 4207, "ComponentDesigner.pas" + 5) + $B [21132540]{designide210.bpl} ComponentDesigner.TComponentRoot.GetRootStream (Line 2936, "ComponentDesigner.pas" + 14) + $5 [211388F6]{designide210.bpl} ComponentDesigner.TComponentRoot.Save (Line 5194, "ComponentDesigner.pas" + 1) + $2 [211389BE]{designide210.bpl} ComponentDesigner.TComponentRoot.Save (Line 5208, "ComponentDesigner.pas" + 15) + $12 [21D7CF56]{delphicoreide210.bpl} DelphiModule.TPascalCodeMgrModHandler.SaveFile (Line 1589, "DelphiModule.pas" + 2) + $8 [206A6F84]{coreide210.bpl} SourceModule.TCodeISourceModule.SaveFile (Line 1514, "SourceModule.pas" + 2) + $22 [206A4604]{coreide210.bpl} SourceModule.TSourceModule.SaveFile (Line 656, "SourceModule.pas" + 3) + $1F [2087C1AC]{coreide210.bpl} DocModul.TDocModule.TheMalteseFalcon (Line 1438, "DocModul.pas" + 60) + $2 [500F11ED]{rtl210.bpl } System.Rtti.RawInvoke (Line 7090, "System.Rtti.pas" + 46) + $0 [500F15DF]{rtl210.bpl } System.Rtti.Invoke (Line 7289, "System.Rtti.pas" + 57) + $6 [500E7BBA]{rtl210.bpl } System.Rtti.TRttiInstanceMethodEx.DispatchInvoke (Line 5409, "System.Rtti.pas" + 101) + $20 [500F1A74]{rtl210.bpl } System.Rtti.TRttiMethod.Invoke (Line 7980, "System.Rtti.pas" + 1) + $11 [2087BE24]{coreide210.bpl} DocModul.TDocModule.Save (Line 1362, "DocModul.pas" + 3) + $22 [206A5731]{coreide210.bpl} SourceModule.TSourceModule.Save (Line 1005, "SourceModule.pas" + 13) + $7 [20880E20]{coreide210.bpl} DocModul.SaveModifiedModules (Line 3584, "DocModul.pas" + 57) + $3 [0041FEA5]{bds.exe } AppMain.{System.Generics.Collections}TList.IndexOf (Line 1151, "System.Generics.Collections.pas" + 0) + $1 [5016D523]{rtl210.bpl } System.Classes.TBasicAction.Execute (Line 16099, "System.Classes.pas" + 3) + $7 [505AC25A]{vcl210.bpl } Vcl.ActnList.TCustomAction.Execute (Line 259, "Vcl.ActnList.pas" + 19) + $35 [5016D3A7]{rtl210.bpl } System.Classes.TBasicActionLink.Execute (Line 16010, "System.Classes.pas" + 2) + $7 [505C316C]{vcl210.bpl } Vcl.Controls.TControl.Click (Line 7346, "Vcl.Controls.pas" + 7) + $7 [5063F950]{vcl210.bpl } Vcl.ComCtrls.TToolButton.Click (Line 21481, "Vcl.ComCtrls.pas" + 0) + $0 [505C3631]{vcl210.bpl } Vcl.Controls.TControl.WMLButtonUp (Line 7487, "Vcl.Controls.pas" + 7) + $6 [505C2C15]{vcl210.bpl } Vcl.Controls.TControl.WndProc (Line 7232, "Vcl.Controls.pas" + 91) + $6 [5016E218]{rtl210.bpl } System.Classes.StdWndProc (Line 16600, "System.Classes.pas" + 8) + $0 [505C2850]{vcl210.bpl } Vcl.Controls.TControl.Perform (Line 7010, "Vcl.Controls.pas" + 10) + $8 [505C6E12]{vcl210.bpl } Vcl.Controls.GetControlAtPos (Line 9773, "Vcl.Controls.pas" + 4) + $75 [505C6EDA]{vcl210.bpl } Vcl.Controls.TWinControl.ControlAtPos (Line 9796, "Vcl.Controls.pas" + 13) + $E [505C2850]{vcl210.bpl } Vcl.Controls.TControl.Perform (Line 7010, "Vcl.Controls.pas" + 10) + $8 [505C6FA8]{vcl210.bpl } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 9820, "Vcl.Controls.pas" + 15) + $29 [505C755E]{vcl210.bpl } Vcl.Controls.TWinControl.WndProc (Line 9989, "Vcl.Controls.pas" + 104) + $6 [50641A65]{vcl210.bpl } Vcl.ComCtrls.TToolBar.UpdateButtonState (Line 22759, "Vcl.ComCtrls.pas" + 11) + $27 [50641AA6]{vcl210.bpl } Vcl.ComCtrls.TToolBar.UpdateButtonStates (Line 22770, "Vcl.ComCtrls.pas" + 3) + $4 [50644444]{vcl210.bpl } Vcl.ComCtrls.TToolBar.WndProc (Line 24345, "Vcl.ComCtrls.pas" + 104) + $6 [505C6D1C]{vcl210.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 9750, "Vcl.Controls.pas" + 3) + $6 [5016E218]{rtl210.bpl } System.Classes.StdWndProc (Line 16600, "System.Classes.pas" + 8) + $0 [507176C9]{vcl210.bpl } Vcl.Forms.TApplication.CancelHint (Line 11181, "Vcl.Forms.pas" + 6) + $D [5071635B]{vcl210.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10352, "Vcl.Forms.pas" + 23) + $1 [5071639E]{vcl210.bpl } Vcl.Forms.TApplication.HandleMessage (Line 10382, "Vcl.Forms.pas" + 1) + $4 [507166D1]{vcl210.bpl } Vcl.Forms.TApplication.Run (Line 10520, "Vcl.Forms.pas" + 26) + $3
Я думаю, что проблема заключается в компоненте Stylebook, где я определил некоторые конструкции так, что некоторые параметры могут быть изменены только ими. Это расстраивает то, что коммерческое программное обеспечение не дает возможности, по крайней мере, обойти проблему. Мне просто нужно понять, что не делать.
К сожалению, ваш стек вызовов не читается. Я не могу сохранить его без усилий, что я не хочу инвестировать. Можете ли вы отредактировать его, чтобы мы могли понять это. Тем не менее, это, по-видимому, является ошибкой в среде IDE. Вы должны сообщить об этом поставщику. –