2014-11-17 10 views
5

Po umieszczeniu kontrolki TMultiview na ramce i próbie ponownego otwarcia tej ramki w IDE powoduje AV i nie można go zobaczyć.TMultiView on Frame powoduje AV

Jest to znany problem i zgłoszone do EMB. Problem został zgłoszony do nowego portalu jakości tutaj: https://quality.embarcadero.com/browse/RSP-9621. Pamiętaj, że musisz się zalogować, aby wyświetlić ten raport. Dla tych, którzy nie mają konta, tutaj jest to, co wygląda jak raport o czasie pisania:

enter image description here

Czy ktoś wie z obejścia, lub może pochodzić z obejścia problemu?

+0

Podążyłem za twoim łączem i nic nie ujawniło. Podaj szczegóły tutaj. –

+0

Przepraszam, może nie mogę zrobić tego bezpośrednio. Dostarczyłem inny link –

+0

Nie widzę żadnych dowodów, że zgłoszono to do QC lub do ich nowego systemu (https://quality.embarcadero.com/secure/Dashboard.jspa) Czy masz numer wydania? –

Odpowiedz

3

Istnieje obejście, które pozwalają na przeglądanie i edycję tej ramki, ale to wymaga ręcznej obsługi obu .pas i plików .fmx

Powiedzmy, że stworzyliśmy ramkę ze składnikiem TMultiView na nim.

Plik .pas wygląda następująco:

unit Unit3; 

interface 

uses 
    System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 
    FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, FMX.MultiView; 

type 
    TFrame3 = class(TFrame) 
    MultiView1: TMultiView; 
    private 
    { Private declarations } 
    public 
    { Public declarations } 
    end; 

implementation 

{$R *.fmx} 

end. 

i plik .fmx wygląda następująco:

object Frame3: TFrame3 
    Size.Width = 561.000000000000000000 
    Size.Height = 408.000000000000000000 
    Size.PlatformDefault = False 
    TabOrder = 0 
    object MultiView1: TMultiView 
    Size.Width = 250.000000000000000000 
    Size.Height = 408.000000000000000000 
    Size.PlatformDefault = False 
    TabOrder = 0 
    end 
end 

W celu skutecznego otwarcia ramki trzeba otworzyć oba pliki w jakimś edytorze jak Notatnik. Wymień TFrame z TForm w .pas deklaracji klasy plików

TFrame3 = class(TForm) 

następnie wyciąć TFrame specyficzne właściwości z .fmx pliku (i przechowywać go gdzieś, bo trzeba będzie skopiować je z powrotem po zakończeniu edycji)

Size.Width = 561.000000000000000000 
    Size.Height = 408.000000000000000000 
    Size.PlatformDefault = False 
    TabOrder = 0 

Teraz możesz swobodnie otwierać ramkę (formularz) w IDE i robić to, czego potrzebujesz. Po zakończeniu zapisz pliki, zamknij je w IDE i ponownie edytuj pliki .pas i .fmx w Notatniku.

TFrame3 = class(TFrame) 

i zastąpić TForm specyficzne właściwości, które IDE wstawione ze swoimi oryginalnymi TFrame

Left = 0 
    Top = 0 
    ClientHeight = 480 
    ClientWidth = 640 
    FormFactor.Width = 320 
    FormFactor.Height = 480 
    FormFactor.Devices = [Desktop, iPhone, iPad] 
    DesignerMasterStyle = 0 
0

mam do czynienia z tym problemem przez około tydzień teraz, i do dziś był pod wrażeniem, że mój XE7 instalacja może być uszkodzona. W międzyczasie, co zrobiłem, aby obejść ten problem, to przyciąćTMultiView ze wszystkimi jego dziećmi z pliku .FMX, otworzyć ramkę w IDE i wkleić. Jedyną wadą jest ponowne połączenie zdarzeń.