Tôi đang viết một thành phần ghi nhớ cần phải trông giống như một phiên thiết bị đầu cuối kiểu cũ. Điều này nên thực sự đơn giản, nhưng cách làm việc của FireMonkey dường như làm cho nó trở nên phức tạp đến mức khó tin.Thay đổi màu phông chữ và màu nền của TMemo trong FireMonkey
Trong ứng dụng FireMonkey không phải di động, tôi có thể nhấp chuột phải vào một điều khiển và chọn "Chỉnh sửa kiểu tùy chỉnh". Tùy chọn này không khả dụng trong ứng dụng dành cho thiết bị di động. Đây là lý do được đưa ra bởi một trong những nhà phát triển FireMonkey.
Nó hỗ trợ phong cách khác nhau trên iOS và Android. Chúng tôi không thể chạy ứng dụng trên Android theo phong cách iOS. Nhưng khi bạn cố gắng thay đổi kiểu dáng nền tảng , chúng tôi sẽ tự động sử dụng nó trên mỗi nền tảng đích. Nếu bạn muốn thay đổi kiểu mặc định của điều khiển fm, bạn nên đặt trên sách kiểu biểu mẫu và tạo kiểu trong đó hoặc tải theo style style kiểu nền tảng và thực hiện thay đổi trong đó.
Cũng rất quan trọng, Khi bạn tải kiểu nền tảng trong sách kiểu, bạn có thể muốn trường hợp ứng dụng đó sẽ không có hai bản sao kiểu nền (một hệ thống trong gói fmx và bản sao khác trong sách kiểu của bạn). Đối với nó, bạn nên đặt cờ đúng trong TStylebook.UseStyleManager. Trong kiểu chữ này trong sách Kiểu sẽ thay thế kiểu nền tảng.
OK, vì vậy tôi nghĩ mình cần tạo kiểu tùy chỉnh. Làm cách nào để tôi tạo một kiểu tùy chỉnh để ghi đè lên chỉ các thuộc tính phông chữ và nền?
Tôi đoán tôi có thể ghi đè thủ tục ApplyStyle giống như thế này.
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;
Làm cách nào để biết loại đối tượng nền là gì và thuộc tính nào tôi cần thay đổi?
Chắc chắn, việc thay đổi màu nền của điều khiển không thể khó khăn như vậy! Tôi có thiếu một cái gì đó cơ bản với các phong cách FM?