Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1

Переделал стандартный пример, выдаёт ошибки по типам для ProgressBar1.Position

23.09.2011, 15:04. Показов 1756. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
unit догонялочка;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ExtCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Timer1: TTimer;
    ProgressBar1: TProgressBar;
    procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
 
 
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage('Ты выйграл!');
end;
 
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
  var index: Integer;
begin
index:=random(4);
case index of
0:Button1.Left:=Button1.Left+Button1.Width;
1:Button1.Left:=Button1.Left-Button1.Width;
2:Button1.Left:=Button1.Top+Button1.Height;
3:Button1.Left:=Button1.Top-Button1.Height;
end;
if Button1.Left<0 then
Button1.Left:= 0;
if(Button1.Left+Button1.Width)>Form1.width then
Button1.Left:=Form1.width-Button1.Width;
if Button1.Top<0 then
Button1.Top:=0;
if(Button1.Top+Button1.Height)>Form1.Height then
Button1.Top:=Form1.Height-Button1.Height;
 
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ProgressBar1.Position := +1;
if ProgressBar1.Position = 20 then
begin
Timer1.Enabled := 'false';
Button1.Enabled := 'false';
ProgressBar1.Enabled := 'false';
If MessageBox(Handle, PAnsiChar('Вы хотите сыграть ещё?'), PWideChar('Подтверждение'), mb_IconQuestion or mb_YesNo) = 6 then
  begin
Timer1.Enabled := 'true';
Button1.Enabled := 'true';
ProgressBar1.Enabled := 'true';
  end;
end;
end;
 
end.
Выдаёт ошибки в:
Delphi
1
if ProgressBar1.Position = 20 then
Delphi
1
Timer1.Enabled := 'false';
Delphi
1
Button1.Enabled := 'false';
Delphi
1
ProgressBar1.Enabled := 'false';
Delphi
1
If MessageBox(Handle, PAnsiChar('Вы хотите сыграть ещё?'), PAnsiChar('Подтверждение'), mb_IconQuestion or mb_YesNo) = 6 then
Delphi
1
Timer1.Enabled := 'true';
Delphi
1
Button1.Enabled := 'true';
Delphi
1
ProgressBar1.Enabled := 'true';
Все ошибки, которые показал компилятор идут на неправильные типы, Boolean(String), PAnsiChar(Char).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.09.2011, 15:04
Ответы с готовыми решениями:

Пример с учебника выдаёт ошибки
Здравствуйте, сейчас пытаюсь учить процессы/job-ы и т.д. Вот взял пример с учебника , вроде всё правильно переписал, но выдаёт кучу...

Пример из книги выдает ошибки
Помогите разобраться выдает ошибки (если можно по подробнее. Если не трудно): win XP установлена. А пробую делать в Dev c++ ver 5.11 ...

Пример с учебника выдаёт ошибки
Здравствуйте. Есть такая задача( пример):Найти и вывести на печать координаты и значение минимума функции двух переменных f(x, y) =...

18
 Аватар для deathNC
1905 / 1016 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
23.09.2011, 15:10
Все свойства Enabled там имеют тип не String, а Boolean...

Так что ???.Enabled := true; а не ???.Enabled := 'true';

Слова, заключённые в апострофы - это String;

Добавлено через 2 минуты
Что за unit догонялочка; ?
Я бы не стал Кириллицей прописывать имя модуля. К тому же мой компилятор вообще матерится на это
0
 Аватар для batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
23.09.2011, 15:14  [ТС]
а с boolean понял, а что там на счёт pansichar?
0
 Аватар для deathNC
1905 / 1016 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
23.09.2011, 15:20
Delphi
1
MessageBox(Handle, PAnsiChar('Вы хотите сыграть ещё?'), PWideChar('Подтверждение'), mb_IconQuestion or mb_YesNo)
Не, вот как в одной и той же функции два разных типа?

Либо так оно будет:
Delphi
1
MessageBox(Handle, PAnsiChar('Вы хотите сыграть ещё?'), PAnsiChar('Подтверждение'), mb_IconQuestion or mb_YesNo)
Либо так:
Delphi
1
MessageBox(Handle, PWideChar('Вы хотите сыграть ещё?'), PWideChar('Подтверждение'), mb_IconQuestion or mb_YesNo)
А в данном, в твоём случае, можно и так записать, покуда не появится объявленная стринговая переменная (или операция сложения текстов):
Delphi
1
MessageBox(Handle, 'Вы хотите сыграть ещё?', 'Подтверждение', mb_IconQuestion or mb_YesNo)
0
 Аватар для batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
23.09.2011, 15:26  [ТС]
А теперь вопрос, почему таймер не повторяется?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
23.09.2011, 15:30
Цитата Сообщение от batmanrider Посмотреть сообщение
Delphi
1
ProgressBar1.Position := +1;
batmanrider, Что "делает" эта строка?
0
 Аватар для deathNC
