Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Лупа в Delphi 
V
    Опции темы
ddd92
Дата 24.5.2013, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.5.2013

Репутация: нет
Всего: нет



Здравствуйте подскажите пожалуйста,как сделать чтобы увеличительное стекло функционировало только после нажатия кнопки (Button1) "Вкл Увеличительное стекло"

Это сообщение отредактировал(а) ddd92 - 24.5.2013, 15:59

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  zoom.rar 296,19 Kb
PM MAIL   Вверх
Illusion Dolphin
Дата 24.5.2013, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 5
Всего: 63



Включить:
Код

Image2.Visible := True;

Отключить:
Код

Image2.Visible := False;



--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
ddd92
Дата 24.5.2013, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.5.2013

Репутация: нет
Всего: нет



У меня  не получается,все равно когда запускаю программу сразу появляется лупа а не после нажатия на кнопку((( если можете подскажите в чем дело, делаю так:

Код

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, ExtDlgs, jpeg;

type
  TForm1 = class(TForm)

    Panel1: TPanel;
    Image1: TImage;
    Image2: TImage;
    Button1: TButton;
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormCreate(Sender: TObject);

    procedure Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormResize(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
     flag_for_zoom: boolean;
  end;

var
  Form1: TForm1;
  k: Real;

implementation

uses Math;

{$R *.dfm}

procedure TForm1.FormCreate (Sender: TObject);
begin
  DoubleBuffered := True;
  FormResize (Sender);
   flag_for_zoom := false;
end;

procedure TForm1.FormResize(Sender: TObject);
begin
  k := Max (Image1.Picture.Bitmap.Width  / Image1.Width ,
            Image1.Picture.Bitmap.Height / Image1.Height);
end;


procedure TForm1.Image1MouseMove (Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Image2MouseMove (Sender, [],
                   Image1.Left + X - Image2.Left,
                   Image1.Top  + Y - Image2.Top );
end;

procedure TForm1.Image2MouseMove (Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  _l, _r, _t, _b: Integer;
begin
if flag_for_zoom then
    Image2.Visible := true;
  Image2.Left := Image2.Left + X - (Image2.Width  div 2);
  Image2.Top  := Image2.Top  + Y - (Image2.Height div 2);

  _l := Round ((Image2.Left + (Image2.Width  / 2) - Image1.Left) * k) - (Image2.Width  div 2);
  _t := Round ((Image2.Top  + (Image2.Height / 2) - Image1.Top ) * k) - (Image2.Height div 2);
  _r := _l + Image2.Width;
  _b := _t + Image2.Height;

  with Image2.Canvas do begin
    CopyRect (Rect (0, 0, Image2.Width, Image2.Height),
              Image1.Picture.Bitmap.Canvas,
              Rect (_l, _t, _r, _b));
    Pen.Color := clBlack;
    Pen.Width := 1;
    Pen.Style := psSolid;
    Pen.Mode  := pmNot;
    MoveTo (0               , 0                );
    LineTo (Image2.Width - 1, 0                );
    LineTo (Image2.Width - 1, Image2.Height - 1);
    LineTo (0               , Image2.Height - 1);
    LineTo (0               , 0                );
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Image2.Visible := True;
end;

end.


Это сообщение отредактировал(а) ddd92 - 24.5.2013, 22:46
PM MAIL   Вверх
northener
Дата 25.5.2013, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(ddd92 @  24.5.2013,  22:45 Найти цитируемый пост)
У меня  не получается,все равно когда запускаю программу сразу появляется лупа а не после нажатия на кнопку((( если можете подскажите в чем дело, делаю так:

Либо в дизайнере в инспекторе объектов установите для Image2 свойство Visible в False, либо в TForm1.FormCreate добавьте строку
Код

  Image2.Visible:=False;


Это сообщение отредактировал(а) northener - 25.5.2013, 00:59


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
ddd92
Дата 25.5.2013, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.5.2013

Репутация: нет
Всего: нет



Спасибо большое))
PM MAIL   Вверх
ddd92
Дата 26.5.2013, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.5.2013

Репутация: нет
Всего: нет



А не подскажите мне еще, почему не рисует спрей по Image2 ( в программе кнопка сперей,а рисовать должен как распылитей в Paint)

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  zoom.rar 299,28 Kb
PM MAIL   Вверх
Poseidon
Дата 26.5.2013, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Модератор: Пожалуйста, один топик - один вопрос.


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0882 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.