Страница 2 из 2

Re: Прявязка пользовательских иконок центром

СообщениеДобавлено: 24 авг 2017, 10:48
DJ VK
Пока нет желающих заняться немного комментариев по коду, для самостоятельных экспериментов так сказать.
вариант отрисовки может быть закодирован в имени картинки.
unit u_MarkPictureSimple
перечислены два варианта привязки. если нужны другие варианты - надо их сюда добавить
Код: Выделить всё
TMarkPictureAnchor = (paDefault, paCenter, paTop, paLeft, paRight);


процедура = procedure TMarkPictureSimple.InitPic;
Код: Выделить всё
var VFileName: string; {добавить объявление переменной в var}


перед строчкой case
Код: Выделить всё
FPicAnchor of

получаем имя файла без пути VFileName := ExtractFileName(FFullFileName);
и проверяем префиксы
Код: Выделить всё
{далее для каждого(!) случая прописываем проверку префикса. }
if(VFileName.Length() >= 7) then
  if(VFileName.SubString(1,7) = 'Center_') then
    FPicAnchor := paCenter;
if(VFileName.Length() >= 4) then
  if(VFileName.SubString(1,4) = 'Top_') then
    FPicAnchor := paTop;
if(VFileName.Length() >= 5) then
  if(VFileName.SubString(1,5) = 'Left_') then
    FPicAnchor := paLeft;
if(VFileName.Length() >= 6) then
  if(VFileName.SubString(1,6) = 'Right_') then
    FPicAnchor := paRight;



* если мы добавим свои варианты привязки, надо добавить и нахождение для этих случаев точки привязки
Код: Выделить всё
case FPicAnchor of
        paTop: begin        {привязка верхней серединой}
            VAnchor.X := VBitmap.Size.X / 2;
            VAnchor.Y := 0;
          end;
       paLeft: begin        {привязка левой серединой}
            VAnchor.X := 0;
            VAnchor.Y := VBitmap.Size.Y / 2;
          end;
       paRight: begin        {привязка правой серединой}
            VAnchor.X := VBitmap.Size.X;
            VAnchor.Y := VBitmap.Size.Y / 2;
          end;
        paCenter: begin    {привязка центром}
            VAnchor.X := VBitmap.Size.X / 2;
            VAnchor.Y := VBitmap.Size.Y / 2;
          end;

        else // paDefault
        begin
          VAnchor.X := VBitmap.Size.X / 2;
          VAnchor.Y := VBitmap.Size.Y;
        end;
        end;

имена файлов в папке переименовываем, добавляя префиксы
Left_ (лево), Right_ (право), Top_ (верх), Center_ (центр)

Re: Прявязка пользовательских иконок центром

СообщениеДобавлено: 26 авг 2017, 14:03
Vitalik
DJ VK давайте я Вам заплачу, а Вы попробуете сделать, может выйдет чё-нибудь. Как то сложновато мне в памяти делфи восстанавливать.

Re: Прявязка пользовательских иконок центром

СообщениеДобавлено: 26 авг 2017, 19:54
DJ VK
Vitalik писал(а):DJ VK давайте я Вам заплачу, а Вы попробуете сделать, может выйдет чё-нибудь. Как то сложновато мне в памяти делфи восстанавливать.

Короче юнит я вам напишу бесплатно, ибо строчек 10 всего поправить, а уж куда его Вы сунете....
Это все таки "костыльный" метод, не факт что его примут вообще.
скрытый текст: показать
времени свободного очень мало. Я хочу в место этого написать десяток больших программ, за которые не заплатят, отсканировать и распознать книги, наделать игрушек напильником и посидеть с детьми. Плюс отреманировать ванную + починить магнитофон и ноутбук. Плюс убраться хорошенько + начертить карту наземного транспорта с перспективой плюс ... и так на 15 лет вперед.. Это нельзя купить за деньги, которые вы мне предлагаете....
Я могу поправить юнит, это 5 минут. Собрать с ним программу с нуля - это полчаса, в лучшем случае. а в худшем несколько часов. но и этого мало. Это я только альтернативную программу соберу. 1 экземпляр. А чтобы функционал попал в основную программу(во все будущие релизы) - это надо еще возиться часов несколько. Настраивать репозиторий, собирать, и заливать изменения.
То есть исправлений два абзаца - но чтобы их в программу - все выходные на это убить. В гробу это все... Пробовал, не понравилось. С тех пор зарекся в коде планеты рыться лишний раз.
Ночнушки выходят регулярно. Значит программу собирают. Значит добавить юнит 2 секунды. Но это если не я сделаю. Не я, Карл. А вот с этим то и проблема. Каждый раз один и тот же ответ. Соберите сами и пропихните в репозиторий программы. Да, только ради надписи в репозитории. Этот код подправил биообъект такой-то. Ради какой-то стукаческой надписи для сатаныбольшого брата, Карл, еще день возни дополнительной. (Я планетой так редко занимаюсь, что для меня любая правка с регистрации на сайте битбукете заново и установки дельфи заново (если не студия берлин) начинаться должна !!!).
Из тех, кто занимался разработкой, самый адекватный garl был. С ним можно кодом было поделиться, когда он собирал программу.

