Мыслить глобально ! (Среда разработки веб приложений )

Обсуждаются как существующие проекты (перевод документации, информационная система и т.п.), так и создание новых.

Модератор: Модераторы

Re: Мыслить глобально ! (Среда разработки веб приложений )

Сообщение Alex2013 » 16.02.2017 16:29:44

А попробовать запустить лень ? (Впрочем разумеется "чья бы корова мычала" пара попыток разобраться в твоем проекте "завяла на корню" ... ) :oops: Но это все же бинарник: скачал , распаковал, запустил ... Насчет полсекунды я малость преувеличил ... но разница между версией с показом процентов загрузки-обработки и версией с без показа чуть ощущается (и не только из за Application.ProcessMessages там еще вызов поэлементной обработки вместо того что-бы обработать одним циклом (как минимум кучу условий нужно проверить для каждого элемента на входе в FastDrawFig ) )... может быть проще написать "Загрузка..." да включить "курсор ожидания "?
Зы
Кстати, как загрузить свой курсор ? "Толстый крестик" в место нормального "прицела" уже давно напрягает мои нервы.... (Где-то со времен забытого Дельфи 5 валяется отличная коллекция курсорв, но как их грузить в LCL увы пока не нашел ... :roll: (хотя наверное просто плохо искал )... )
Последний раз редактировалось Alex2013 09.12.2019 16:02:56, всего редактировалось 2 раз(а).
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Мыслить глобально ! (Среда разработки веб приложений )

Сообщение zub » 16.02.2017 18:05:55

Нет не лень. Только что толку, если ты чтото делаешь не так, ну не может ProcessMessages съедать много времени. если его нормально сделать конечно.

>>Кстати, как загрузить свой курсор ?
Зачем? У тебя всё достаточно безвкусно смотрится))
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Мыслить глобально ! (Среда разработки веб приложений )

Сообщение Alex2013 » 16.02.2017 20:20:03

zub писал(а):>>Кстати, как загрузить свой курсор ?
Зачем? У тебя всё достаточно безвкусно смотрится))
:mrgreen:
А представь что будет если программа внезапно кому-то покажется ВКУСНОЙ ? Это же ужос будет ... :lol: ...
Черный черный банер привел черного черного негра на черный черный сайт ... и там бедный оголодавший арфро-африканец увидел ЕЁ программу которая казалась ВКУСНОЙ ... бедные бедные черные дети бедного бедного негра застали его черный совсем черный труп .. у черного черного изгрызенного обуглившимися зубами монитора ... :mrgreen: :idea:

На самом деле у меня пока "не как не смотрится" бо альфа пусть и уже развитая почти до беты ...
(по сути сейчас доделываю функциональный макет, а интерфейс разумеется буду переделывать и не раз это как раз самое простое... )
А курсор нужен реально потому, что под "крестом" невидно точки "прицеливания" .

Нужен такой
Изображение
или хотя-бы такой
Изображение
(Разумеется в нужном масштабе )
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Мыслить глобально ! (Среда разработки веб приложений )

Сообщение Лекс Айрин » 16.02.2017 20:56:14

у меня в проге вот такменяется. К сожалению, не понимает анимационные курсору.
Код: Выделить всё
procedure TFMain.MenuItemCursorClick(Sender: TObject);
Var
   Cur: TCursorImage;
begin
   if OpenDialogCursor.Execute then
   begin
    Cur := TCursorImage.Create;
  try
    Cur.LoadFromFile(OpenDialogCursor.FileName);
    Screen.Cursors[1] := Cur.ReleaseHandle;
  finally
    Cur.Free;
  end;
  FMain.Editors.Cursor:=1;   //тут курсор меняется
  FMain.Repaint;
   end else begin end;
end;           

но я тоже думаю, что это все фигня -- проще такой курсор сделать средствами системы и не изображать Каренину.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Мыслить глобально ! (Среда разработки веб приложений )

Сообщение zub » 16.02.2017 22:34:58

Код: Выделить всё
end else begin end;

это как iddqd или idkfa?

