limelect
Members-
Content Count
835 -
Joined
-
Last visited
-
Days Won
1
Everything posted by limelect
-
Further investigating it seem that my last statement (not real BIDI) mite be wrong since if Char > 3000 then if ((Char = 3633) or ((Char >= 3635) and (Char <= 3642)) or ((Char >= 3655) and (Char <= 3662))) then begin if LastThaiChar = 0 then LastThaiChar := 3585; // DoLogInfo(format('Detected new advance from %d + %d',[ FLastThaiChar,char])); // Advance := FPaint.measureText(StringToJString(System.Char.ConvertFromUtf32(3585)+System.Char.ConvertFromUtf32(Char))); if Char = 3635 then // ׂ Advance := FPaint.measureText (StringToJString(System.Char.ConvertFromUtf32(LastThaiChar) + System.Char.ConvertFromUtf32(Char))) - FPaint.measureText (StringToJString(System.Char.ConvertFromUtf32(LastThaiChar))) else Advance := 0; end; if Char >= 3585 then if Char <= 3630 then LastThaiChar := Char; since above section has nothing to do with MY !!! Hebrew fonts. is it useless ???? i do not know.
-
Last thought. It is still not perfect solution. As it is not a REAL BIDI. it is specific to Arabic or Hebrew but other languages do not apply. So it cannot be given to the world.
-
I just put it in my REAL application and it works great.
-
@Serge_G Thank you for your help The link in your answer did the TRICK. I had many weeks of search for the answer
-
@John Kouraklis It works. I used this link http://arabteam2000-forum.com/applications/core/interface/file/attachment.php?id=159065 1. with Delphi 10.2.3 i used the berlin version 2. My test project is fmx+memo 3. I added THE 3 pas files 4. i added FMX.Canvas.GPU.pas from the Delphi fmx source 5. I added path of Delphi source fmx to my project 6. compiled 7. apk to my samsung s6 phone 8. DID NOT CHANGE NOTHING IN THE SOURCE !!!! 9. AND IT WORKS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 10-. in my case it is HEBREW !! P.S 4 not needed as you have 5
-
@mawg I did try a wile ago open street map it was too slaw. I did not like the result. I think the only good way is google map. There are a few VCL components . just Google. https://sourceforge.net/projects/gmlibrary/
-
@Francisco see and https://serge-girard.developpez.com/tutoriels/Delphi/Livebindings/Grilles/#LVII-C-1
-
@John Kouraklis For now RTL is working in Android Studio where i developed a few applications. Delphi FMX Android is good , now a days , only for English.
-
@Serge_G This is for WIN project or IOS (not tested) BUT not for Android. No solution yet. No TStringColumn in Android.
-
@John Kouraklis What did you do with the solution ? alcinoe has no solution. Is FMXRTL is the only solution?
-
IDE addin for project-wide uses clause report?
limelect replied to PeterPanettone's topic in Delphi IDE and APIs
http://pasdoc.sourceforge.net/ and it is free It has sources -
which Delphi you use? I do not know CE? i have above for 7 and 10.2 it will not suit you. I cannot give sources. sorry
-
transfer ImageList from VCL to FMX
limelect posted a topic in Algorithms, Data Structures and Class Design
Delphi 10.2.3 I had a problem. On my Vcl program i had ImageList with 250 bitmaps. When making the same project for Android (fmx) ImageList is not the same.To transfer all bitmaps to fmx ImageList i made this program. 1. Make a VCL project with a button. Close the project. 2. Make new>Multi-Device form. 3. place on it a button and ImageList. 4. Make sure both forms have different name. 5. Save and close. 7. Open Vcl project. 8. Add Fmx Form to the VCL project. 9. Disregard ERRORS !! 10. Add below program to fmx uses Unit2; procedure TForm1.Button1Click(Sender: TObject); var FileStream: TFileStream; MemStream: TMemoryStream; w, h, scale, iPos: Integer; btBitmap: tbitmap; si: TCustomSourceItem; d: TCustomDestinationItem; Layer: TLayer; begin for iPos := 0 to Form2.ImageList1.Count - 1 do begin btBitmap := tbitmap.create; btBitmap.PixelFormat := pf32bit; btBitmap.AlphaFormat := afIgnored; Form2.ImageList1.GetBitmap(iPos, btBitmap); MemStream := TMemoryStream.Create; btBitmap.SaveToStream(MemStream); si := ImageList1.Source.Add; si.Name := 'Source' + inttostr(iPos); scale := 1; si.MultiResBitmap.LoadItemFromStream(MemStream, scale); W := si.MultiResBitmap.Bitmaps[scale].Width; //Get width from scale H := si.MultiResBitmap.Bitmaps[scale].Height; //Get height from scale // Destination d := ImageList1.Destination.Add; Layer := d.Layers.Add; Layer.SourceRect.Rect := TRectF.Create(0, 0, W, H); // Create rect W x H Layer.Name := si.name; MemStream.Free; btBitmap.Free; end; MemStream := nil; FileStream := TFileStream.Create('MyList.DAT', fmCreate); try MemStream := TMemoryStream.Create; MemStream.WriteComponent(Form1); MemStream.Position := 0; ObjectBinaryToText(MemStream, FileStream); finally MemStream.Free; FileStream.Free; end; end; 11. On vcl add uses Unit1; procedure TForm2.Button1Click(Sender: TObject); begin Form1.ShowModal; end; 12. Execute vcl. 13. Press button. Open fmx form. 14. Press fmx button. 15. MyList.DAT file is created which is realy an fmx form with all bitmaps populated in in fmx ImageList1. 16. To end rename MyList.DAT > Unit1.fmx so you end up with Unit1.pas and unit1.fmx. 17. Close the project. 18. Open your FMX project. 19. Open UNIT1 in the project 20. Copy ImageList1 from unit1 to your project. I hop it will help some one . And happy coding. -
transfer ImageList from VCL to FMX
limelect replied to limelect's topic in Algorithms, Data Structures and Class Design
@David Heffernan This is all about -
transfer ImageList from VCL to FMX
limelect replied to limelect's topic in Algorithms, Data Structures and Class Design
@David Heffernan This is all about -
transfer ImageList from VCL to FMX
limelect replied to limelect's topic in Algorithms, Data Structures and Class Design
@David Heffernan Well i understand but in my case integer is what i use. I have 250 "bitmap flags" associated to 2 constant lists all arranged in order of bitmap against name against number. with integer it is very easy to get bitmap+name+number all at once. -
transfer ImageList from VCL to FMX
limelect replied to limelect's topic in Algorithms, Data Structures and Class Design
@David Heffernan You mite be right but in my case this is what i did. I do no see the difference (and i mite be wrong ) between resources and dfm since the program behavior will not change. What is the added value in your case ? At the time when i did the VCL project i was not thinking of FMX. -
which Delphi you use?
-
This is my addon for inserting Glyph. Never put it on the NET. It was done over 20 years ago and go with me on every Delphi. May be it is a good idea to make money from it. Sorry.
-
@John Kouraklis Sorry It was long ago. I do not know where the demo is. I think i had a BPL specific to Delphi.
-
@John Kouraklis I had very bad experience with the demo it did not work.
-
I need your attention to my program. I recently was wandering how do I find the class of a component in order to know what it is doing. After all I have more than 3000! Who remember the fine differences be twin them and even if I had only 100. The PE program did not help. So I started writing an investigating program. I came up with this program. For what is worth I put it on my Dropbox for you to download. It will be there for a while. So now can you have an idea how to solve my main curiosity? Going through all the pas files will be crazy and need to search them on the whole computer. Is this my only option ? Wile printing pas files there mite be some errors. See my HELP. My program https://www.dropbox.com/s/ns5ntzpd0kiiolg/Help.zip?dl=0
-
@Gary Mugford Thanks You seem to work on the same idea of mine. But i took out of the BPL the pascal files used in it. That is my starting point. What i wanted to achieve is to know all the USE of the components on my pallet. I thought if a new component is relaying on a BASE class derived from EMBARCADERO (Delphi) component i mite find the added property and that way know its use. Since i have huge amount of components i do not remember most of there use and on a new project i mite miss some nice features. BUT it seem to be a huge effort . My next step is i added a search of disk for PAS files so i will have them cataloged. Will see how it will be developed. Now i will have on one side all my pas files and on the other the BPL PAS files. Since i have 3 Delphi's on my disk i will have a problem in the future. P.S as a side value while loading a BPL to my program i had some ERRORS that i was NOT AWARE of. see Pas files To HTML on my program. VERY USEFUL. AND lastly the registry section for the different Delphi which make this program only for my Delphi and similar.
-
At a time i got D7 for free with a license from Embarcadero\Borland I do not know if it still available. As for your problem delete all except the dpr and source and try to open\compile. If the dfm is as text look if it has information in it. If dfm is OK there should not be any problem opening the form unless the component are not in the IDE. Then i suggest another way. First see if the component can be installed on D2007. Usually no problem only translate to ANSI mostly. And one more possibility fetch from DFM the initialization of a component in the form move the component declaration to private and on form oncreate put the DFM initialization. Hopefully the component can be compiled without errors. All said if you got the components source !!!
-
@David Heffernan sorry that not an answer when a guy needs help coding. Give him a piece of code, this is his need.