Giter VIP home page Giter VIP logo

fmxui's Introduction

English | 简体中文

FMXUI

Features

  • Compatible Base on FireMonkey framework, you can build for all platform
  • Friendly Introduce some Java-Style usage
  • Powerful Supports various common usage
  • Easy Extremely easy to learn and use, friendly construction
  • Free Under MIT license, you can use it anywhere whatever you want

Requirement

Delphi 10 +

Project Participant (Thank)

@KngStr

Contributing

Welcome to contribute to FMXUI. Clone your own fork FMXUI repository, commit your work on topic branches and make pull requests. See [CONTRIBUTING.md] for details.

FMXUI Classes

TView basic view
TViewGroup view group
TLinearLayout linear layout
TRelativeLayout relative layout
TGridsLayout grid layout

TTextView text view
TButtonView button view
TEditView edit box view
TImageView image view
TProgressView progress bar view
TFrameView Frame view extension class
TListViewEx list box view
TBadgeView unread message prompt little red dot

TCalendarView calender view, support Lunar Calendar

TGridView trellis view, through the data adapter to achieve a variety of functions
TStringGridView Strings grid view
TDBGridView data set grid view

TRingView hollow graphics view
TMultiPathView multi-path visual component

TAsync asynchronous task processing class
TToastManager Toast Manager

TDialogStyleManager dialog style manager
TDialogBuilder common dialog box construction category
TDialog dialog base class
TAlertDialog common dialog entity class
TProgressDialog Waits for the dialog entity class

References (written in chinese)

FMXUI layout introduction
http://www.cnblogs.com/yangyxd/articles/5172352.html

FMXUI cross-platform component introduction
http://www.cnblogs.com/yangyxd/articles/5166253.html

FMXUI UI.Dialog demos
http://www.cnblogs.com/yangyxd/articles/5877638.html

FMXUI ListView introduction
http://www.cnblogs.com/yangyxd/articles/6225893.html

FMXUI Translucent System Bar
http://www.cnblogs.com/yangyxd/p/6275249.html

Contact

SVN: https://github.com/yangyxd/FMXUI
URL: http://www.cnblogs.com/yangyxd

YangYxd QQ: 2514718952
FMXUI QQ Group: 325337654
QDAC QQ Group: 250530692

License MIT

Copyright (C) 2016 YangYxd.

fmxui's People

Contributors

jonahzheng avatar kngstr avatar marlonnardi avatar yangyxd avatar ying32 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fmxui's Issues

SetDefaultStatusColor Not work in Delphi 10.3

First of all, congratulations on your excellent work.
Coming back to the problem Statubar on Android does not work when set.

Project Demo -> TFrameView.SetDefaultStatusColor($ff800080);

Delphi 10.3 Version 26.0.32429.4364
Android 8.0 - Moto g6

Add Support for getting the event when animation completes in TFrameView

We currently have the following events:

 property OnShow: TNotifyEvent read FOnShow write FOnShow;
 property OnHide: TNotifyEvent read FOnHide write FOnHide;
 property OnFinish: TNotifyEvent read FOnFinish write FOnFinish; 
 property OnReStart: TNotifyEvent read FOnReStart write FOnReStart;
 property OnFree: TNotifyEvent read FOnFree write FOnFree;

If possible, add a new event that fires when the frame's animation completes.

Action gestures

Hello,

Do you have any plans for implementing Swipe or Long press gestures for ListViewItem (or any suggestions how to achieve it) ?

颜色转换数字越界

在UI.Util.pas文件中,涉及到16进制颜色值转换TAlphaColor方法中,应该用StrToInt64Def而不是StrToIntDef,24位颜色值前面加上FF之后,会超出Int32的最大值,导致出错软件崩溃

Get value from Frame after to use FINISH.

I have two frames:

  • Frame_1
  • Frame_2

In the Frame_1, I did StartFrame(Frame_2). I need to go back to FRAME_1, but I need values from FRAME_2.

  • I used StartFrame(FrameClass: TFrameViewClass; const Title: string; const Data: TValue) to show FRAME_2;

Somebody could to help me?.

Bug TEditView - Password True

the component does not behave the way it expects when entered password True.
The same is bugged when the text is deleted.

Delphi 10.3 Version 26.0.32429.4364
Android 8.0 - Moto g6

TTextView的htmltext对英文内容的断行,不支持按word

TTextView的htmltext对英文内容的断行,不支持按word
首先设置tv的wordwrap属性为true。
1、htmltext属性对英文内容断行有问题,默认都是按字母断行,即使设置了 trimming属性为word。
2、显示出来的效果上,右边出现很大的空白。
3、以上问题,带来了通过文本内容及设置来动态计算tv高度时,完全不准。

20200801112440

demo11.zip

[Delphi 12] [UI.Frame] Fix NativeInt as a Weak Alias

