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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2009, 13:58   #1
Алён@
Пользователь
 
Аватар для Алён@
 
Регистрация: 15.01.2009
Сообщений: 43
По умолчанию Работа с изображениями

Подскажите, пожалуйста, как сделать прокрутку загружаемого в Image изображения? Как менять масштаб изображения? Или подскажите, где об этом можно почитать.
Алён@ вне форума Ответить с цитированием
Старый 15.01.2009, 14:54   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

http://www.programmersclub.ru/ раздел "Книги".
Какую прокрутку вы имеете в виду?
С масштабом все очень просто - свойства имэджа AutoSize, Stretch, Proportional.
mihali4 вне форума Ответить с цитированием
Старый 15.01.2009, 15:30   #3
Алён@
Пользователь
 
Аватар для Алён@
 
Регистрация: 15.01.2009
Сообщений: 43
По умолчанию

Я имею в виду прокрутку самого изображения, а не окна программы, формы то есть. Что касается масштаба, то как сделать так, чтобы у пользователя была возможность менять масштаб изображения?
Алён@ вне форума Ответить с цитированием
Старый 15.01.2009, 17:54   #4
bl0w
Новичок
Джуниор
 
Регистрация: 14.01.2009
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Алён@ Посмотреть сообщение
Я имею в виду прокрутку самого изображения, а не окна программы, формы то есть. Что касается масштаба, то как сделать так, чтобы у пользователя была возможность менять масштаб изображения?
Добавьте на форму компонент ScrollBox из раздела Additional и поместите в него TImage, не забудьте у изображения выставить параметр AutoSize := True;.
bl0w вне форума Ответить с цитированием
Старый 15.01.2009, 18:40   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Тыркаем в Image1 мышкой (выделяем его) и жмем волшебную пимпу F1.
В окне с кучей информации про ТImage открываем свойства (Properties по-аглицки) и теперь уже конкретно разбираемся с указанными свойствами... Там все написано для домохозяек. Даже примеры приводятся (Delphi example).

Последний раз редактировалось mihali4; 15.01.2009 в 19:12.
mihali4 вне форума Ответить с цитированием
Старый 15.01.2009, 19:08   #6
Алён@
Пользователь
 
Аватар для Алён@
 
Регистрация: 15.01.2009
Сообщений: 43
По умолчанию

Спасибо большое за "волшебную пимпу". Не знала про эту контекстшку.
Алён@ вне форума Ответить с цитированием
Старый 15.01.2009, 20:37   #7
Алён@
Пользователь
 
Аватар для Алён@
 
Регистрация: 15.01.2009
Сообщений: 43
По умолчанию

С прокруткой разобралась.
Так как же сделать, чтобы у пользователя была возможность масштабировать изображение?
Почему-то в Image рисуется всё серым. Почему?
Алён@ вне форума Ответить с цитированием
Старый 15.01.2009, 21:35   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Почему-то в Image рисуется всё серым. Почему?
Что за картинка? Давайте ее сюда, для опытов...
mihali4 вне форума Ответить с цитированием
Старый 16.01.2009, 10:48   #9
Алён@
Пользователь
 
Аватар для Алён@
 
Регистрация: 15.01.2009
Сообщений: 43
По умолчанию

Картинка-то bmp-ная. Красная точка на одном из входных изображений рисуется серым, на других всё нормально. Непонятно, что с этим изображением - оно ведь такого же формата, как и остальные. Вот текст программы:
unit Unit1;

interface

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

type
TForm1 = class(TForm)
Panel1: TPanel;
Button_Open_Image: TButton;
OpenPictureDialog1: TOpenPictureDialog;
StatusBar1: TStatusBar;
ScrollBox1: TScrollBox;
Image1: TImage;
Button_Start_Calc: TButton;
procedure OpenPicture(Sender: TObject);
procedure Button_Start_CalcClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
fname:string;
MouseState: integer; //0-не начали расёты; 1-начали расчётов;

implementation

{$R *.dfm}

procedure TForm1.OpenPicture(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
begin
MouseState:=0;
fname:=OpenPictureDialog1.FileName;
StatusBar1.Panels[0].Text:='Имя файла: '+ExtractFileName(fname);
//загрузить изображение в окно программы
Image1.Picture.LoadFromFile(fname);
Form1.Button_Start_Calc.Enabled:=tr ue;
{form1.ClientHeight:= Image1.Height+10;
Image1.Top:=Form1.ClientRect.Top+
(Form1.ClientHeight-Image1.Height) div 2;
Form1.ClientWidth:=Image1.Width+10;
Image1.Left:=Form1.ClientRect.Left+
(Form1.ClientWidth-Image1.Width) div 2;}
end;
end;

procedure Paint_point; //вот эта точка!
var
a,b:integer;
begin
//рисование начальной точки
with Form1.Image1 do
begin
Canvas.Pen.Color:=clBlack;
Canvas.Pen.Style:=psSolid;
Canvas.Pen.Width:=2;
Canvas.Brush.Color := clRed;
Canvas.Brush.Style := bsSolid; // цвет же здесь красный!
a:=round(Form1.scrollBox1.Width/2);
b:=round(Form1.scrollBox1.Height/2);
Canvas.Ellipse(a-5, b-5, a+5, b+5);
end;
end; // procedure Paint_point

procedure TForm1.Button_Start_CalcClick(Sende r: TObject);
begin
MouseState:=1;
Paint_point;
end;

end.
Алён@ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как работать с изображениями eliyas Помощь студентам 4 10.03.2011 22:27
Работа с изображениями. varvara16 Мультимедиа в Delphi 2 21.12.2007 15:52
работа с изображениями. borodaj Мультимедиа в Delphi 3 21.04.2007 19:21
Работа с изображениями и рисунками dima00 Мультимедиа в Delphi 2 12.04.2007 15:11