![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.01.2009
Сообщений: 43
|
![]()
Подскажите, пожалуйста, как сделать прокрутку загружаемого в Image изображения? Как менять масштаб изображения? Или подскажите, где об этом можно почитать.
|
![]() |
![]() |
![]() |
#2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
http://www.programmersclub.ru/ раздел "Книги".
Какую прокрутку вы имеете в виду? С масштабом все очень просто - свойства имэджа AutoSize, Stretch, Proportional. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 15.01.2009
Сообщений: 43
|
![]()
Я имею в виду прокрутку самого изображения, а не окна программы, формы то есть. Что касается масштаба, то как сделать так, чтобы у пользователя была возможность менять масштаб изображения?
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 14.01.2009
Сообщений: 2
|
![]()
Добавьте на форму компонент ScrollBox из раздела Additional и поместите в него TImage, не забудьте у изображения выставить параметр AutoSize := True;.
|
![]() |
![]() |
![]() |
#5 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
Тыркаем в Image1 мышкой (выделяем его) и жмем волшебную пимпу F1.
В окне с кучей информации про ТImage открываем свойства (Properties по-аглицки) и теперь уже конкретно разбираемся с указанными свойствами... Там все написано для домохозяек. Даже примеры приводятся (Delphi example). ![]() Последний раз редактировалось mihali4; 15.01.2009 в 19:12. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 15.01.2009
Сообщений: 43
|
![]()
Спасибо большое за "волшебную пимпу". Не знала про эту контекстшку.
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 15.01.2009
Сообщений: 43
|
![]()
С прокруткой разобралась.
Так как же сделать, чтобы у пользователя была возможность масштабировать изображение? Почему-то в Image рисуется всё серым. Почему? |
![]() |
![]() |
![]() |
#8 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как работать с изображениями | 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 |