Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.04.2012, 12:06
FERNANDO FERNANDO вне форума
Прохожий
 
Регистрация: 15.04.2012
Сообщения: 9
Репутация: 10
По умолчанию нарисовать на форме прям, или окружность

Вот я пытаюсь нарисовать на форме прям, или окружность. Вроде бы сделал правильно, но в форме ничего нету. Как мне нарисовать?
Код:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  procedure FormPaint(Sender: TObject);
  private
    { Private declarations }


  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  r1: TRect;

implementation
{ TForm1 }

procedure TForm1.FormPaint(Sender: TObject);

begin
r1:= Rect(100,100,100,100);
 Form1.Canvas.Brush.Color:=clBlack;

  Canvas.FillRect(r1);
end;

{$R *.dfm}

end.
Админ: Пользуемся тегами для оформления кода!

Последний раз редактировалось Admin, 20.04.2012 в 12:12.
Ответить с цитированием
  #2  
Старый 20.04.2012, 12:41
PS11011010 PS11011010 вне форума
Новичок
 
Регистрация: 30.03.2012
Сообщения: 98
Репутация: 282
По умолчанию

Цитата:
Сообщение от FERNANDO
r1:= Rect(100,100,100,100);
Тут должен один пиксель нарисоваться. Может ты его просто не замечаешь?
Ответить с цитированием
  #3  
Старый 20.04.2012, 12:45
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Восклицание

потому что:
Код:
  Canvas.Brush.Color:=clBlack;
  Canvas.FillRect(Rect(100, 100, 101, 101));
Use FillRect to fill a rectangular region using the current brush. The region is filled including the top and left sides of the rectangle, but excluding the bottom and right edges.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #4  
Старый 20.04.2012, 12:46
UmnovPA UmnovPA вне форума
Прохожий
 
Регистрация: 20.04.2012
Сообщения: 2
Репутация: 10
По умолчанию

Верно написал выше коллега))

координаты, что ты задал рисуют точку))

Canvas.Rectangle(x1, y1, x2, y2); - рисует прямоугольник по двум диагональным точкам. Координаты первой точки (x1, y1), координаты второй (x2, y2). Порядок указания точек не имеет значения.

Пример:
Begin
Canvas.Rectangle(100, 5, 60, 70);
End;

Особенности системы координат в программировании:
Начало координат находится в левом верхнем углу серой области формы, так как нельзя рисовать на заголовке, ось Ох направлена вправо, ось Оу направлена вниз. Масштаб измеряется в точках экрана.
Ответить с цитированием
  #5  
Старый 20.04.2012, 13:39
FERNANDO FERNANDO вне форума
Прохожий
 
Регистрация: 15.04.2012
Сообщения: 9
Репутация: 10
По умолчанию

я тоже так попробовал, но прямоугольника нет.
Ответить с цитированием
  #6  
Старый 20.04.2012, 13:59
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
procedure TForm1.FormPaint(Sender: TObject);
begin
  Canvas.Brush.Color:=clBlack;
  Canvas.Brush.Style:=bsClear;
  Canvas.Rectangle(Rect(10, 10, ClientWidth-10, ClientHeight-10));
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 20.04.2012, 15:12
FERNANDO FERNANDO вне форума
Прохожий
 
Регистрация: 15.04.2012
Сообщения: 9
Репутация: 10
По умолчанию

А у тебя показывает прямоугольник? Я попробовал твой код но нет прямоугольника(((
Ответить с цитированием
  #8  
Старый 20.04.2012, 15:21
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Восклицание

Цитата:
Сообщение от FERNANDO
А у тебя показывает прямоугольник? Я попробовал твой код но нет прямоугольника(((
да, естественно показывает. у меня ведь событие подцеплено к форме
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #9  
Старый 20.04.2012, 19:38
Аватар для R-18Rus
R-18Rus R-18Rus вне форума
Новичок
 
Регистрация: 08.04.2012
Сообщения: 68
Версия Delphi: Delphi 7
Репутация: 127
По умолчанию

Цитата:
А у тебя показывает прямоугольник? Я попробовал твой код но нет прямоугольника(((
Может, попробовать добавить на форму изображение. У меня в image.canvas всё рисуется.
Например:
Код:
with Image4.Canvas do
    begin
    Pen.Color:=clGray;
    Brush.Color:=clBlack;
    rectangle(10,10,100,100);
    end;
- чёрный квадрат с серым краем.
Ответить с цитированием
  #10  
Старый 20.04.2012, 19:40
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от R-18Rus
Может
Не стоит
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #11  
Старый 20.04.2012, 20:08
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Цитата:
Сообщение от FERNANDO
r1:= Rect(100,100,100,100);
Form1.Canvas.Brush.Color:=clBlack;
Canvas.FillRect(r1);
я даж нашел эту точку ... она рисуется))
Цитата:
Сообщение от FERNANDO
А у тебя показывает прямоугольник? Я попробовал твой код но нет прямоугольника(((
есть прямоугольник ... нормальный такой))
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #12  
Старый 21.04.2012, 09:00
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от Yurk@
я даж нашел эту точку ... она рисуется))
это у тебя битый пиксель на мониторе)))
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #13  
Старый 21.04.2012, 14:06
FERNANDO FERNANDO вне форума
Прохожий
 
Регистрация: 15.04.2012
Сообщения: 9
Репутация: 10
По умолчанию

понятно спасибо
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:00.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025