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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

Купить рекламу на форуме 85 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2022, 17:54   #1
Noob_Infor
Пользователь
 
Регистрация: 17.10.2022
Сообщений: 34
По умолчанию Помогите пожалуйста! Pascal ABCNET

Нужно написать обработчик для Button , когда условия такие задачи такие:
( Фон космоса, картинки земли и луны вставлены, добавлена кнопка )
Создайте анимацию движения месяца вокруг Земли. Для расчета координат верхнего левого угла PictureBox1, который содержит Месяц , можно использовать Параметрическое уравнение окружности: х= Rsin(t), у = Rcos(t), где R - радиус , t - параметр, меняющий свое значение от 0 до 2П
Noob_Infor вне форума Ответить с цитированием
Старый 17.10.2022, 18:01   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,388
По умолчанию

Код для кнопки:
Код:
Timer1.Enable := True;
macomics на форуме Ответить с цитированием
Старый 17.10.2022, 18:10   #3
Noob_Infor
Пользователь
 
Регистрация: 17.10.2022
Сообщений: 34
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Код для кнопки:
Код:
Timer1.Enable := True;
macomics, Так если бы только это, там же ещё надо сделать, чтобы оно крутилось, я это не могу понять
procedure Form1.button1_Click
(sender: Object; e: EventArgs);
begin
Timer1.Enable := True;
end;
procedure Form1.Ttimer1_Tick
(sender : Object; e: EventArgs);
begin
Noob_Infor вне форума Ответить с цитированием
Старый 17.10.2022, 18:37   #4
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,388
По умолчанию

По таймеру достаточно выполнять это:
Код:
angle := angle + PI * 1 / 360; Repaint;
А вот чтобы крутилось - это надо нарисовать:
Код:
PictureBox1.Left := R * sin(angle); PictureBox1.Top := R * cos(angle);
macomics на форуме Ответить с цитированием
Старый 17.10.2022, 18:54   #5
Noob_Infor
Пользователь
 
Регистрация: 17.10.2022
Сообщений: 34
По умолчанию Помогите исправить ошибку Pascal ABCNET

Код:
procedure InitializeComponent;
    begin
        var resources: System.ComponentModel.ComponentResourceManager := new System.ComponentModel.ComponentResourceManager(typeof(Form1));
        self.pictureBox1 := new System.Windows.Forms.PictureBox();
        self.pictureBox2 := new System.Windows.Forms.PictureBox();
        self.button1 := new System.Windows.Forms.Button();
        (System.ComponentModel.ISupportInitialize(self.pictureBox1)).BeginInit();
        (System.ComponentModel.ISupportInitialize(self.pictureBox2)).BeginInit();
        self.SuspendLayout();
        // 
        // pictureBox1
        // 
        self.pictureBox1.BackColor := System.Drawing.Color.Transparent;
        self.pictureBox1.BackgroundImage := (System.Drawing.Image(resources.GetObject('pictureBox1.BackgroundImage')));
        self.pictureBox1.Image := (System.Drawing.Image(resources.GetObject('pictureBox1.Image')));
        self.pictureBox1.Location := new System.Drawing.Point(238, 162);
        self.pictureBox1.Name := 'pictureBox1';
        self.pictureBox1.Padding := new System.Windows.Forms.Padding(12, 12, 1, 2);
        self.pictureBox1.Size := new System.Drawing.Size(295, 300);
        self.pictureBox1.SizeMode := System.Windows.Forms.PictureBoxSizeMode.CenterImage;
        self.pictureBox1.TabIndex := 0;
        self.pictureBox1.TabStop := false;
        // 
        // pictureBox2
        // 
        self.pictureBox2.BackColor := System.Drawing.Color.Transparent;
        self.pictureBox2.Image := (System.Drawing.Image(resources.GetObject('pictureBox2.Image')));
        self.pictureBox2.Location := new System.Drawing.Point(555, 425);
        self.pictureBox2.Name := 'pictureBox2';
        self.pictureBox2.Size := new System.Drawing.Size(229, 246);
        self.pictureBox2.SizeMode := System.Windows.Forms.PictureBoxSizeMode.CenterImage;
        self.pictureBox2.TabIndex := 1;
        self.pictureBox2.TabStop := false;
        // 
        // button1
        // 
        self.button1.Location := new System.Drawing.Point(-1, 630);
        self.button1.Name := 'button1';
        self.button1.Size := new System.Drawing.Size(215, 73);
        self.button1.TabIndex := 2;
        self.button1.Text := 'Начать';
        self.button1.UseVisualStyleBackColor := true;
        self.button1.Click += button1_Click;
        // 
        // Form1
        // 
        self.BackgroundImage := (System.Drawing.Image(resources.GetObject('$this.BackgroundImage')));
        self.ClientSize := new System.Drawing.Size(826, 702);
        self.Controls.Add(self.button1);
        self.Controls.Add(self.pictureBox2);
        self.Controls.Add(self.pictureBox1);
        self.Name := 'Form1';
        self.Text := 'Form1';
        self.TransparencyKey := System.Drawing.Color.Transparent;
        self.Load := Form1_Load;
        (System.ComponentModel.ISupportInitialize(self.pictureBox1)).EndInit();
        (System.ComponentModel.ISupportInitialize(self.pictureBox2)).EndInit();
        self.ResumeLayout(false);
    end;

