下载链接:http://altd.embarcadero.com/download/radstudio/10.1/delphicbuilder10_1_upd1.iso 更新说明:http://edn.embarcadero.com/article/44715 简单翻译下: FireMonkey iOS 上 TGrid
月度归档: 2016年9月
泛型数组清空数据
我一直都在寻找各种业务功能的最简单写法,用减法的模式来开发软件。如果有比我的写法更简单的方法,请留言告知 我是怀疑泛型数组 setlength后会不会清零,弄了个小demo,不知道为什么我会有这个想法,难道是我看数据结构入魔了,记得记录指针需要另类释放问题。 记不清了 脑袋完蛋了 上demo ,事实证明setlengt
Qxml如何添加cdata
我一直都在寻找各种业务功能的最简单写法,用减法的模式来开发软件。如果有比我的写法更简单的方法,请留言告知。 我们再使用的时候,往往需要包含这些特殊字符,要求保持这些特殊字符不变。 这个时候就需要用<![CDATA[ 我是保持不影响XML解析的特殊字符”<>’等 ]]
【重要提醒】请 Delphi/C++ Builder 现在用户一定不要升级到 xcode 8/iOS 10
[注意] 10.1 Update 1 已经解决了此问题,请使用 10.1 Update 1 开发。 今天苹果发布了 iOS 10 以及配套的 xcode 8,如果你升级了 xcode 8,则你会发现无法使用调试和安装程序了。所以一定一定一定暂时不要升级,等待 Idera 官方的解决方案。 已经安装的,请进入 Launc
QXML转义问题
我一直都在寻找各种业务功能的最简单写法,用减法的模式来开发软件。如果有比我的写法更简单的方法,请留言告知。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
procedure TForm4.btn1Click(Sender: TObject); var MyQXML: TQXML; begin MyQXML := TQXML.Create; try mmo2.Lines.Clear; MyQXML.Parse('<xml name="<![CDATA[奥&巴马]]>希拉&里">abc</xml>'); mmo2.Lines.Add(MyQXML.AsXML); mmo2.Lines.Add('---------------------------------'); MyQXML.Parse('<xml><![CDATA[奥&巴马]]>希拉&里</xml>'); mmo2.Lines.Add(MyQXML.AsXML); finally MyQXML.Free; end; end; |
Qjson中把json字符串,当做子节点的方法
我一直都在寻找各种业务功能的最简单写法,用减法的模式来开发软件。如果有比我的写法更简单的方法,请留言告知。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
procedure TForm4.btn2Click(Sender: TObject); const //外部的一个Json做子节点 AJsonStr = '{"name":"奥巴马","age":18}'; var MyQj: TQJson; begin MyQj := TQJson.Create; try MyQj.Add('country', '美国'); MyQj.Add('address', '华盛顿'); //美国有很多人,奥巴马是其中一员,而奥巴马的信息可能来自一个Json字符串, //我们需要把这个Json字符串当做一个子节点插入进来. with MyQj.AddArray('person') do begin Add.AsObject := AJsonStr; end; Memo1.Lines.Clear; Memo1.Lines.Add(MyQj.AsJson); finally MyQj.Free; end; end; |
[FMX]从摄像头获取照片并转换为特定的格式
首先,我们要使用 TTakePhotoFromCamera 这个 Action 来获取一幅照片,在其 OnDidFinishTaking 事件中,可以得到一个 TBitmap 的图片。这块我们跳过代码。 然后,我们要将这个位图保存为我们希望的格式,如JPEG。默认调用它的 SaveToStream 它会保存为 PNG
[FMX] FMX UI 开源库
【简介】 FMXUI的开发忠旨是发掘FMX界面设计的优点,再整合进入Android界面设计的优点。使用过Java搞Android界面设计朋友看到后应该会有一定的熟悉感。 【类介绍】 TView 基本视图 TViewGroup 视图组 TLinearLayout 线性布局 TRelativeLayout 相对布局 TT
[FMX] FMX.Graphics.Android 中对 GIF 判断的问题的修正
关于这个 Bug 的详情,大家可以参考:https://quality.embarcadero.com/browse/RSP-12424 Berlin 中的 FMX.Graphics.Android 实现的原始代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
class function TBitmapCodecAndroid.IsGIFStream(const Stream: TStream): Boolean; const IDCharCount = 3; var PrevPosition: Int64; Builder: TStringBuilder; I: Integer; Value: Char; begin if (Stream = nil) or (Stream.Size < IDCharCount) then Exit(False); PrevPosition := Stream.Position; try Builder := TStringBuilder.Create(IDCharCount); try for I := 0 to 2 do begin Stream.ReadBuffer(Value, 1); Builder.Append(Value); end; Result := SameText(Builder.ToString, 'GIF'); finally Builder.Free; end; finally Stream.Position := PrevPosition; end; end; |
存在的问题: 第一个判定不完善,
qjson中把记录或类型或泛型数组转换为json字符串
我一直都在寻找各种业务功能的最简单写法,用减法的模式来开发软件。如果有比我的写法更简单的方法,请留言告知。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
unit Unit4; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm4 = class(TForm) btn1: TButton; Memo1: TMemo; lbl1: TLabel; btn2: TButton; procedure btn1Click(Sender: TObject); procedure btn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; /// <summary> /// 新手留意,一定要定义在implementation关键词的上方. /// </summary> type TRenLei = record name: string; age: Integer; sex: Boolean; end; var Form4: TForm4; implementation {$R *.dfm} uses qjson; procedure TForm4.btn1Click(Sender: TObject); var ARenLei: TRenLei; MyQj: TQJson; begin MyQj := TQJson.Create; try //这个例子比较好理解 ARenLei.name := '奥巴马'; ARenLei.age := 1; ARenLei.sex := True; MyQj.FromRecord<TRenLei>(ARenLei); Memo1.Lines.Clear; Memo1.Lines.Add(MyQj.AsJson); finally MyQj.Free; end; end; procedure TForm4.btn2Click(Sender: TObject); var RenLeiArray: TArray<TRenLei>; MyQj: TQJson; begin MyQj := TQJson.Create; try SetLength(RenLeiArray,2); with RenLeiArray[0] do begin name := '拜登'; age := 1; sex := True; end; with RenLeiArray[1] do begin name := '希拉里'; age := 2; sex := False; end; //这里不是很好理解了,我也不理解,这里用TArray<TRenLei>就可以把泛型数组转换为Json,谁知道原理的请下方留言。 MyQj.FromRecord<TArray<TRenLei>>(RenLeiArray); Memo1.Lines.Clear; Memo1.Lines.Add(MyQj.AsJson); finally MyQj.Free; end; end; end. |