HeDiBo

Forum Replies Created

Viewing 20 posts - 181 through 200 (of 1,174 total)
  • Author
    Posts
  • in reply to: Show hints even if control is disabled #68931
    HeDiBo
    Participant

    First tests in 15.09 suggest you’ve made it ๐Ÿ’Ž

    in reply to: Image and Caption distance in TsButton is too big #68930
    HeDiBo
    Participant

    No change in 15.09

    in reply to: Image and Caption distance in TsButton is too big #68926
    HeDiBo
    Participant

    It’s actually very nice you had this. This proves that a previous version of AC went OK.
    Thank you for your efforts.

    in reply to: Image and Caption distance in TsButton is too big #68921
    HeDiBo
    Participant

    <p zoompage-fontsize=”14″>I think youโ€™ll have better control with a TsBitBtn

    Why should I use a different button?
    This worked before, but it’s hampered in AC 15.08 (the distance between image and caption has become larger).

    HeDiBo
    Participant

    I tried your project without a problem.
    I’m inclined to think it’s a Windows problem. You’re running the same Windows version I have. But AC put a lot of work into showing Windows dialog in native skin. There must be a reason for this. Even if I change sSkinManager1.Options.ChangeSysColors to True, things still work.
    My advice would be to go to AC version 15.08 Although it’s labeled beta, it’s very stable already.

    HeDiBo
    Participant

    There are so many things that could be the reason.
    Please, add a sample project illustrating the problem.
    Fyi: in AC 15.08 I could not replicate this problem.

    in reply to: Sugestion #68892
    HeDiBo
    Participant

    Personally, I donโ€™t see the difference between this TacLayout and a simple flat TsPanel.

    There is no difference (yet). It is just an easy way: no hassle with setting SkinDate and other stuff, also the border at design time is handy (you don’t have to guess at design time where the panel is).

    in reply to: Sugestion #68890
    HeDiBo
    Participant

    Hi Serge,
    There is a reason why I called the component TacLayout. That would leave the possibility to include a TsLayout component in the package.
    Are you willing to do so?

    in reply to: TsCheckListBox uses wrong font for Header #68883
    HeDiBo
    Participant

    Can you also add a bit of code to change the Header font?

    in reply to: Sugestion #68878
    HeDiBo
    Participant

    This is the result:

    unit acLayout;
    {$i sDefs.inc}
    
    interface
    
    uses
      System.SysUtils, System.Classes, Vcl.Controls, Vcl.ExtCtrls, sPanel;
    
    type
      TacLayout = class(TsCustomPanel)
      public
        constructor Create(AOwner: TComponent); override;
        property DockManager;
      published
        property Align;
        property Anchors;
        property AutoSize;
        property Constraints;
        property UseDockManager default True;
        property DockSite;
        property DoubleBuffered;
        property DragCursor;
        property DragKind;
        property DragMode;
        property Enabled;
        property FullRepaint;
        property Locked;
      {$IFDEF D2010}
        property Padding;
        property ParentDoubleBuffered;
        property Touch;
        property VerticalAlignment;
        property OnAlignInsertBefore;
    
        property OnAlignPosition;
        property OnGesture;
        property OnMouseActivate;
      {$ENDIF}
        property ParentShowHint;
        property PopupMenu;
        property ShowHint;
        property TabOrder;
        property TabStop;
        property Visible;
        property OnCanResize;
        property OnClick;
        property OnConstrainedResize;
        property OnContextPopup;
        property OnDockDrop;
        property OnDockOver;
        property OnDblClick;
        property OnDragDrop;
        property OnDragOver;
        property OnEndDock;
        property OnEndDrag;
        property OnEnter;
        property OnExit;
        property OnGetSiteInfo;
        property OnMouseDown;
        property OnMouseMove;
        property OnMouseUp;
        property OnResize;
        property OnStartDock;
        property OnStartDrag;
        property OnUnDock;
        property OnMouseEnter;
        property OnMouseLeave;
      end;
    
    implementation
    
    { TacLayout }
    
    uses Forms;
    
    constructor TacLayout.Create(AOwner: TComponent);
    begin
       inherited;
       SkinData.SkinSection := 'TRANSPARENT';
       BevelEdges := [beLeft, beTop, beRight, beBottom];
       BevelInner := bvNone;
       BevelOuter := bvNone;
       BorderWidth := 0;
       BorderStyle := bsNone;
       Caption := ' ';
       ParentCtl3D := False;
       Ctl3D := False;
    {$IFDEF D2010}
       ShowCaption := False;
    {$ENDIF}
    {$IFDEF DELPHI7UP}
       ParentBackground := True;
    {$ENDIF}
       ParentFont  := False;
       SideShadow.Mode := ssmNone;
       if csDesigning in ComponentState then BevelKind := bkFlat
                                        else BevelKind := bkNone;
    end;
    
    end.
    

    Although the skin says TRANSPARENT the control is not really totally transparent. If you move a TacLayout on top of another control, it will still obscure the covered control.
    What is needed here is a type of glass effect. I’m not sure how to accomplish that.
    Serge, can you help me out?

    in reply to: Sugestion #68877
    HeDiBo
    Participant

    I know now why this is such a pain. Every component that is created at design time gets its properties listed in the dfm file. That file is streamed in by the Reader AFTER the creation. Because on design time, the BevelKind is bkFlat, that is the value streamed to the dfm file. At run time, the property is set to bkNone during the component’s create event, but after that its properties are loaded in by the Reader and reset to bkFlat.
    So, the TacLayout component should inherit from TsCustomPanel, where the properties are not published, and selectively publish the properties needed. If Bevelkind is not published, it will not be streamed in by the Reader and all’s well.
    I’ll study which properties are needed for the TacLayout component and make a better one.

    in reply to: Sugestion #68876
    HeDiBo
    Participant

    Loaded procedure is only called if the component is streamed in with the form. If it is created dynamically in code, the Loaded procedure is not called. So, this solution may work, but is by no means foolproof.

    in reply to: Sugestion #68875
    HeDiBo
    Participant

    Serge,
    Why is the BevelKind property changed after the Create constructor?
    And why does this even work. Is Loaded not called at design time?
    Thank you for clarifying this.

    in reply to: Sugestion #68873
    HeDiBo
    Participant

    For some reason the BevelKind is bvNone at design time. I don’t know any more where to set it. Maybe Serge can help here.

    in reply to: Sugestion #68871
    HeDiBo
    Participant

    I must disagree with you, TLayout is by no means a light component.
    You may find the following lightweight component useful:

    unit acLayout;
    
    interface
    
    uses
      System.SysUtils, System.Classes, Vcl.Controls, Vcl.ExtCtrls, sPanel;
    
    type
      TacLayout = class(TsPanel)
      private
        { Private declarations }
      protected
        { Protected declarations }
      public
        constructor Create(AOwner: TComponent); override;
        procedure Loaded; override;
      published
        { Published declarations }
      end;
    
    procedure Register;
    
    implementation
    
    procedure Register;
    begin
      RegisterComponents('Samples', [TacLayout]);
    end;
    
    { TacLayout }
    
    constructor TacLayout.Create(AOwner: TComponent);
    begin
       inherited;
       SkinData.SkinSection := 'TRANSPARENT';
       BevelOuter := bvNone;
       Ctl3D := False;
       ShowCaption := False;
       ParentCtl3D := False;
       ParentFont  := False;
       // Although the following would make sense, after the Create event
       // ... apparently the BevelKind property is reset again during load.
       // ... So this logic is moved to after the Loaded event.
    // if csDesigning in ComponentState then BevelKind := bkFlat
    //                                  else BevelKind := bkNone;
    end;
    
    procedure TacLayout.Loaded;
    begin
       inherited;
       // Moved from Create event:
       if csDesigning in ComponentState then BevelKind := bkFlat
                                        else BevelKind := bkNone;
    end;
    
    end.

    Hope this helps.

    in reply to: Sugestion #68868
    HeDiBo
    Participant

    Why do you think the use of TPanel with Transparent skin is inferior to a layout setup?

    in reply to: Have a png image behave like a font image #68844
    HeDiBo
    Participant

    I didn’t realize the big difference between characters, being vectors, and my icons, being bitmaps.
    Still it is an interesting idea to have bitmaps that become negative on dark skins.

    HeDiBo
    Participant

    In AC15.08 you solved this problem ๐Ÿ’Ž
    Please close this topic.

    HeDiBo
    Participant

    In 15.08 you apparently have done some work on this.
    The OnMouseEnter and OnMouseLeave events do not work yet. Also the X,Y coordinates in OnMouseMove are incorrect. So, do you expect it to start working in a next release?

    in reply to: AC 15 Lighting option is not always an improvement. #68831
    HeDiBo
    Participant

    You seem to have found a solution in AC 15.08. Congrats ๐ŸŽˆ

Viewing 20 posts - 181 through 200 (of 1,174 total)