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