-
Пишу тут контрольчик, для себя - ну как обычно, не хватает функционала существующих. Вроде как не плохо получается, некоторые моменты еще не допилены, но уже есть что показать. Главная фишка контрола - размапливание данных, для их более удобного редактирования. Выглядит оть так (экзешник приложен): https://www.dropbox.com/s/9ohjvbzazb6ipj2/fwhex_demo.zip?dl=0Жду мнений и пинков :)
-
Миленько. Дизасм?
-
Все будет, я под "diStorm 3.3" закладываюсь, с прыжками и размапливанием дальних вызовов - должно получиться шеколадно (ну я так думаю).
-
Только вот не решил еще что с подсветкой асм выхлопа делать. Хотелось бы взять что готовое, но все эти внешние хайлайтеры сильно перегружают код. Придется походу самому шаманить что-то простое
-
Серо-синие или серо-зеленоватые оттенки вполне подойдут. Глазам приятно, да и с цветом проще опорные точки находить. Чисто белый вариант - лишний напряг для зрения. И на микрософт похоже ;)
-
Зависит от общей гаммы, оть тут-то у меня и засада на отрисовке. Но ничего - решу
-
А в чем могут быть сложности? Вот например делал свои контролы вместо системных. Вся отрисовка своя: https://cloud.mail.ru/public/bkmv/YUqSxabFZМогу кодом поделиться. Дубово конечно, но работает, хоть в буфере, хоть на системный DC.
-
> dmk © (16.04.17 16:54) [6] > А в чем могут быть сложности? Вот например делал свои контролы > вместо системных.
Да сложности то никакой, оверхеда не хочется. Кстати а с твоим софтом то как работать? Какой файл открывать? ЗЫ: У меня два монитора - окошко "О программе", на разрезе обоих - радует :)
-
Вообще это ROAM для рипов. Для просмотра сверхбольших однобитовых растров. Размер до 300000х300000 пикселов. Там тиф для примера приложен. Прорисовка окна полностью своя. Даже ScrollDC свой ;) Свои слайдеры, линейки, прорисовка и сдвиг + движок масштабирования. Почти как в шопе. На двух мониторах не тестировал. Там надо окно Information поставить в любое место и потом позиция панелей по умолчанию. Они в ряд выстроятся. Интерфейс я не дорабатывал. У меня другая тема сейчас - 3D.
-
> dmk © (16.04.17 18:41) [8] > Вообще это ROAM для рипов. Для просмотра сверхбольших однобитовых > растров. > Размер до 300000х300000 пикселов. Там тиф для примера приложен. >
Херасе!!! Заценил - могешь. Алго думаю стандартное - через псевдоканвас вывод?
-
Кстати (это уже профессиональное) - масштабирование блоками через метафайлы или ручками делал? :)
-
Вывод блоками 256х256 в буфер, а от винды только BitBlt и сообщения. В общем под досом также будет работать. Почти без переделки. Жалко движок выкидывать. Там можно слои делать, как в шопе рисовать и т.п. + поддержка LAB, CMYK, XYZ и т.п. Все сделано ручками. Даже шрифты свои ;) Правда растровые.
-
Публикуй сорцы, чего таким вещам пропадать?
-
Да вот думаю может чего коммерческого из нее сделать. А так если не выйдет, то опубликую.
-
Я уже давно забил на коммерцию, не получается из меня продажника :) Хотя есть идейка доделать утилиту выводящую диаграмму зависимостей проекта по модулям, для рефакторинга (развитие моего старого UnitWeb) да чет руки не доходят. Поэтому все в опенсорс выкладываю :)
-
С софтверной коммерцией всегда сложно. Угадать что нужно рынку трудно. Продукт должен быть просто идеальным в нынешних условиях. Да и еще куча факторов для успеха. В общем болото. Хотя если написать свой компилятор, то успех думаю будет. Российских компиляторов не видел ;)
-
> dmk © (18.04.17 12:53) [15]
> Хотя если написать свой компилятор, то успех думаю будет
Более того, оглушительный успех! ) Например, такой, как у Delphi сейчас. При том, что про Делфи хотя бы мельком слышал, практически каждый программер на Земле.
> Российских компиляторов не видел
если не ошибаюсь, то даже местные форумщики наклепали кучу компиляторов.
-
>если не ошибаюсь, то даже местные форумщики наклепали кучу компиляторов. Про компиляторы не слышал. Слышал про скрипты.
Ну Delphi со времен 3-ей версии выросла значительно. Мощная штучка получилась.
-
> Хотя если написать свой компилятор, то успех думаю будет.
Это грубо, компилер на коленке пишется за три дня - я на спор делал, сразу с декомпилером (дето у меня на сайте даже линк на него лежал). Оть другое дело поддержка всех функций языка, тут сложнее
-
>Оть другое дело поддержка всех функций языка, тут сложнее Да не очень. Я вот свои библиотеки пишу. SysUtils64, System64 и т.п. Всякие Lo, Hi, FloatToStrR, IntToStr, Inc, Dec, Move и т.п. мелкая чушь ;) У меня в ic64 все на своих функциях работает. Процентов 90. Вот.
Вот например одна:
//F - число типа double //NumDigits - кол-во разрядов после запятой (ограничивается диапазоном 0..MAXDOUBLEDIGITS(0..15)) //FRound = True: режим округления последнего разряда (Пример: 0.99 = 1.0, 0.099 = 0.10, 0.0099 = 0.010) //FRound = False: режим отсечения последнего разряда (Пример: 0.99 = 0.9, 0.099 = 0.09, 0.0099 = 0.009) function FloatToStrR(F: double; NumDigits: integer; FRound: boolean): string; var FRes: qword; IRes: qword; NumFDigits: integer; NumIDigits: integer; FStr: string; IStr: string; MaxFracPrecision: qword; fF: double; i, d, iD, MinusSign: integer; NumGroupDividers: integer; c: char;
begin if (F = DoubleNaN) then Exit('NaN');
//Инициализация строк FStr := ''; IStr := '';
//Кол-во разрядов после запятой, //которые следует показать NumFDigits := NumDigits;
//Отсечем максимальное кол-во разрядов if (NumFDigits >= MAXDOUBLEDIGITS) then Clamp(NumFDigits, 0, MAXDOUBLEDIGITS) else Clamp(NumFDigits, 0, NumDigits);
//Дробная часть if (NumFDigits >= 0) then begin //Масимальная точность числа в целочисленном представлении MaxFracPrecision := Power10(NumFDigits); //Округление последнего разряда if FRound then begin //Сместим разряды в целую часть и округлим //Фактически число изменилось F := Round(F * MaxFracPrecision) / MaxFracPrecision; end; //Дробная часть fF := Frac(F); //Сместим разряды в целую часть fF := (fF * MaxFracPrecision); //Преобразуем в положительное целое if FRound then FRes := Abs(Round(fF)) else FRes := Abs(Trunc(fF)); //Длина дробной строки SetLength(FStr, NumFDigits);
for i := NumFDigits downto 1 do begin //Остаток числа в символ d := (FRes mod 10); //Преобразуем в знак c := SingleDigits[d]; //Добавим в строку FStr[i] := c; //Переход к следующему разряду FRes := (FRes div 10); end; end;//if
//Целочисленная часть if InRange(F, MinDoubleToInt64, MaxDoubleToInt64) then begin //Резерв места для знака if (F < 0) then MinusSign := 1 else MinusSign := 0; //Целая часть числа IRes := Abs(Trunc(F)); //Кол-во чисел в целой части NumIDigits := CountIntDigits(IRes); //Учтем разделение разрядов в группы по 3 знака if (NumIDigits > 3) then begin NumGroupDividers := (NumIDigits div 3); //Если кол-во чисел кратно трем, //то последний разделитель не нужен if ((NumIDigits mod 3) = 0) then Dec(NumGroupDividers); end else NumGroupDividers := 0; //Длина строки целой части с учетом знака и разделителей групп SetLength(IStr, NumIDigits + NumGroupDividers + MinusSign); //Счетчик позиций в строке i := (NumIDIgits + NumGroupDividers + MinusSign); //Счетчик цифр iD := 0;
while (i > 0) do begin //Остаток числа в символ d := (IRes mod 10); //Преобразуем в знак c := SingleDigits[d]; //Добавим число в строку IStr[i] := c; //Считаем кол-во выведенных в строку цифр Inc(iD); //Вставим разделитель групп if (NumGroupDividers > 0) then if ((iD mod 3) = 0) then begin Dec(i); IStr[i] := GroupSeparator; Dec(NumGroupDividers); end; //Переход к следующему разряду IRes := (IRes div 10); //Смещаемся в строке Dec(i); end;
if (MinusSign = 1) then IStr[1] := '-'; end else Exit(MSG_DOUBLEEXCEDINGLIMITS);
if (NumFDigits <> 0) then Result := IStr + DecimalSeparator + FStr else Result := IStr; end;
-
> Rouse_ © (18.04.17 10:41) [14] > > Я уже давно забил на коммерцию, не получается из меня продажника > :) > Хотя есть идейка доделать утилиту выводящую диаграмму зависимостей > проекта по модулям, для рефакторинга (развитие моего старого > UnitWeb) да чет руки не доходят. > Поэтому все в опенсорс выкладываю :)
Ну с именно продажей конечно будет очень сложно, покупать абы что не будут. А вот полезный Free продукт с рекламкой на сайте скачивания + донат. Но нужно хотя бы сотни тысяч пользователей. В эту область кто нибудь пытался проложить свой путь?
-
-
> хоть кто-то будет пользоваться? да, нормально, пусть будет ))
-
>Rouse_ © (18.04.17 13:45) [18] А есть что посмотреть (наброски компилятора)? Мне для опыта ;)
-
То что есть не готово, я под свою кухню его затачивал Есть только кусок декомпилера
-
|