Ошибка в 55 строке:
Unit1.Form1.inc(55) : Неизвестное имя 'Form1_Load'

Строка выглядит так: self.Load += Form1_Load;

Исправление на := не помогло

Последний раз редактировалось BDA; 17.10.2022 в 22:09.
Noob_Infor вне форума Ответить с цитированием
Старый 17.10.2022, 18:56   #6
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,388
По умолчанию

Может потому, что надо объявить Form1_Load?
macomics на форуме Ответить с цитированием
Старый 17.10.2022, 19:01   #7
Noob_Infor
Пользователь
 
Регистрация: 17.10.2022
Сообщений: 34
По умолчанию

macomics, Ещё бы знать как это объявить
Noob_Infor вне форума Ответить с цитированием
Старый 17.10.2022, 19:03   #8
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,388
По умолчанию

Например так:
Код:
var
  Form1_Load: Какой-тоТип;
или так
Код:
procedure Form1_Load(Sender: TObject);
begin

end;
macomics на форуме Ответить с цитированием
Старый 17.10.2022, 19:09   #9
Noob_Infor
Пользователь
 
Регистрация: 17.10.2022
Сообщений: 34
По умолчанию

macomics, У меня истерика, какой тип
Noob_Infor вне форума Ответить с цитированием
Старый 17.10.2022, 19:15   #10
Noob_Infor
Пользователь
 
Регистрация: 17.10.2022
Сообщений: 34
По умолчанию

macomics, Ладно, с этим разобралась, ОНИ МНЕ ОПЯТЬ ОШИБКУ ВЫБИЛИ:
Unit1.pas(30) : Неизвестное имя 'Timer1'
Код:
Unit Unit1;

interface

uses System, System.Drawing, System.Windows.Forms;

type
  Form1 = class(Form)
    procedure button1_Click(sender: Object; e: EventArgs);
  {$region FormDesigner}
  internal
    {$resource Unit1.Form1.resources}
    pictureBox2: PictureBox;
    button1: Button;
    pictureBox1: PictureBox;
    {$include Unit1.Form1.inc}
  {$endregion FormDesigner}
  public
    constructor;
    begin
      InitializeComponent;
    end;
  end;

implementation

procedure Form1.button1_Click
(sender: Object; e: EventArgs);
begin
Timer1.Enable := True;
end;
begin
angle := angle + PI * 1 / 360; Repaint;
PictureBox1.Left := R * sin(angle); PictureBox1.Top := R * cos(angle);
end.

Последний раз редактировалось BDA; 17.10.2022 в 22:09.
Noob_Infor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 85 тыс рублей в месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal ABCNET. Найти сколько зёрен поместится на шахматной доске и их вес a_clarke Помощь студентам 8 13.10.2015 15:17
Помогите пожалуйста. (Pascal) Amfetamin Помощь студентам 19 15.12.2014 23:59