image

https://blog.marcocantu.com/blog/2023-october-nativeint-weak-alias.html

[dcc32 Error] UI.Frame.pas(68): E2252 Method 'Put' with identical parameters already exists [dcc32 Error] UI.Frame.pas(89): E2252 Method 'Put' with identical parameters already exists [dcc32 Error] UI.Frame.pas(139): E2252 Method 'Put' with identical parameters already exists [dcc32 Error] UI.Frame.pas(1737): E2250 There is no overloaded version of 'Synchronize' that can be called with these arguments [dcc32 Error] UI.Frame.pas(1754): E2250 There is no overloaded version of 'Synchronize' that can be called with these arguments [dcc32 Error] UI.Frame.pas(2012): E2250 There is no overloaded version of 'Synchronize' that can be called with these arguments [dcc32 Error] UI.Frame.pas(2077): E2250 There is no overloaded version of 'Synchronize' that can be called with these arguments [dcc32 Error] UI.Frame.pas(2317): E2251 Ambiguous overloaded call to 'Put' UI.Frame.pas(68): Related method: function TFrameStateDataHelper.Put(const string; const NativeUInt): TFrameStateData; UI.Frame.pas(65): Related method: function TFrameStateDataHelper.Put(const string; const Cardinal): TFrameStateData; [dcc32 Error] UI.Frame.pas(2322): E2251 Ambiguous overloaded call to 'Put' UI.Frame.pas(68): Related method: function TFrameStateDataHelper.Put(const string; const NativeUInt): TFrameStateData; UI.Frame.pas(65): Related method: function TFrameStateDataHelper.Put(const string; const Cardinal): TFrameStateData; [dcc32 Error] UI.Frame.pas(2341): E2251 Ambiguous overloaded call to 'Put' UI.Frame.pas(68): Related method: function TFrameStateDataHelper.Put(const string; const NativeUInt): TFrameStateData; UI.Frame.pas(65): Related method: function TFrameStateDataHelper.Put(const string; const Cardinal): TFrameStateData; [dcc32 Error] UI.Frame.pas(2360): E2004 Identifier redeclared: 'TFrameState.Put' [dcc32 Error] UI.Frame.pas(2362): E2251 Ambiguous overloaded call to 'Put' UI.Frame.pas(68): Related method: function TFrameStateDataHelper.Put(const string; const NativeUInt): TFrameStateData; UI.Frame.pas(65): Related method: function TFrameStateDataHelper.Put(const string; const Cardinal): TFrameStateData; [dcc32 Error] UI.Frame.pas(2587): E2004 Identifier redeclared: 'TFrameStateDataHelper.Put' [dcc32 Error] UI.Frame.pas(2717): E2004 Identifier redeclared: 'TFrameParamsHelper.Put' [dcc32 Error] UI.Frame.pas(65): E2065 Unsatisfied forward or external declaration: 'TFrameStateDataHelper.Put' [dcc32 Error] UI.Frame.pas(86): E2065 Unsatisfied forward or external declaration: 'TFrameParamsHelper.Put' [dcc32 Error] UI.Frame.pas(136): E2065 Unsatisfied forward or external declaration: 'TFrameState.Put' [dcc32 Fatal Error] UI.ListView.Header.pas(42): F2063 Could not compile used unit 'UI.Frame.pas'

Is FMXUi "Active"

Hello,

Looks to be a very promising library, however...

Is this project (i.e. FMXUI) considered to be an active project? Are reported bugs being fixed on a regular schedule? Does it currently work with Delphi 11?

Thanks in advance.

TTextview fixed draw on scroll introduced a bug (beta branch)

in commit c8d1815 titled "fix Draw TTextView error while scrolling", where these changes are made

-- if Assigned(FScrollV) and (FCanScrollV) then begin
++ if Assigned(FScrollV) and (FCanScrollV) and (ScrollValueV < 1) then begin