Добавлено спустя 4 минуты 35 секунд:
>>Впрочем разумеется "чья бы корова мычала" пара попыток разобраться в твоем проекте "завяла на корню" ...
Ты не первый и не последний. Разобравшихся или хотябы серъезно пытавшихся еще небыло((
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Мыслить глобально ! (Среда разработки веб приложений )

Сообщение StarikPro » 16.02.2017 23:13:37

Про morfik уже упоминали ??? Случаем не похожа идея ???
StarikPro
новенький
 
Сообщения: 18
Зарегистрирован: 24.08.2014 18:22:08

Re: Мыслить глобально ! (Среда разработки веб приложений )

Сообщение Alex2013 » 17.02.2017 03:25:58

Лекс Айрин писал(а):у меня в проге вот такменяется. К сожалению, не понимает анимационные курсору.
Код: Выделить всё
procedure TFMain.MenuItemCursorClick(Sender: TObject);
Var
   Cur: TCursorImage;
begin
   if OpenDialogCursor.Execute then
   begin
    Cur := TCursorImage.Create;
  try
    Cur.LoadFromFile(OpenDialogCursor.FileName);
    Screen.Cursors[1] := Cur.ReleaseHandle;
  finally
    Cur.Free;
  end;
  FMain.Editors.Cursor:=1;   //тут курсор меняется
  FMain.Repaint;
   end else begin end;
end;           

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

Спасибо ! Попробую !
(на счет самодельного курсора тоже думал ... но там слишком много чего отслеживать нужно (и так даже с сеткой грида намучился изрядно ) )
ЗЫ
"Все фигня кроме пчел !"(С) 8)
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Мыслить глобально ! (Среда разработки веб приложений )

Сообщение Лекс Айрин » 17.02.2017 09:37:16

Alex2013 писал(а):(на счет самодельного курсора тоже думал ... но там слишком много чего отслеживать нужно (и так даже с сеткой грида намучился изрядно ) )


да его рисовать то как два байта переслать... сложнее, прогу найти. А так, берешь обычный крест, вымарываешь середину и добавляешь кружочек. Там прога нужна только для установки, собственно, точки самого курсора. Надо, кстати, у себя заменить.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Мыслить глобально ! (Среда разработки веб приложений )

Сообщение zub » 17.02.2017 10:08:06

Я в который раз повторяю - выделять пикселем нельзя. выделять надо квадратом или окружностью и иметь настройку их размера. Также обязательно должен быть режим выделения рамкой.
Поэтому всякие статические пиксельные "прицелчики" на курсоре - баловство.
Невозможно работать когда чтобы выделить линию толщиной 1 пиксель на нее надо этот выделяющий один пиксель навести
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Мыслить глобально ! (Среда разработки веб приложений )

Сообщение Лекс Айрин » 17.02.2017 10:14:54

zub, я говорю об активной точке самого курсора. Это часть курсора. Понятное дело, что в редакторе выделяется рамкой (эт сетера)...
А так... ну хочет человек помучаться... так это только его проблема. И, кстати, я реально понимаю пользу подобного курсора.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Мыслить глобально ! (Среда разработки веб приложений )

Сообщение Alex2013 » 18.02.2017 05:46:05

Код загрузки курсора разумеется работает ... :idea: Еще раз спасибо !

Пока что мой лучший курсор CR.CUR (Виден и "на свету" и "в темноте" )
Смотрится примерно так (Скриншот курсор не видит ...)
ИзображениеИзображение

Попытался сделать загрузку из ресурса ... Ага в примере работает (даже ресурс для примера сам собирал ) а у меня не работает ... :roll:
(Хотя по идее всего-то нужно заменить Cur.LoadFromFile('CR.cur'); на Cur.LoadFromResourceName(HInstance, 'CR'); да добавить {$R CR.RES} ... )

Ну ладно невелика потеря !
Зато научился делать курсоры самостоятельно ... внезапно ... (ну как минимум для меня ) оказалось, что курсор (CUR) просто переименования иконка (ICO)... Вся "проблема" в добавлении альфа канала для прозрачности ...( все нет больше проблемы... "убита " обычным IrfanView-ром )
Анимированными курсорами не занимался но выяснил то это переименованные в CUR файлы типа ANI ...
Да для центровки нужно задавать смещение ( например так cur.HotSpot:=point(15,16);)
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Мыслить глобально ! (Среда разработки веб приложений )

Сообщение Лекс Айрин » 18.02.2017 09:54:10

Alex2013 писал(а):Анимированными курсорами не занимался но выяснил то это переименованные в CUR файлы типа ANI ...


вообще, система понимает и с расширением ani... видимо это все же косяк Lasarus. Попробую и у себя переименовать...
Лично я скачал бесплатный редактор курсоров... а так и пеинта достаточно)))
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Мыслить глобально ! (Среда разработки веб приложений )

Сообщение Alex2013 » 22.02.2017 16:01:21

Вчера написал первую версию масштабирования фигур ... Для квадратно-гнездовых фигур все разуется просто а вот для полигонов все на каплю но сложней ....
Вот так :
Код: Выделить всё
   Function SP2( SS:String;R:Real;Mi:Longint):String;
   var i:Longint;
   begin
    I:= trunc ((StrToInt (ss)-mi)*R)+Mi ;
     FZ:=FZ or (I <0 );
   SP2:=IntTostr(I);
   end;


