Jump to content

WalkingAway

Members
  • Content Count

    22
  • Joined

  • Last visited

Posts posted by WalkingAway


  1. François, thank you for your work.

    It so nice that it is open project and possible to get know how it works.

    I have builded all the samles and their are working.

    My questions were based just in found cooments - those SSL and ZHL features. Probably in some point it was implemented (or was some tryout to implement).

    Also was found some comment about unicode, it was also asked.

    Thank you.


  2. Just for education purpose decided to test Midware (with Rio additions).

    In general, it works, but:

    1) can get it working with SSL - there is no TSslAppSrvClient component. Do I have use "normal" TAppSrvClient instead?

    2) lzh not working - MidWare implementation has f.e. EncryptGetBytes method and second param is LongWord (but in lzh.pas wich was found in internet it has type Word).

    3) Is this library support unicode?

    Can somebody explain me what can I do in order to get it working?


  3. Hello

    I have problem.

    FMX and Android, TListView with binded DataSet.

    Phone is EN, but Text := 'äÄåÅ' (SCANDINAVIAN);

     

    Items when binded - not displayed properly, but this working correctly:

    procedure TForm5.ListView1ItemClick(const Sender: TObject;
      const AItem: TListViewItem);
    begin
      AItem.Text := 'äÄåÅ';
    end;

    How to solve this problem?

    Thank you


  4. I have here such a sample app.

    This app using StandFrame component, but it can be plain / pure frame based app.

    Main question here is:

    Every frame has "meta" - information about itself (managed by FrameStand), and code is basically the same:

    procedure TMainForm.PictureButtonClick(Sender: TObject);
    var
      LFrameInfo: TFrameInfo<TPictureFrame>;
    begin
      LFrameInfo := FrameStand1.New<TPictureFrame>();
      LFrameInfo.Frame.Description := 'Example description';
      LFrameInfo.Show;
    end;
    
    procedure TMainForm.TextButtonClick(Sender: TObject);
    var
      LFrameInfo: TFrameInfo<TTextFrame>;
    begin
      LFrameInfo := FrameStand1.New<TTextFrame>();
      LFrameInfo.Frame.Text := 'Example text';
      LFrameInfo.Show;
    end;

    What I did here - one method for all frames (working)

    function GetFrameInfo<T>: TFrameInfo<T>;
    begin
      Result := FrameStand1.New<T>();
      Result.Show;
    end;  

    I'm able to set via RTTI "Text" property in one frame and "Description" in other as they are strings. For simple types it easy.

     

    But let's consider there property "MainFrame", it's type is TFrameInfo<T> or TFrameInfo<TFrame>.

    How to set it with RTTI?

    Because then I want to link it in the same manner to ListView like

    AItem.Data[ 'freame_info' ].AsType< TFrameInfo< TFrame > >;

    And then by clicking to open according frame.

    I don't entirely understand how to make RTTI understand my TFrameInfo<TFrame >>

     

    Thanks in advance

     

    demo.zip


  5. Is it possible to get / set through RTTI non standard type value?

    I tries, but always got something like 'invalid tapecast' error.

    Let say I have TFrameMeta<T: TFrame> = class(TGlobalMeta)

    TGlobalMeta here is:

    TGlobalMeta = class
      private

     

    What I want - to unified opportunity to set / get "Meta" value ,

    it can be FirstFrame.Meta, SecondFrame.Meta, ...

     

    Now I have to write

    if FirstFrame.Meta is AccountFrame then ...

    else if FirstFrame.Meta is ReportFrame

     

    If I have 50 frames it is too boring. RTTI may help me

    Or maybe mnthere some libraries for that

     

    Thank a lot

     

    Also I want to link that kind of link to "Meta" to listview (TValue.From) for same purpose. With no success also so far...


  6. Hi there

    I have read pretty a lot topics about data-aware components.

    There are a lot of even funny / useless examples (as examples I put here, found in internet, not mine code).

    Thinkg about this panel component....

    Is it possible to add master-detail feature? Basically, all I need is like cached update.

    Short example: there are tables "Queries" and "Fields". If user adds / deletes / updates some fields, I want to save either all (both "Queries" and "Fields") or do nothing.

    Because if user decided to cancel editing - there is no way to do it.

    Is it possible?
    Or may be somewhere is component already with suach an option?

    What I can probably do for now - put all data to tlist, may be then for save I have to loop through manually...

     

    Thanks.

    uDBCalendarView.pas

    uDBPanel.pas


  7. Some debug info.

    Here is error in this line, "TRttiNamedObject.Name" is nil (abstract error).

     

    image.thumb.png.c7740c01a9ae36ee8a2af9a40ef727fc.png

    Probably this is the key difference (new method in Alexandria) and cause of abstract error , but I'm not able to correct this:

    image.thumb.png.99ce99f84c6aabce6e8699bcf1e24072.png

     

    In Rio working as well both libraries.

    Hope, maybe some day DSharp will be compatible with Springs 2.


  8. Maybe Stefan can give some hint how to proceed.

     

    In some old project (RAD Berlin) I have used Spring4D + DSharp - - both 1.2.1 (and then DDuce's ListDataSource for showing data in GUI). Working well.

     

    In modern RAD Alexandria I'm using Spring4D (generally for lists and dep.inj.). But I'm not able to compile DSharp anymore. Only Spring4D 1.2.1 + DSharp 1.2.1 give that pair to compile. But anyway it is not possible to install DSharp designtime packages for binding (it is my goal - to use DSarp as binding library), Delphi throw always "Invalid pointer operation" as long as DSharp.Bindings used in use clause. Can't fix it.

     

    Seems like DSarp discontinued or depricated. I can't find version for Alexandria.

    Actually, ListDataSource from DDuce was removed as depricated, and I have not noticed that in Spring there is similar feature - Spring.Persistence.ObjectDataSet or something similar.
    So I can probably do the same in pure Spring4d library - bind my own list of class (let say TList<TMySettings>) to bidirectionally binding to grid as ordinary dataset.

     

    Thanks in advance.


  9. Thank you guys!

     

    I have got it.

    Just came here to ask next level's question and saw unread messages

     

    I will check those books of course

     

    But anyway, is it possible to achieve something like this (I mean totally in IDE, design time):

    I have basic class TSQLBuilder and then it has property TSQLBuilderProvider - abstract, it can be let say FireDac, UniDac, AnyDac...

     

    1) For every of them then can be setted up Query + Connection: for FD - TFDQuery and TFDConnection, for UniDAC - TUniConnection and TUniQuery and so one

    So far I did it through connectionString property, but it's boring as I have to build it outside this component

    Something similar to this - drop TSQLBuilder to the form and then there is some abstract property TSQLBuilderProvider, but if on form on f.e. TSQLBuilderProviderFD or TSQLBuilderProviderUniDac, it was possible to set it in design time.

     

    2) Second thing: property that makes sence for one TSQLBuilder, but not usable / posible for other. For example if I chose FD as type, then there is type string property - MySQL, MSSQL or SQLite. I dont need obviously this property forTSQLBuilderProviderFireBird. Probably this option have to be hidden according to other property

     

    Thank you so much

    Of course, its pretty hard to make something good enough, this topic more about education I guess.

    Thanks again
     


  10. Let say I have this class, TFruit:

     

    unit MyUnit;

    interface

    uses
      SysUtils;

    type
      TFruit = Class
        private
          color  : string;
        protected
        public
          constructor Create(color: string);
        published
          property color: string
            read   string
      end;

    I can make the instance
    rocedure TForm1.FormCreate(Sender: TObject);
    var
      banana : TFruit;
    begin
      banana := TFruit.Create('red');

     

    Now:

    How I can achive the same functionality if it would possible to make component - the same TFruit and visible property color in IDE?
    And then if I drop component,  this instance of TFRuit is made for me automatically...

    Is it possible?

    For now only I can imagine - some / any TComponent descendant and some FFruit: TFruit property...

    Thanks


  11. Thank you so much for your answers, I will check everything.

    It opens my mind.

    Of course, probably better idea to use something available, f.e. VirtualTreeView. But I tried just for educational purpose.

    Thank you again. Some of mistakes were not visible for me at all...


  12. Hello

    Just have created simple TTreeView based component.

    There are memory leaks. Reason, that New(Pointer) and then Dispose(Pointer) - second one not implemented yet.

     

    To handle this, I got to Destroy.

    But interesting that in Destroy method Items.Count is empty, somehow everithing is freed already...

    Why?

    Do I have to keep and track own ToDelete list for that?

     

    pas file in the attachement

     

    Thanks.

    myComponent.txt


  13. I have tried, but with no success.

    Something like DoRealign is the place where this happens.

    But actually this call not helps at all...

    Only when I physically change something in memo, then fires this ChangeTracking ...

     

    So close, but my skills  too low to solve this problem

     

    Thanks


  14. Hello.

    I need help.

    I didn't entirely understand, but the same code working with TMemo component dropped to the form and not working with dynamically created TMemo.

    More strangely, when I have two buttons (one for creating and one for calling recalc height of memo) - by clicking one after one - ok, but inside one (creating and updating height - not).

    What is the reason?

    Thanks.

     

    unit Unit46;

    interface

    uses
      System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Memo.Types,
      FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo, FMX.StdCtrls;

    type
      TForm46 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Memo1ChangeTracking(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form46: TForm46;
      Memo1: TMemo;

    implementation

    {$R *.fmx}

    procedure TForm46.Button1Click(Sender: TObject);
    begin
      Memo1 := TMemo.Create(self);
      Memo1.Parent := Form46;
      Memo1.Name := 'Memo1';
      Memo1.DataDetectorTypes := [];
      Memo1.Lines.Clear;
      Memo1.Lines.Add('AAAAAAAAAAAAAA');
      Memo1.ShowScrollBars := False;
      Memo1.OnChangeTracking := Memo1ChangeTracking;
      Memo1.Align := TAlignLayout.Horizontal;
      Memo1.EnabledScroll := False;
      Memo1.TabOrder := 0;
      Memo1.WordWrap := True;

     

      Memo1ChangeTracking(Memo1); //here is wrong Memo1.ContentBounds.Height
    end;

    procedure TForm46.Memo1ChangeTracking(Sender: TObject);
    begin
      Memo1.Height := Memo1.ContentBounds.Height + 5;
    end;

    procedure TForm46.Button2Click(Sender: TObject);
    begin
      Memo1ChangeTracking(Memo1);
    end;

    end.


  15. Hello

     

    I have pretty simple example here - form with list of records and then the edit form (see pictures).

    What if I want extra functionality - like for Country edit for example DBLookup field (through DBLookUpCombo)?

     

    How I see it:

    1) Edit +Button (button inside the edit or next to edit)

    2) Searchin value in lookup dataset (parameter is value from dbedit) - if not found exactly 1 record - opens form for lookupdataset for picking one from dataset

    3) Searching has to be by ID or name (as I have view with calculated field '{Id} Name')

    4) Button next to edit directly opens form for lookup daset

     

    Is any component for that purpose?

    Thanks.

    edit.gif

    list.gif


  16. Not about Marshmallow, but ....

     

    Looking for some "dynamic" ORM.
    Makes it sense?

    Have some DB Wizard for adding columns "on the fly"  (usable in reports, for example)

    But in ORM universe I have no idea how to do that.

     

    Thanks

    • Like 1

  17. 21 minutes ago, Lajos Juhász said:

    It's a normal behavior. You should give us more information in order to give us a chance to suggest how could you change the code.

     

    If you really have to use dmAutomatic in that case whenever you would like to cancel the drag operation you have to call the EndDrag method with false of the control (in this case the listbox).

    Thank you.

    Yes I intend to use dmAutomatic (as I need to move items inside that listbox), but (also) I don't want such behaviour after OnClickMethod.

     

    I think this code

    begin
     ShowMessage('Bla bla');
     ListBox1.EndDrag(False);

    end;

     

    cover all my needs, at least so far I see what I intend top see.

     

    Let's see what happens when I implement actual drag/drop functionality.

    Thank you.


  18. Is to make sense not to use ShowMessage inside OnClick event due to mouse cursor hang?

    My event works pretty well until I decided to add ShowMessage inside.

    After that cursor over listbox has "crossed out circle" and I have to click on listbox to get it normal.

    But that click itself seems not to work also.

     

    It's only happens when listbox.DargMode = dsAutomatic.

     

    Why?

×