1905 / 1016 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
23.09.2011, 15:31
А я откуда знаю? Смотря какую кнопку ты нажмёшь на месседжбоксе...
0
 Аватар для batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
23.09.2011, 18:19  [ТС]
Эм, вроде + 1 делает к позиции прогресс бара.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
23.09.2011, 18:38
batmanrider, Так "вроде", или делает? Оно просто присваивает 1. Здесь + является просто унарным плюсом: 5 и +5 - это одно и то же.
0
 Аватар для batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
23.09.2011, 18:39  [ТС]
А как сделать чтобы плюсовало?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
23.09.2011, 18:40
Цитата Сообщение от batmanrider Посмотреть сообщение
А как сделать чтобы плюсовало?
Delphi
1
ProgressBar1.Position := ProgressBar1.Position + 1;
0
 Аватар для deathNC
1905 / 1016 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
23.09.2011, 18:42
Это просто присваивает единицу...
Вот как плюс 1:
Delphi
1
Inc(ProgressBar1.Position, 1);
или

Delphi
1
ProgressBar1.Position :=  ProgressBar1.Position + 1;
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
23.09.2011, 18:54
deathNC, В inc() нельзя свойство использовать.
0
 Аватар для batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
23.09.2011, 18:56  [ТС]
Последний вопрос
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ProgressBar1.Position := ProgressBar1.Position + 1;
if ProgressBar1.Position = 20 then
begin
Timer1.Enabled := false;
Button1.Enabled := false;
ProgressBar1.Enabled := false;
If MessageBox(Handle, 'Вы хотите сыграть ещё?', 'Подтверждение', mb_IconQuestion or mb_YesNo) = 6 then
begin
Timer1.Enabled := true;
Button1.Enabled := true;
ProgressBar1.Enabled := true;
ProgressBar1.Position := 0;
else
Form1.Close();
end;
end;
end;
Этого кода хватит.
Жалобы на:
else и end;(вместо ; должно быть . Oo)
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
23.09.2011, 19:08
Неужели Вам нравится в этом хламе копаться? Пишите с отступами - всё будет намного проще. Не зря же в тетрадях клетки и линейки нарисованы.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm1.Timer1Timer(Sender: TObject);
begin
    ProgressBar1.Position := ProgressBar1.Position + 1;
    if ProgressBar1.Position = 20 then
    begin
        Timer1.Enabled := false;
        Button1.Enabled := false;
        ProgressBar1.Enabled := false;
        If MessageBox(Handle, 'Вы хотите сыграть ещё?', 'Подтверждение', mb_IconQuestion or mb_YesNo) = 6 then
        begin
            Timer1.Enabled := true;
            Button1.Enabled := true;
            ProgressBar1.Enabled := true;
            ProgressBar1.Position := 0;
        end
        else
            Form1.Close();
    end;
end;
 
end.
0
 Аватар для batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
23.09.2011, 19:41  [ТС]
Нашёл баг, как запретить кнопку ENTER?
0
 Аватар для deathNC
1905 / 1016 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
24.09.2011, 06:34
Цитата Сообщение от Vovan-VE Посмотреть сообщение
deathNC, В inc() нельзя свойство использовать.
ой... всё, с пивом больше не полезу в свой раздел

Добавлено через 2 минуты
batmanrider, запретить Enter для конкретного компонента, или вообще?
0
 Аватар для batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
24.09.2011, 09:16  [ТС]
вообще

Добавлено через 20 минут
А лучше оба варианта=)
0
 Аватар для deathNC
1905 / 1016 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
24.09.2011, 12:34
Ну, если для компонента, то можно в событии OnKeyDown написать:
Delphi
1
2
  If Key = vk_return then
    key := 0;
А полный запрет, по-моему, только через хуки.

Не по теме:

С хуками некогда писать, через 10 мин в универ. Кто-нибудь пусть другой напишет, или я вечерком напишу...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.09.2011, 12:34
Помогаю со студенческими работами здесь

Выдает ошибку «Операция< не применима к типам function”
В общем, пишу программу по задаче: Дана Последовательность из 100 различных целых чисел. Найти сумму чисел этой последовательности,...

Не компилируется стандартный пример openGL [c++] [linux] [NetBeans]
Здравствуйте! Решил попробовать свои силы в OpenGL, установил библиотеки, подключил инклюды, делал всё по этой инструкции, но...

Выдаёт ошибку на стандартный файл urls.py
Привет всем Помогите Новичку разбираю Django и столкнулся с проблемой : что выдаёт ошибку на стандартный файл urls.py говорит что есть...

Компилятор выдает ошибки для файла из Lapack
Мир вам, братья и сестры! Понимаю, что, скорей всего, мой вопрос крайне глупый, но тем не менее осмелюсь его задать. Сам я никогда...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru