0 / 0 / 0
Регистрация: 30.01.2015
Сообщений: 10
|
|
1 | |
C++ Builder - Orbita10.07.2015, 15:05. Показов 2978. Ответов 6
Метки нет (Все метки)
Здравствуйте, нужна помощь. Есть программа, ниже прикреплю, мне надо сделать такую же, пробовал декомпилятором, но понял, что легче самому написать. Видел примерный образец кода, но там остается след шарика. Пробовал писать что-то свое, шарик стоит на месте! Не совсем понимаю как задать движение шарика и куда его писать в TTimer или в Form1Create помогите пожалуйста.
0
|
10.07.2015, 15:05 | |
Ответы с готовыми решениями:
6
Как использовать компоненты скомпилированные для C++ Builder 2007 в C++ Builder 2010? Можно ли использовать C++ Builder v11 если купить Embarcadero C++Builder XE8 Как заставить проект Builder 6 загруженный в Builder 2007 отображать новые кнопки Какой компилятор C++ Builder использовать? Rad Studio 2009 глючит. C++ Builder 6 старый |
случайный прохожий
3031 / 2062 / 626
Регистрация: 20.07.2013
Сообщений: 5,548
|
|||||||||||
10.07.2015, 20:54 | 2 | ||||||||||
Сообщение было отмечено coolllbox как решение
Решение
В исходной программе мерцания вообще нет, в моей есть, особенно при разворачивании формы на весь экран (про DoubleBuffered знаю). Как исправить этот минус - не знаю, может был использован поворот всей части изображения:
Повернуть Image Вращение фигуры или еще какой способ. Добавил параметр скорость движения и возможность выбора вращения по и против часовой стрелки. cpp:
Код
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Orbit' ClientHeight = 400 ClientWidth = 400 Color = clBtnFace DoubleBuffered = True Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False Position = poScreenCenter OnResize = FormResize DesignSize = ( 400 400) PixelsPerInch = 96 TextHeight = 13 object LabelSpeed: TLabel Left = 310 Top = 11 Width = 29 Height = 13 Anchors = [akTop, akRight] Caption = 'speed' end object CheckBoxClockwise: TCheckBox Left = 327 Top = 36 Width = 65 Height = 17 Anchors = [akTop, akRight] BiDiMode = bdLeftToRight Caption = 'clockwise' Checked = True ParentBiDiMode = False State = cbChecked TabOrder = 1 end object SpinEditSpeed: TSpinEdit Left = 345 Top = 8 Width = 43 Height = 22 Anchors = [akTop, akRight] EditorEnabled = False MaxLength = 3 MaxValue = 100 MinValue = 1 TabOrder = 0 Value = 10 end object Timer1: TTimer Interval = 100 OnTimer = Timer1Timer Left = 360 Top = 352 end end
1
|
0 / 0 / 0
Регистрация: 30.01.2015
Сообщений: 10
|
|
11.07.2015, 01:29 [ТС] | 3 |
Спасибо большое! Мне как пример подойдет идеально. А вот спросить хотел, почему у тебя, к примеру, #include <Vcl.Controls.hpp>, а у меня #include <Controls.hpp>. И еще у меня почему-то при расширении на весь экран TCSpinEdit сдвигается влево. И еще, он у тебя называется TSpinEdit. Не знаешь как исправить, чтоб не сдвигался? А насчет мерцания - я мало что понял, двойная буферизация вообще почти ничего не меняет, как повернуть картинку я тоже не въезжаю, буду разбираться.
0
|
Супер-модератор
|
|||||||||||
11.07.2015, 03:52 | 4 | ||||||||||
Ручной даблбуфферинг:
2
|
0 / 0 / 0
Регистрация: 30.01.2015
Сообщений: 10
|
|||||||||||
11.07.2015, 16:23 [ТС] | 5 | ||||||||||
Сделал как вы сказали, стал выдавать ошибки. Я так понял TBitmap это класс, а не компонент, иначе я его просто не нашел в палитре. Ошибки:
[C++ Error] Unit1.h(29): E2015 Ambiguity between 'TBitmap' and 'Windows::TBitmap' [C++ Error] Unit1.cpp(29): E2015 Ambiguity between 'TBitmap' and 'Windows::TBitmap' [C++ Error] Unit1.cpp(50): E2316 'SetSize' is not a member of 'TBitmap' [C++ Warning] Unit1.cpp(83): W8018 Assinging unsigned long to TColor
0
|
Супер-модератор
|
||||||
11.07.2015, 16:35 | 6 | |||||
Я древними Билдерами не пользуюсь, и не в курсе, чего там в них есть, а чего - нет. В XE2 все прекрасно работает. Но судя по описаниям ошибок - вот так:
0
|
0 / 0 / 0
Регистрация: 30.01.2015
Сообщений: 10
|
|
11.07.2015, 16:44 [ТС] | 7 |
Кажется первые две ошибки исправил добавлением #define TBitmap Graphics::TBitmap, остается [C++ Error] Unit1.cpp(50): E2316 'SetSize' is not a member of 'TBitmap'
Добавлено через 2 минуты Спасибо огромное! Ни в коем случае не имел ввиду, что ты не прав, Refresh(); убрал, SetSize тоже, теперь все отлично!
0
|
11.07.2015, 16:44 | |
11.07.2015, 16:44 | |
Помогаю со студенческими работами здесь
7
Как заставить проект сделанный на C++ Builder 6.0 работать на компьютере на котором не установлен этот самый Builder Ошибка EAccesViolation в методе класса - C++ Builder/Builder 6 можно ли в С++ Builder 2006 писать программы на С++ Builder 6? История активности файла. (C++ Builder 6, C++ Builder XE2) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |