2013-09-26 4 views
6

में एक टीएममो के फ़ॉन्ट और पृष्ठभूमि रंग बदलें मैं एक ज्ञापन घटक लिख रहा हूं जिसे पुराने पुराने टर्मिनल सत्र की तरह दिखने की आवश्यकता है। यह वास्तव में सरल होना चाहिए, लेकिन जिस तरह से FireMonkey शैलियों का काम यह अविश्वसनीय रूप से जटिल लग रहा है।फ़ायरमॉन्की

एक गैर मोबाइल फ़ायरमॉन्की ऐप में मैं एक नियंत्रण पर राइट क्लिक कर सकता हूं और "कस्टम स्टाइल संपादित करें" का चयन कर सकता हूं। यह विकल्प मोबाइल ऐप्स में उपलब्ध नहीं है। फ़ायरमॉन्की डेवलपर्स में से एक द्वारा दिया गया कारण यहां दिया गया है।

यह आईओएस और एंड्रॉइड पर विभिन्न शैली का समर्थन करता है। हम आईओएस शैली में एंड्रॉइड पर एप्लिकेशन नहीं चला सकते हैं। लेकिन जब आप प्लेटफ़ॉर्म शैली को बदलने का प्रयास करते हैं, तो हम स्वचालित रूप से प्रत्येक लक्ष्य प्लेटफ़ॉर्म पर इसका उपयोग करेंगे। यदि आप एफएम नियंत्रण की डिफ़ॉल्ट शैली को बदलना चाहते हैं, तो आपको फॉर्म स्टाइल बुक पर रखना चाहिए और इसमें स्टाइल बनाना चाहिए, या स्टाइलबुक प्लेटफ़ॉर्म शैली में लोड करना चाहिए और इसमें बदलाव करना चाहिए।

इसके अलावा

बहुत महत्वपूर्ण है, जब आप शैली पुस्तक में मंच शैली लोड करते हैं, आप कि आवेदन उदाहरण मंच शैली के दो प्रतिलिपि नहीं होगा चाहते हैं कर सकते हैं (एक - अपनी शैली पुस्तक में प्रणाली FMX पैकेज और अन्य नकल में)। इसके लिए आपको TStylebook.UseStyleManager में ध्वज सही सेट करना चाहिए। में स्टाइल बुक में यह केस शैली प्लेटफ़ॉर्म शैली को प्रतिस्थापित करेगी।

ठीक है, तो मुझे लगता है कि मुझे एक कस्टम शैली बनाने की आवश्यकता है। मैं केवल फ़ॉन्ट और पृष्ठभूमि गुणों को ओवरराइड करने के लिए कस्टम शैली बनाने के बारे में कैसे जा सकता हूं?

मुझे लगता है कि मैं इस तरह कुछ लागू प्रक्रिया प्रक्रिया को ओवरराइड कर सकता हूं।

procedure TMyMemo.ApplyStyle; 
var 
    BackgroundObject: TFmxObject; 
begin 
    inherited; 

    BackgroundObject := FindStyleResource('content'); 

    if Assigned(BackgroundObject) then 
    begin 
    // Change the background color of the background 
    end; 
end; 

मुझे कैसे पता चलेगा कि पृष्ठभूमि वस्तु किस प्रकार है और मुझे किस संपत्ति को बदलने की आवश्यकता है?

निश्चित रूप से, नियंत्रण के पृष्ठभूमि रंग को बदलना यह मुश्किल नहीं हो सकता है! क्या मुझे एफएम शैलियों के साथ कुछ मौलिक याद आ रहा है?

उत्तर

1

अच्छी तरह से मुझे पता चला कि फायरमोनकी में फोंट को बदला नहीं जा सकता है! आप इसे एक अलग फ़ॉन्ट पर सेट कर सकते हैं लेकिन जब आप इसे किसी डिवाइस पर चलाते हैं तो यह डिफ़ॉल्ट पर जाएगा।

यदि आप ज्ञापन के लिए पृष्ठभूमि रंग बदलना चाहते हैं तो आपको अपने फॉर्म में एक स्टाइलबुक जोड़ना चाहिए और अपनी इच्छित शैली फ़ाइल लोड करना चाहिए (डिफ़ॉल्ट प्रकाश आईओएस शैली की तरह)। जब आप शैली को लोड करते हैं तो मेमोस्टाइल पर जाते हैं और पृष्ठभूमि बदलते हैं।

आशा है कि इससे मदद मिलती है!

0

जो आपके लिए उपयोगी इस समाधान का

uses System.UIConsts; 


procedure TfPlanJob.mDetailApplyStyleLookup(Sender: TObject); 
var Obj: TFmxObject; 
    Rectangle1: TRectangle; 
begin  
    Obj := mDetail.FindStyleResource('background'); 
    if Obj <> nil then 
    begin 
      TControl(Obj).Margins := TBounds.Create(TRectF.Create(-1, -1, -1, -1)); 
      Rectangle1    := TRectangle.Create(Obj); 
      Obj.AddObject(Rectangle1); 
      Rectangle1.Align  := TAlignLayout.Client; 
      Rectangle1.Fill.Color := claLightslategrey; 
      Rectangle1.Stroke.Color := claNull; 
      Rectangle1.HitTest  := False; 
      Rectangle1.SendToBack; 
    end; 
end; 
आशा
संबंधित मुद्दे