Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2007, 16:19   #11
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
А вот можно чтобы со всех сторон можно было растягивать?
Можно конечно, и по диагонали можно, и с соблюдением пропорций. Попробуй сам, образец у тебя уже есть. Единственная разница если тянуть вверх и влево то одновременно с увеличением размера нужно изменять координаты имиджа.
Добавляй переменные LefttEdge, TopEdge (в переводе с ангельского левый край, верхний край) и вперед

p.s. Так как советует Stilet проще, форма сама во все стороны тянется, не надо код писать.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 05.11.2007 в 16:22.
mutabor вне форума Ответить с цитированием
Старый 05.11.2007, 18:08   #12
Marsik
Форумчанин
 
Аватар для Marsik
 
Регистрация: 23.10.2007
Сообщений: 275
По умолчанию

Стилет по твоему методу попробовал. Получилось,но не то!Форма,да,и перемещается и растягивается,но когда форму сжимаешь...форма закрывает рисунок!
http://otlishnik.com/ чудесный портал для всех кто учится. Рефераты, каталоГ вузов, решебники, справочники, ЕГЭ! Welcome
Marsik вне форума Ответить с цитированием
Старый 05.11.2007, 18:36   #13
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Читаем еще раз
Цитата:
Как вариант (уже такое предлагал) запихни рисунок в окно, а окно сделай дочерним по отношению другого окна, избавься от капшина, поставь рисунку Stretch и Align на Client и растягивай скок хош.
Эффект будет такой как будто ты тянеш именно картинку. (меня это однажды выручило)
хотя щас посмотрел код, там программно это делается

p.s. добавь туда (после Image1.Align:=alClient)
Image1.Stretch:=True;
f.DoubleBuffered:=True; //это от мерцания
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 05.11.2007 в 18:55.
mutabor вне форума Ответить с цитированием
Старый 05.11.2007, 19:04   #14
Marsik
Форумчанин
 
Аватар для Marsik
 
Регистрация: 23.10.2007
Сообщений: 275
По умолчанию

Мутабор,я вот пытался совсех сторон сделать,но не получилось!вот как эт я делал для topedge:
if (x >=cx) and (x < cx-imw) and (y >= cy-imh) and (y < cy-imh-3) и т.д.
http://otlishnik.com/ чудесный портал для всех кто учится. Рефераты, каталоГ вузов, решебники, справочники, ЕГЭ! Welcome
Marsik вне форума Ответить с цитированием
Старый 05.11.2007, 19:21   #15
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
if (x >=cx) and (x < cx-imw) and (y >= cy-imh) and (y < cy-imh-3)
это условие попадания курсора в определенную область, для верхнего торца, оно неправильное.
Правильно такъ:
if (x >cx) and (x < cx+imw) and (y <= cy) and (y > cy-3)
если ты помнишь cx,cy это координаты имиджа,
а imw, imh это его ширина и высота.
x, y это координаты курсора, их тебе дает процедура MouseMove.
Попытайся разобраться почему условие именно такое и напиши условие для нижнего края.

p.s. А как с формой разобрался? Ты что параллельно тремя методами делаешь

p.p.s. Инструкция
sample.bmp
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 05.11.2007 в 19:52.
mutabor вне форума Ответить с цитированием
Старый 05.11.2007, 20:32   #16
Marsik
Форумчанин
 
Аватар для Marsik
 
Регистрация: 23.10.2007
Сообщений: 275
По умолчанию

Еще с формой не пробал.А я так и не могу понять как для rightedge делать!Голова уже кругом идет! А почему с тремя то?
http://otlishnik.com/ чудесный портал для всех кто учится. Рефераты, каталоГ вузов, решебники, справочники, ЕГЭ! Welcome
Marsik вне форума Ответить с цитированием
Старый 06.11.2007, 19:05   #17
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Там кроме условия еще и в других местах код немного изменить надо, переменные еще две добавить. Я пока нечего менять не буду, так как из твоего нового вопроса про прозрачность, что-то мне подсказывает что имидж тебя перестанет устраивать.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 06.11.2007, 23:05   #18
Marsik
Форумчанин
 
Аватар для Marsik
 
Регистрация: 23.10.2007
Сообщений: 275
По умолчанию

