2012-12-19 14 views
7

Delphi X3'te Firemonkey uygulamasının ana TForm3D penceresi Context:TContext3D ürününe sahiptir; bu, kullanılan mevcut cihaza erişim hakkı verir.
Windows7 64 ile durumumda, her zaman FMX.Context.DX10.pas'dan TDX10Context nesnesini gösterir.Firemonkey, Delphi XE3'te bir DirectX 9 bağlamı kullanmaya nasıl zorlanır?

Sadece TCustomDX9Context ancesini görmek için FMX.Context.DX9.pas adresinden TDX9Context sınıfından yeni örnek oluşturma görünürlüğüm yok.

Ben sıkı bir özel TList :(yılında registerd 3D bağlamları toplamak TContextManager sınıfı bulduk, bu kurucu çağırabilirsiniz tek sınıf ...

{ Don't call contructor directly from TContext - only using TContextManager class } 
constructor CreateFromWindow(const AParent: TFmxHandle; const AWidth, AHeight: Integer;` 

Bir bağlam almak için TContextManager çağrısıdır yeni biçimler oluştururken, daha sonra salt okunur özellik TContextManager.DefaultContextClass kullanılır.

ben DefaultContextClass dışındaki bağlamlarda erişimi bulabilirsiniz hiçbir yolu yoktur.

+2

(https://plus.google.com/u/0/107332916729762772829/ gönderiler/VKvvLHwdYUc): [GlobalUseDX10] (http://docwiki.embarcadero.com/Libraries/XE3/en/FMX.Types.GlobalUseDX10): = Yanlış; –

+0

Evet! :) Bu beklenmedik derecede kolay ve büyülü oldu! işe yarıyor! Bu kod satırı application.initialize'den önce olmalı! – piXelicidio

+0

Ben burada bir acemi oldum, kendi soruma cevap vermeli mi bilmiyorum? : -/ – piXelicidio

cevap

2

proje dosyasında aşağıdaki satırı koyun: Kayıt içinG + '[post] yorumunda itibaren

GlobalUseDX10 := False; <<-- add this. 
Application.Initialize; <<-- just before this line. 
+0

Teşekkürler, hile mükemmel çalışıyor. Ayrıca g + kullanıcısına da teşekkür etmeliyiz: Sergionn Rad. – piXelicidio

İlgili konular