...
Код: Выделить всё
//Считаю коэффициент масштабирования 
       DXX :=MaxX-MinX;
       DYY :=MaxY-MinY;
      if dxx=0 then rx:=1 else  RX:=(DXX+DX)/DXX;
      if dyy=0 then ry:=1 else  RY:=(DYY+DY)/DYY;

      repeat
       CX:=Next1(s,'  ');   CY:=Next1(s,'  ');// Получаю точку из строки команды

       SX:=SP2(CX,RX,MinX);     SY:=SP2(CY,RY,MinY);// Пересчитываю масштаб 

        SS:=SS+SX+'  '+SY+'  '; // собираю результат в новую команду
      until S='END';
      SS:=SS+'END';


Для теста сделал увеличение стрелами при нажатой клавише Alt
Код: Выделить всё
  if  ssAlt   in  Shift then
    begin
      if CurOP =-1 then  CurOP := drawlist.count-1;
        case key of
          vk_Up :  StretchXY(CurOP,0,-1 );
        vk_Down :  StretchXY(CurOP,0,1 );
        vk_Left :  StretchXY(CurOP,-1,0 );
       vk_Right :  StretchXY(CurOP,1,0)
       else exit;
      end;

        key:=0;
     Goto END1;
  end;


У метода есть два недостатка ...
Первый понятный и предсказуемый: при уменьшении масштаба по одному пикселю после слиянии в ноль хотя-бы одной координат любой из точек фигура безвозвратно "складывается" .
( понятно для хотя-бы частичной защиты от "эффекта сломанного зонтика " надо делать увлечение мышкой... причем так чтобы до окончания и изменения масштаб исходная фигура сохранялась и все операции производились не с "результатом результата " а с "оригиналом" )

И второй не очень понятный: при увеличении или уменьшении часть точек сдвигается "с разной скоростью" .
(результат искажение геометрии части фигур при изменении масштаба)

Вопрос: что не так делаю ? :roll:
(Нарыл примеров буду побывать применить рецепты из них .... но просто интересно где же у меня "логическая дырка" в простом и понятном коде ... )
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Мыслить глобально ! (Среда разработки веб приложений )

Сообщение zub » 24.02.2017 01:34:29

>>Goto END1;
ну ты понял.
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Мыслить глобально ! (Среда разработки веб приложений )

Сообщение Alex2013 » 24.02.2017 02:00:56

Сборка :arrow: FR0004_20_5_47_3_bin.7z с курсором и масштабированием ....

Масштабирование не идеально но уже лучше чем было (Пока по прежнему через Аlt +стрелки )
Сделал "хитрый" буфер для текущей команды(защита от потери точности и "эффекта сломанного зонтика" теперь полигоны можно даже "вворачивать " ) и разкопировал его сброс по всей программе - всюду где в список фигур в носятся изменения ... (Увы, отлично понимаю, что там где в программе есть нужда "хитростях" программист страдает тупостью... но пока лучшего нет пусть будет хотя-бы так )

Ясно что также как и "пограничной-рамкой" желательно вести глобальный список коэффициентов масштабирования и не мучатся идеями "уменьшения нелокальности" НО как не хочется терять красивую парадигму "одна функция - одна процедура " и для реализации масштабирования ... (и так пришлось в куче мест по всей программе вешать флаг сброса буфера )
Зы
Насчет Gooto : там или Goto или лишняя копия кода (Goto мне тоже не нравится но и боятся его применять (если переход не из цикла ) я не собираюсь ...) Если это просто просто очередная подколка ... то в очередной раз мимо ...
проект развивается, количество функций растет, ошибки правлю ... Как говорятся "Дело в шляпе... но шляп я не ношу !" :D Да, хотелось бы быть умнее, быстрее, лучше ... но это кто-то другой ... :wink: :mrgreen:
Завидовать мне тоже ... смеху подобно ... ага, гомерическому ! (уж поверь на слово... : :| ) ... и вообще уже не раз говорил "колхоз дело добровольное".... форум мне помогает причем по делу ... убежден что и я тут нелишний ... (даже в своих вопросах я не оригинален а это значит что ответы нужны не только мне ... ) Спасибо за советы... удачи ! ... и не бурчи ... ты "Зуб" а не "Язва" ... :mrgreen:
Последний раз редактировалось Alex2013 09.12.2019 16:12:07, всего редактировалось 9 раз(а).
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Пред.След.

Вернуться в Разное

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 7

Рейтинг@Mail.ru