Тень

        public static void SetShadow (UIView v)
        {
            v.Layer.ShadowRadius = 3;
            v.Layer.ShadowOpacity = 1;
            v.Layer.ShadowOffset = new CoreGraphics.CGSize (0, 0);
            v.Layer.ShadowColor = UIColor.Black.CGColor;
        }

Шаблон iOS Xamarin custom control

using System;
using System.Collections.Generic;
using System.ComponentModel;
using Foundation;
using UIKit;
namespace poslogamI
{
    [DesignTimeVisible (true)]
    public partial class ConstructorVC : UIView, IComponent
    {
        public ISite Site { get; set; }
        public event EventHandler Disposed;        #region Initialization
        public ConstructorVC (IntPtr handle) : base (handle)
        {
            Initialize ();
        }
        public ConstructorVC () : base ()
        {
            Initialize ();
        }
        public override void AwakeFromNib ()
        {
            base.AwakeFromNib ();
            Initialize ();
        }
        List<UIView> slogiViews = new List<UIView> ();
        void Initialize ()
        {
            var btnFrame = new CoreGraphics.CGRect (0, 0, 100, 100);
            UIButton btn = new UIButton (btnFrame);
            btn.BackgroundColor = UIColor.Red;
            slogiViews.Add (btn);
            AddSubview (btn);
        }
        #endregion        #region Runtime tools
        bool isDesignMode {
            get {
                if (Site != null && Site.DesignMode)
                    return true;
                else
                    return false;
            }
        }
        #endregion        #region Designervisible parameters
        string wordFolder = ««;
        [Export («WordFolder«), Browsable (true)]
        public string WordFolder {
            get {
                return wordFolder;
            }
            set {
                wordFolder = value;
            }
        }
        #endregion

    }
}

 

Вызов C# DLL из Delphi XE2

bstr

  1. В C# проект DLL добавить в проект пакет NuGet под названием .NET DllExport
  2. В C# добавить экспортируемую функцию (пример с параметрами типа string)

[return: MarshalAs(UnmanagedType.BStr)]
[DllExport("Save", CallingConvention = System.Runtime.InteropServices.CallingConvention.Cdecl)]
public static string Save([MarshalAs(UnmanagedType.BStr)]string ID, [MarshalAs(UnmanagedType.BStr)] string Data)
{
............
return "OK";
}

  1. Билд DLL из C# папки x86 копируется в папку билда проекта на Delphi
  2. В Delphi добавляется описание вызова

function Save(ID: widestring; Data: widestring): pchar; cdecl; external 'sharp.dll' name 'Save';

ВНИМАНИЕ! При передаче строки из Delphi в C# использован тип widestring, а при возврате результатов из C# в Delphi — тип pchar.

WordPress + IIS: а где картинки?..

wp_iis_image

Проблема: после установки WordPress на IIS оказалось, что загружаемые в CMS изображения не появляются на страничках. Однако, файл изображения действительно загружен и лежит в назначенной папке.

Причина в том, что при загрузке файла PHP, на котором работает WordPress, размещает новый файл в системной временной папке (обычно C:\Windows\Temp), и файл наследует права от этой папки. Затем файл копируется в папку WordPress и тянет за собой недостаток прав.

Решение: изменить временную папку в настройках php.ini на папку с правильными правами или изменить права на временной папке по умолчанию.

5 раз Alt и клава снова пашет!

Долго мучился от того, что на MacBook иногда переставала работать клавиатура. Оказалось, что она включается в режим управления курсором мышки. Для переключения нужно 5 раз нажать Alt. Выключить эту фишку можно в настройках компьютера в разделе  «Универсальный доступ» — «Мышь и трекпад» — «Параметры»Переключатель режимов клавиатуры

Яндекс.Метрика