2014-11-17 6 views
5

Wenn Sie ein TMultiview-Steuerelement in einen Frame einfügen und versuchen, diesen Frame in der IDE erneut zu öffnen, wird ein AV verursacht und kann nicht angezeigt werden.TMultiView auf Frame verursacht AV

Es ist ein bekanntes Problem und an EMB berichtet. Das Problem wurde dem neuen Qualitätsportal gemeldet: https://quality.embarcadero.com/browse/RSP-9621. Beachten Sie, dass Sie angemeldet sein müssen, um diesen Bericht anzuzeigen. Für diejenigen, die hier noch kein Konto haben, ist das, was der Bericht, wie von der Zeit des Schreibens aussieht:

enter image description here

Kennt jemand dieses Problem zu umgehen, oder kann mit einer Vermeidung des Problems kommen?

+0

Ich folgte Ihrem Link und es ergab nichts. Bitte geben Sie hier die Details an. –

+0

Entschuldigung, vielleicht kann ich nicht direkt verlinken. Ich habe einen anderen Link –

+0

geliefert Ich sehe keinen Beweis, dass dies entweder zu QC oder zu ihrem neuen System gemeldet wurde (https://quality.embarcadero.com/secure/Dashboard.jspa) Haben Sie eine Ausgabenummer? –

Antwort

3

Es gibt Abhilfe, die Sie diesen Rahmen sehen ermöglichen und bearbeiten, aber es beinhaltet einige manuelle Handhabung beider .pas und .fmx Dateien

Angenommen, Sie Rahmen mit TMultiView Komponente auf sie geschaffen haben.

Ihre .pas-Datei wie folgt aussieht:

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. 

und Ihre .fmx Datei wie folgt aussieht:

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 

Um erfolgreich den Rahmen öffnen Sie beide Dateien in einigen Editor zu öffnen haben wie Notizblock. ersetzen TFrame mit TForm in Ihrer .pas-Datei Klassendeklaration,

TFrame3 = class(TForm) 

dann spezifische Eigenschaften aus .fmx Datei TFrame ausschneiden (und speichern Sie es irgendwo, weil man sie zurück müssen kopieren, nachdem Sie die Bearbeitung abgeschlossen)

Jetzt können Sie Ihren Rahmen (Form) in IDE frei öffnen und tun, was auch immer Sie damit brauchen. Nachdem Sie fertig sind, speichern Sie die Dateien, schließen Sie sie in IDE, und bearbeiten Sie erneut .pas und .fmx-Dateien in Editor.

TFrame3 = class(TFrame) 

und TForm spezifischen Eigenschaften ersetzen, die IDE mit Ihrem ursprünglichen TFrame diejenigen eingefügt

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

Ich habe etwa eine Woche lang mit diesem Thema beschäftigt jetzt, und bis heute unter dem Eindruck war, dass meine XE7 Die Installation ist möglicherweise beschädigt. In der Zwischenzeit, was ich getan habe, um dieses Problem zu umgehen, war schneiden die TMultiView mit all seinen Kindern aus der .FMX Datei, öffnen Sie den Rahmen in IDE und einfügen. Der einzige Nachteil ist, dass Sie die Ereignisse erneut verknüpfen müssen.

Verwandte Themen