Ну не получается у меня поладить с людьми которые считают, что репозитории(электронный учет, электронные деньги, и вообще научно-технический прогресс) - это благо, поэтому и мы должны с ними в это стойло идти, если прикажут....

Re: Прявязка пользовательских иконок центром

СообщениеДобавлено: 26 авг 2017, 22:58
Vitalik
Интересное стихотворение вы написали. Ладно, буду по старинке. Карту загонять в exel и там рисовать свои иконки... Спасибо. за ответы. Тему можно закрыть.

Re: Прявязка пользовательских иконок центром

СообщениеДобавлено: 26 авг 2017, 23:22
garl
если DJ VK сделает юнит, могу его зпуллить в репо забесплатно (мне на минуту делов, ибо уже всё настроено)
примут его или нет - уже другой вопрос. DJ VK будет ли его допиливать в соответствии с требованиями?

Re: Прявязка пользовательских иконок центром

СообщениеДобавлено: 27 авг 2017, 15:37
DJ VK
garl писал(а):мне на минуту делов, ибо уже всё настроено

Вот именно поэтому, я и отказываюсь заниматься сборкой, ибо у меня это займет массу времени.
Вот юнит.
Привязка иконок осуществляется дописыванием в начало имени файла следующих префиксов:
Код: Выделить всё
Center_
Top_
Left_
Right_
TopLeft_
TopRight_
BottomLeft_
BottomRight_


upd нашел ошибку
if(VFileName.Length() >= 9) then
if(VFileName.SubString(1, 9) = 'TopRight_') then

вложение поправил

Re: Прявязка пользовательских иконок центром

СообщениеДобавлено: 29 авг 2017, 21:20
vdemidov
скрытый текст: показать
DJ VK писал(а):времени свободного очень мало. Я хочу в место этого написать десяток больших программ, за которые не заплатят, отсканировать и распознать книги, наделать игрушек напильником и посидеть с детьми. Плюс отреманировать ванную + починить магнитофон и ноутбук. Плюс убраться хорошенько + начертить карту наземного транспорта с перспективой плюс ... и так на 15 лет вперед.. Это нельзя купить за деньги, которые вы мне предлагаете....
Я могу поправить юнит, это 5 минут. Собрать с ним программу с нуля - это полчаса, в лучшем случае. а в худшем несколько часов. но и этого мало. Это я только альтернативную программу соберу. 1 экземпляр. А чтобы функционал попал в основную программу(во все будущие релизы) - это надо еще возиться часов несколько. Настраивать репозиторий, собирать, и заливать изменения.
То есть исправлений два абзаца - но чтобы их в программу - все выходные на это убить. В гробу это все... Пробовал, не понравилось. С тех пор зарекся в коде планеты рыться лишний раз.
Ночнушки выходят регулярно. Значит программу собирают. Значит добавить юнит 2 секунды. Но это если не я сделаю. Не я, Карл. А вот с этим то и проблема. Каждый раз один и тот же ответ. Соберите сами и пропихните в репозиторий программы. Да, только ради надписи в репозитории. Этот код подправил биообъект такой-то. Ради какой-то стукаческой надписи для сатаныбольшого брата, Карл, еще день возни дополнительной. (Я планетой так редко занимаюсь, что для меня любая правка с регистрации на сайте битбукете заново и установки дельфи заново (если не студия берлин) начинаться должна !!!).
Из тех, кто занимался разработкой, самый адекватный garl был. С ним можно кодом было поделиться, когда он собирал программу.

Ну не получается у меня поладить с людьми которые считают, что репозитории(электронный учет, электронные деньги, и вообще научно-технический прогресс) - это благо, поэтому и мы должны с ними в это стойло идти, если прикажут....

Как понимаю камень в мой огоро. А почему бы не предположить что у других людей тоже нет времени? Мне пофигу на то кто зальет в репозиторий. Мне важно что бы это кто-то сделал. У меня доступ к компу в последнее время есть очень эпизодически и на короткое время. Поэтому взять чей-то патч, проверить, исправить форматирование, проверить компиляцию, исправить замечания, закоммитить просто нет возможности. Но есть возможность просмотреть пулреквест и написать комментарии на битбукете я могу. Отсюда мое требование присылать пул реквест. Сделать клон репозитория, коммит и пул реквест занимает 10 минут и 10 кликов мышкой.