Jump to content

limelect

Members
  • Content Count

    915
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by limelect

  1. limelect

    Tlabeledit for fmx

    In VCL there is a components Tlabeledit I am looking for a SOURCE for almost the same in FMX. Dose any one has a source ?
  2. limelect

    Tlabeledit for fmx

    @Rollo62 It is VCL thanks The component Tlabeledit has some features like label placing that you have to develop and not just include one component into the other. This component is in the Delphi VCL IDE. now a days.
  3. limelect

    Right To Left Components

    @Alexander Sviridenkov Then is this guy wrong ? https://serge-girard.developpez.com/tutoriels/Delphi/Livebindings/Grilles/#LVII-C-1
  4. limelect

    Right To Left Components

    @Alexander SviridenkovI do not have Arabic on my keyboard And i do not know the Alpha. How ever in Hebrew i can mix with English with no problem Have a look at the top right corner on the memo I have abcdeשלמהfgh "שלמה" is my name in Hebrew The mix is OK!!!
  5. limelect

    Right To Left Components

    @Alexander SviridenkovI cannot comment on what you wrote since Arabic is not my native lang. But in my case i used the source i shown before and it works even for mixing Hebrew and English. Can you elaborate on the problem in your case showing very simple text here. I using memo and 10.2.3
  6. limelect

    Right To Left Components

    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.
  7. limelect

    Right To Left Components

    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.
  8. limelect

    Right To Left Components

    I just put it in my REAL application and it works great.
  9. limelect

    Right To Left Components

    @Serge_G Thank you for your help The link in your answer did the TRICK. I had many weeks of search for the answer
  10. limelect

    Right To Left Components

    @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
  11. @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/
  12. limelect

    Arab in iOS

    @Francisco see and https://serge-girard.developpez.com/tutoriels/Delphi/Livebindings/Grilles/#LVII-C-1
  13. limelect

    Right To Left Components

    @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.
  14. limelect

    Right To Left Components

    @Serge_G This is for WIN project or IOS (not tested) BUT not for Android. No solution yet. No TStringColumn in Android.
  15. limelect

    Right To Left Components

    @John Kouraklis What did you do with the solution ? alcinoe has no solution. Is FMXRTL is the only solution?
  16. limelect

    IDE addin for project-wide uses clause report?

    http://pasdoc.sourceforge.net/ and it is free It has sources
  17. limelect

    Forgot IDE add-on

    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
  18. 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.
  19. @David Heffernan This is all about
  20. @David Heffernan This is all about
  21. @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.
  22. @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.
  23. limelect

    Forgot IDE add-on

    which Delphi you use?
  24. limelect

    Forgot IDE add-on

    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.
  25. limelect

    Right To Left Components

    @John Kouraklis Sorry It was long ago. I do not know where the demo is. I think i had a BPL specific to Delphi.
×