this is supposed to fix some scrolling error (I'm interested to know what it is), How ever in one of my tests this does the opposite.

my View port size is 418 and my max content size is 3257 my max offset is 2839,

the bug I'm having because of your change is whenever ScrollValueV is 1 the TTextView draws the beginning of the long text I have, but the scroll bar is at the end (2839).

if I remove the change you made, the scrolling is right, but I do not know what that change fixes.

Note: this might be related, I'm using an HTML text in English so #25 might be the source of the problem.

Localization

Is there any particular reason why these shouldn't be localized?

CutStyleName = '剪切'; //Do not localize
CopyStyleName = '复制'; //Do not localize
PasteStyleName = '粘贴'; //Do not localize
DeleteStyleName = '删除'; //Do not localize
SelectAllStyleName = '选择全部'; //Do not localize

Shot

As you can see from the image I'm forced to localize them.

Click Event of Control inside THorzScrollView not fireing

I am trying to make a slide horizontal slide menu using THorzScrollView but unable to execute Click event inside any control of THorzScrollView. I set HitTest := True to THorzScrollView Child Control but no event is fireing. Can you please guid how to achive it?

Rotating TViewText

Hi
Rotation is not working properly on Android with TTextView when RotationPoint is 0,0. Help please.

EditView2如何让输入的字符变成大写

请问EditView2如何让输入的字符变成大写,就像TEdit的CharCase可以设置成ecUpperCase一样的效果。
我通过ChangeTracking事件可以实现,但我在FilterChar中设置为有效字符是‘0123456789ABCDEF’,造成的后果就是键盘输入小写的字母就无法触发ChangeTracking事件了。
在KeyDown事件中,我强制Shift=ssShift也没用,我测试时,只在特殊键按下才会触发,比如按下Enter。正常按下数字1时就不会触发此事件。
我的版本Delphi 11.3,上面的问题是针对安卓系统测试的。

TEditView

How to change the password char from to *?

TViewHtmlText当有两个超链接的时候,第二个超链接的点击似乎收不到

TViewHtmlText当有两个超链接的时候,第二个超链接的点击似乎收不到。下面是我改了代码,不知道是否理解的正确
procedure TViewHtmlText.MouseUp(Sender: TView; Button: TMouseButton;
Shift: TShiftState; X, Y: Single);
var
Item: THtmlTextItem;
I: Integer;
begin
//if (Button = TMouseButton.mbLeft) and (FLinkHot >= 0) and (FLinkHot < FLinkHrefs.Count) then begin //如果一段HTML中有两个a的href。则后面的链接收不到click的
if (Button = TMouseButton.mbLeft) and (FLinkHot >= 0) and (FLinkHot < FLinkRangeCount) then begin //这样改两个a href的时候第二个链接才能走到下面
if Assigned(Sender) then begin
for I := 0 to FList.Count - 1 do begin
if FList[I].Link = FLinkHot then begin
Item := FList[I];
Sender.DoLinkClick(Item.Text, FLinkHrefs[Item.LinkURL]);
Break;
end;
end;
end;
end;
end;

Access violations on freeing of dynamically created TListViewEx

There seams to be a bug here. When creating like this.

               LVDir.FList := TList<TDirectoryDataItem>.Create;
               LVDir.FAdapter := TDirectoryDataAdapter.Create(LVDir.FList);
               LVDir.FListView := TListViewEx.Create(Layout2);
               LVDir.FListView.Parent := Layout2;
               LVDir.FListView.Align := TAlignLayout.Client;
               LVDir.FListView.EnablePullRefresh := False;
               LVDir.FListView.EnablePullLoad := False;
               LVDir.FListView.OnItemClickEx := LVDirectoryItemClickEx;
               LVDir.FListView.OnItemClick := LVDirectoryItemClick;
               LVDir.FListView.AllowItemClickEx := True;
               LVDir.FListView.OnClick := LVDirectoryClick;
               LVDir.FListView.Adapter := LVDir.FAdapter;

and freeing like this:

           LVDir.FListView.DisposeOf;
           LVDir.FList.DisposeOf;
           LVDir.FAdapter.DisposeOf;

liearlaoyut

Hello
Tlinearlayout does not support the possibility of break, which means that it does not move to the next line when there is no place for a component on the line...

I want something like Tflowlayout but with weight property support (And if the width of the objects is less than the minwidth, it will be moved to the next line)

ListViewEx + KeyEvents

Could you please add OnKeyUp/OnKeyDown events? I need to scrolling ListView by keyboard arrows in desktop app.

TListViewEx + FontSize

Could you please tell me how to fix it? FontsSize is too small ("1" or "2") by default 😕

image

Crash app IOS in TTextView -> SVGimage.Parse()

Platforms

  • Windows = OK
  • IOS = ERROR
TViewBrushBase(TVSearch.Drawable.ItemDefault).SVGImage.Parse(
      '<svg style="width:24px;height:24px" viewBox="0 0 24 24">'+
      '<path fill="currentColor" d="M15,19.88C15.04,20.18 14.94,20.5 14.71,20.71C14.32,21.1 13.69,21.1 13.3,20.71L9.29,16.7C9.06,16.47 '+
      '8.96,16.16 9,15.87V10.75L4.21,4.62C3.87,4.19 3.95,3.56 4.38,3.22C4.57,3.08 4.78,3 5,3V3H19V3C19.22,3 19.43,3.08 '+
      '19.62,3.22C20.05,3.56 20.13,4.19 19.79,4.62L15,10.75V19.88M7.04,5L11,10.06V15.58L13,17.58V10.05L16.96,5H7.04Z"/></svg>');

image

Delphi 11
iPhone Xr IOS 15.3.1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.