Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
36 / 30 / 13
Регистрация: 08.12.2012
Сообщений: 810

Рисуем квадрат, процедура WmPaint

30.05.2015, 22:34. Показов 5900. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
по идее должна выводить квадрат на форме
работает в Delphi не работает в Лазарусе
может у кого какие соображения на эту тему будут


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
unit Unit1;
 
{$mode Delphi}
 
interface
 
uses
   LCLIntf, LCLType, LMessages, Messages,
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm) 
  private
    { private declarations }
  public
    { public declarations }
  protected
procedure WMPaint(var Msg : TWMPaint);message wm_PAINT;
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
{ TForm1 } 
 
procedure TForm1.WMPaint(var Msg: TWMPaint);
 var ps: TPaintStruct;
begin
 beginPaint(Handle,ps);
  Rectangle(canvas.Handle, 10,10,100,100);
 EndPaint(Handle,ps);
end;
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2015, 22:34
Ответы с готовыми решениями:

Процедура: среди n чисел последовательности найти те, которые составляют полный квадрат
среди n чисел последовательности найти те которые составляют полный квадрат используя процедуру #include <stdlib.h> #include...

Если квадрат числа меньше 100, напечатать число и его квадрат
Ввести с клавиатуры 10 чисел. Если квадрат числа меньше 100, напечатать число и его квадрат.

Класс «Квадрат»: можно ли вписать в объект-квадрат со стороной A окружность радиуса R
Люди помогите, сижу уже неделю, выходит какая-то фигня. Хочу научиться, но тяжеловато) Объясните кто может, как будет выглядеть код? ...

9
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33194 / 21480 / 8231
Регистрация: 22.10.2011
Сообщений: 36,848
Записей в блоге: 12
30.05.2015, 22:44
Лучший ответ Сообщение было отмечено ujif как решение

Решение

Чего это
Цитата Сообщение от ujif Посмотреть сообщение
не работает в Лазарусе
? Все работает, только в uses добавь модуль Windows...
1
36 / 30 / 13
Регистрация: 08.12.2012
Сообщений: 810
30.05.2015, 22:54  [ТС]
добавил модуль windows все равно выводится чистая форма
может куда еще этот модуль запихнуть или в uses место у него особое
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33194 / 21480 / 8231
Регистрация: 22.10.2011
Сообщений: 36,848
Записей в блоге: 12
30.05.2015, 23:21
Лучший ответ Сообщение было отмечено ujif как решение

Решение

1
36 / 30 / 13
Регистрация: 08.12.2012
Сообщений: 810
31.05.2015, 09:44  [ТС]
Спасибо за поддержку Уважаемый volvo
все тоже самое написал как на Вашем снимке , убрал
BeginPaint и EndPaint
воз был и ныне там
решилось странным образом, а именно , установил на форму
кнопку с помощью нее хотел вывести этот самый квадрат
короче вот код
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Button1Click(Sender: TObject);
begin
  canvas.Rectangle( 10,10,100,100);
end;
 
procedure TForm1.WMPaint(var Msg: TWMPaint);
begin
 //beginPaint(Handle,ps);
   Rectangle(canvas.Handle, 10,10,100,100);
 //EndPaint(Handle,ps);
end;
В результате при запуске проги сразу вывелся квадрат
и кнопка не пригодилась ,
потом раскомментировал BeginPaint и EndPaint
и снова вывелся квадрат
где = то глючит у меня Лазарь

Добавлено через 5 часов 13 минут
странно ,что квадрат появляется только в том случае
если на форме установлен любой компонент , кнопка , edit , ect
если форма пустая ,то квадрат не выводится
0
394 / 194 / 48
Регистрация: 11.07.2013
Сообщений: 1,210
31.05.2015, 09:48
Лучший ответ Сообщение было отмечено ujif как решение

Решение

Нет, Lazarus у вас не глючит. Просто, если форма не содержит компонентов, то ничего рисоваться не будет. Кнопку можете заменить, например, на TCheckBox и получите тот же самый эффект. Почему так - не понятно, но факт остаётся фактом.
1
36 / 30 / 13
Регистрация: 08.12.2012
Сообщений: 810
31.05.2015, 10:21  [ТС]
Спасибо за поддержку Уважаемый shyub
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33194 / 21480 / 8231
Регистрация: 22.10.2011
Сообщений: 36,848
Записей в блоге: 12
31.05.2015, 12:17
ujif, я вообще не понимаю, зачем ловить WM_PAINT, и делать какие-то действия, если те же действия можно сделать в обработчике OnPaint формы. И оно будет работать вне зависимости от того, есть на форме что-то или нет. Независимо от того, Windows это, или Linux...
Pascal
1
2
3
4
procedure TForm1.FormPaint(Sender: TObject);
begin
  Self.Canvas.Rectangle(10, 10, 100, 100);
end;
P.S. Модуль Windows из uses можно убрать...
1
36 / 30 / 13
Регистрация: 08.12.2012
Сообщений: 810
31.05.2015, 13:32  [ТС]
пытаюсь Уважаемый volvo освоить OpenGL ,по книге
Краснова OpenGL , там такой пример как раз
еще по ссылке Вашей http://wiki.freepascal.org/OpenGL_Tutorial/ru
кстати скачать версию для windows там битая ссылка
0
394 / 194 / 48
Регистрация: 11.07.2013
Сообщений: 1,210
31.05.2015, 14:51
Цитата Сообщение от ujif Посмотреть сообщение
по книге
Краснова OpenGL , там такой пример
Вот рабочие примеры к этой книге: Krasnov_OpenGL_Delphi.rar
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.05.2015, 14:51
Помогаю со студенческими работами здесь

Отрицательные элементы умножить на квадрат наименьшего элемента, а неотрицательные - на квадрат наибольшего
В массиве необходимо все отрицательные элементы умножить на квадрат его наименьшего элемента, а все неотрицательные элементы на квадрат...

Если квадрат числа меньше 100, напечатать число и его квадрат
Ввести с клавиатуры 10 чисел. Если квадрат числа меньше 100, напечатать число и его квадрат.

Если квадрат числа меньше 100, напечатать число и его квадрат
Ввести с клавиатуры 10 чисел. Если квадрат числа меньше 100, напечатать число и его квадрат

Нарисовать квадрат с одинокой звёздочкой в центре. Весь квадрат орисовывается плюсиками
Нарисовать квадрат с одинокой звёздочкой в центре. Весь квадрат орисовывается плюсиками. Пользователь задаёт высоту и ширину.С++ Помогите...

Программа, вычисляющая квадрат разности и квадрат суммы двух чисел
Добрый день, товарищи программисты. Написал программу для задачи: Написать программу, вычисляющую квадрат разности и квадрат суммы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru