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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2011, 21:29   #1
Steelfist
 
Регистрация: 14.03.2011
Сообщений: 5
Восклицание Создание сетки на форме.

Доброго времени суток всем. Такая тема: пишу прогу, которая создаёт по нажатию кнопки форму заданного размера, и необходимо, чтобы на новой форме создавалась сетка на всю форму, на которой впоследствии можно было бы рисовать, программным путём(тобишь рисует сама прога, а не пользователь). Что-то типа этого:





Я новичёк в программировании. Пытался зоздавать Image и расчертить на нём, но не получилось даже создать(.


type
TMain = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Label3: TLabel;
Image1: TImage;
procedure Button1Click(Sender: TObject);
private
procedure CreateForm;

{ Private declarations }
public
{ Public declarations }
end;

var
Main: TMain;
Image: TImage;

implementation

{$R *.dfm}

procedure TMain.Button1Click(Sender: TObject);
begin
CreateForm;
end;

procedure TMain.CreateForm;
var Form: TForm;

begin
Form:=TForm.Create(Application);
Form.Caption:='Плата';
Form.Top:=random(1024);
Form.Left:=random(1024);
Form.Height:=StrToInt(Edit1.Text);
Form.Width:=StrToInt(Edit2.Text);
Form.Show;
Form.BorderStyle:=bsToolWindow;
Image:=TImage.Create(Image1);
Image.Width:=Form.Width;
Image.Height:=Form.Height;
Image.Canvas.Brush.Color;
Image.Canvas.FillRect(Image.Canvas. ClipRect);
end;
end.


Прошу помощи в данном вопросе.

Последний раз редактировалось Steelfist; 18.03.2011 в 21:33.
Steelfist вне форума Ответить с цитированием
Старый 18.03.2011, 22:17   #2
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

...Delphi\Demos\Doc\Graphex
asmodey1 вне форума Ответить с цитированием
Старый 19.03.2011, 22:12   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Form:=TForm.Create(Application);
замени на
application.createForm(TForm, form);

Image:=TImage.Create(Image1);
замени на
Image:=TImage.Create(form);

а вообще, очень заковыристо делаешь простую (вроде) задачу
phomm вне форума Ответить с цитированием
Старый 19.03.2011, 22:53   #4
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

TImage - визуальный компонент и ему еще надо Parent присобачить, чтобы показывался на форме.
Код:
Image.Parent := Form;
А лучше рисовать на самой форме, в событии OnPaint. Правильно, phomm, чего огород городить
Прик вне форума Ответить с цитированием
Старый 20.03.2011, 00:03   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Form:=TForm.Create(Application);
замени на
application.createForm(TForm, form);
вообще-то это разные способы достижения одного и того же результата
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 20.03.2011, 01:09   #6
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Замечательный компонент - шэйп...
Почему бы не использовать его? в Brush.style прописать сетку типа bsCross и вуоля)
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 20.03.2011, 21:26   #7
Steelfist
 
Регистрация: 14.03.2011
Сообщений: 5
По умолчанию

Цитата:
Сообщение от MyLastHit Посмотреть сообщение
Замечательный компонент - шэйп...
Почему бы не использовать его? в Brush.style прописать сетку типа bsCross и вуоля)
Сетка должна создаваться автоматически, вместе с формой и на форме, а не с помощью кисти пользователем. Всем спасибо, буду пробовать, о результатах сообщу позднее.)
Steelfist вне форума Ответить с цитированием
Старый 20.03.2011, 21:38   #8
Steelfist
 
Регистрация: 14.03.2011
Сообщений: 5
По умолчанию

Image.Parent:= Form;

вот эта строчка решила в отображении имаджа))
Steelfist вне форума Ответить с цитированием
Старый 20.03.2011, 22:01   #9
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Цитата:
Сетка должна создаваться автоматически, вместе с формой и на форме, а не с помощью кисти пользователем.
Подождите, с помощью какой кисти?
Вот код:
Код:
var t:Tshape; - глобально
В процедуре онкриэйт формы:
t:=Tshape.Create(self);
with t do
begin
  parent:=form1;
  width:=form1.width;
  left:=0;
  top:=0;
  height:=form1.height;
  brush.style:=bscross;
  brush.color:=clGray;
end;
Ну и в uses - ExtCtrls написать
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 20.03.2011, 22:05   #10
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Вот результат выполнения кода:
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание картинок на форме maloun Общие вопросы Delphi 9 24.01.2011 19:04
Создание сетки для стратегий Self Suicide Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 17.06.2010 15:52
Создание сетки между компьютерами 7-nadiya Операционные системы общие вопросы 3 04.05.2010 00:20
Создание координатной сетки на компоненте Image Thasraney Общие вопросы Delphi 5 03.06.2008 14:16
Создание пиксельной сетки в MDI приложении shkiper Общие вопросы Delphi 5 06.06.2007 18:56