это потипа как HStretch и VStretch?Напиши пожалуйста для левого и верхнего края,ладно?
http://otlishnik.com/ чудесный портал для всех кто учится. Рефераты, каталоГ вузов, решебники, справочники, ЕГЭ! Welcome
Marsik вне форума Ответить с цитированием
Старый 07.11.2007, 02:18   #19
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Код:
var
  Form1: TForm1;
  cx,cy,fx,fy: integer;
  MouseOnCard, catch: boolean;
  RightEdge, BottomEdge, LeftEdge, TopEdge: boolean;
  LStretch, RStretch, UStretch, DStretch: boolean;
  imw,imh: integer;//ширина и высота имиджа

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
imw:=Image1.Width;
imh:=Image1.Height;
cx:=Image1.Left;
cy:=Image1.Top;
DoubleBuffered:=true;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if (x > cx) and (x < cx+imw) and (y > cy) and (y < cy+imh) then
  begin
  if not MouseOnCard then
    begin
    MouseOnCard:=true;
    Cursor:=crHandPoint;
    end;
  end
else
if MouseOnCard then
  begin
  MouseOnCard:=false;
  Cursor:=crDefault;
  end;

if (x >= cx+imw) and (x < cx+imw+3) and (y > cy) and (y < cy+imh) then
  begin
  if not RightEdge then
    begin
    RightEdge:=true;
    Cursor:=crHSplit;
    end;
  end
else
if RightEdge then
  begin
  RightEdge:=false;
  Cursor:=crDefault;
  if MouseOnCard then Cursor:=crHandPoint;
  end;

if (x > cx) and (x < cx+imw) and (y >= cy+imh) and (y < cy+imh+3) then
  begin
  if not BottomEdge then
    begin
    BottomEdge:=true;
    Cursor:=crVSplit;
    end;
  end
else
if BottomEdge then
  begin
  BottomEdge:=false;
  Cursor:=crDefault;
  if MouseOnCard then Cursor:=crHandPoint;
  end;

if (x > cx-3) and (x <= cx) and (y > cy) and (y < cy+imh) then
  begin
  if not LeftEdge then
    begin
    LeftEdge:=true;
    Cursor:=crHSplit;
    end;
  end
else
if LeftEdge then
  begin
  LeftEdge:=false;
  Cursor:=crDefault;
  if MouseOnCard then Cursor:=crHandPoint;
  end;

if (x > cx) and (x < cx+imw) and (y > cy-3) and (y <= cy) then
  begin
  if not TopEdge then
    begin
    TopEdge:=true;
    Cursor:=crVSplit;
    end;
  end
else
if TopEdge then
  begin
  TopEdge:=false;
  Cursor:=crDefault;
  if MouseOnCard then Cursor:=crHandPoint;
  end;

if catch then
  begin
  cx:=x-fx;
  cy:=y-fy;
  Image1.Left:=cx;
  Image1.Top:=cy;
  end;

if RStretch then
  begin
  imw:=x-cx;
  Image1.Width:=imw;
  end;

if LStretch then
  begin
  imw:=imw+(cx-x);
  Image1.Width:=imw;
  cx:=x;
  Image1.Left:=cx;
  end;

if DStretch then
  begin
  imh:=y-cy;
  Image1.Height:=imh;
  end;

if UStretch then
  begin
  imh:=imh+(cy-y);
  Image1.Height:=imh;
  cy:=y;
  Image1.Top:=cy;
  end;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if MouseOnCard then
  begin
  catch:=true;
  fx:=x-cx;
  fy:=y-cy;
  end;
if RightEdge then RStretch:=True;
if LeftEdge then LStretch:=True;
if BottomEdge then DStretch:=True;
if TopEdge then UStretch:=True;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if catch then catch:=false;
if RStretch then RStretch:=false;
if LStretch then LStretch:=false;
if UStretch then UStretch:=false;
if DStretch then DStretch:=false;
end;
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 07.11.2007 в 15:33.
mutabor вне форума Ответить с цитированием
Старый 07.11.2007, 08:52   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но когда форму сжимаешь...форма закрывает рисунок!
А это принципиально?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Растягивание фона psywalker HTML и CSS 7 19.06.2008 18:08
Ластик для имиджа image1 Marsik Мультимедиа в Delphi 24 01.01.2008 14:31
Загрузка и масштабирование имиджа в рамки Marsik Помощь студентам 2 06.11.2007 14:22
Растягивание формы KORT Общие вопросы Delphi 7 23.10.2007 01:19