Вот тебе еще для размышления
viewtopic.php?f=32&t=9607&p=78921#p78921
zub-у правда не понравилось))
Модератор: Модераторы
Sharfik писал(а):Вот тебе еще для размышления
http://freepascal.ru/forum/viewtopic.ph ... 921#p78921
zub-у правда не понравилось))
Alex2013 писал(а):А еще это не просто графический редактор, а редактор веб-страниц ...
(Улавливаешь, что там основное ? Верно! Вывод текста кнопок полей вода и т.д. и графики как можно ближе к тому, что будет в брузере (в идеале один в один ) А значит чем меньше преобразований тем лучше ! )
zub писал(а):Ну и в догонку. [s]порно[\s]графическим способом ты не сможешь разрулить случай когда под мышкой находится несколько объектов - будешь знать только о "верхнем"
А определить что в точке за пределами зоны отображения? не всегда только под мышкой надо
zub писал(а):там с тех лохматых времен чтонибудь продвинулось?
Попробуй выведи ОутТекст и не только его по ОТРИЦАТЕЛЬНЫМ координатам
Sharfik писал(а):Alex2013 писал(а):А еще это не просто графический редактор, а редактор веб-страниц ...
(Улавливаешь, что там основное ? Верно! Вывод текста кнопок полей вода и т.д. и графики как можно ближе к тому, что будет в брузере (в идеале один в один ) А значит чем меньше преобразований тем лучше ! )
В таких программах подстава в том, что если сразу архитектуру не продумал - переделки на недели.
Все что тебя волнует легко в памяти отрисовываеться на канве1, а потом под нужды пользователя выводится с масштабированием на канву2. Для кликов мышки делается функция конвертации по коэффициенту масштаба. Собственно в моем примере это все есть. Этот же трюк используется в браузерах(страницы зуммируются) и в офисных программах типа ворд и эксель.
Sharfik писал(а):Попробуй выведи ОутТекст и не только его по ОТРИЦАТЕЛЬНЫМ координатам
Вопрос, у программы прямой вывод на канву? Она что то делает и рисует сразу на канве, которую видит пользователь?
Alex2013 писал(а):В том то и фокус, что у меня "все кон-фу" не в основной программе прошито. а постепенно дописывается в скриптах
Лекс Айрин писал(а):Alex2013 писал(а):В том то и фокус, что у меня "все кон-фу" не в основной программе прошито. а постепенно дописывается в скриптах
Имхо, это не кон-фу, а самообман. Теперь тебе придется в "костях" продумать и реализовать быструю отрисовку примитивов. А насчет отрицательных координат... если приходится их использовать, то что-то пошло не так...
// Номер команды по клику
Function GetCMDOnClik(X,Y:Longint):Longint;
Var
B:TBitmap;
i:longint;
begin
Result:=-1;
If drawlist= Nil then exit;
If drawlist.Count=0 then exit;
B:=TBitmap.Create;
B.SetSize(rf1.PaintBox1.Width,rf1.PaintBox1.Height);
CurCanvas:=B.Canvas;
For I:=0 TO DrawList.Count-1 DO
begin
b.Canvas.Brush.Color:=$f2;
CurCanvas.FillRect(0,0,b.Width,b.Width);
CurCanvas.Pen.Mode:=pmWhite;
DrawFig(-1,DrawList[i]);
CurCanvas.Pen.Mode:=pmCopy;
if b.Canvas.Pixels[X,Y]<>$f2 then
Result:=I;
end;
CurCanvas:=rf1.PaintBox1.Canvas;
b.Free;
end;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 242