Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
ArtemK
1 / 1 / 0
Регистрация: 07.10.2012
Сообщений: 123
#1

Совсем запутался я в одной задачке. Прошу у вас подсказки - Delphi

15.12.2012, 22:28. Просмотров 433. Ответов 8
Метки нет (Все метки)

Задача. Расположить на форме 3 кнопки "Сообщение", "Enter", "Exit". При нажатии на "Сообщение" вывести окно "Сообщение просто для примера!!!". При нажатии на "Enter" вывести окно с кнопка "Ок" и "Cancel", поле с вводом имени. При нажатии на "Cancel" это окно закрывается, при нажатии "Ок" вывести окно "Привет, (имя)". При нажатии на форме на кнопку "Exit" вывести окно с тремя кнопками "Yes", "No" и "Ок". При нажатии на "Yes" вывести окно с двумя кнопками "Yes" и "No". При нажатии на "Yes" вывести окно "До свидания, (имя)", при нажатии на "No" вывести опять то окно с тремя кнопками. Если нажать "Ок", то вывести окно с вводом имени, при нажатии на "Ок" вывести "До свидания, (имя)", при "Cancel" - вывести опять окно с тремя кнопками. Если в окне с тремя кнопками нажать "No", то нужно вернуть к окну формы.
-------
Вот я подробно расписал задачу. Я в коде запутался. Помогите разобраться.
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
unit Unit3;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm3 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
  ShowMessage ('Сообщение просто для примера!!!');
end;
procedure TForm3.Button2Click(Sender: TObject);
var response:string;
begin
  response:=Inttostr(messagedlg('Вы уверены что хотите выйти?',mtwarning,[mbyes,mbno,mbok],0));
  if response=inttostr(mrok) then begin response:=inputbox('name','Введите имя','');
  if response='' then
  response:=Inttostr(messagedlg('Вы уверены что хотите выйти?',mtwarning,[mbyes,mbno,mbok],0))
else begin
showmessage('Пока!');
close;
end;
if response=inttostr(mrYes) then begin
messagedlg('Вы уверены что хотите выйти?',mtwarning,[mbYes,mbNo],0);
if response=inttostr(mrYes) then begin
messagedlg('Вы уверены что хотите выйти?',mtwarning,[mbYes,mbNo],0);
if response=inttostr(mrYes) then
close;
end;
end;
end;
end;
procedure TForm3.Button3Click(Sender: TObject);
var
name:string;
begin
name:=inputbox('name','Введите имя','');
if name='' then begin
end
else
showmessage('Здравствуйте, '+name );
end;
end.
Добавлено через 5 минут
Точнее, как его дополнить?

Добавлено через 1 минуту
Вот я сейчас так переделал. Только проверить не могу, Делфи не запускается.
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
unit Unit3;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm3 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form3: TForm3;
 
implementation
 
{$R *.dfm}
 
procedure TForm3.Button1Click(Sender: TObject);
begin
  ShowMessage ('Сообщение просто для примера!!!');
end;
procedure TForm3.Button2Click(Sender: TObject);
var response,name:string;
begin
  response:=Inttostr(messagedlg('Вы уверены что хотите выйти?',mtwarning,[mbyes,mbno,mbOk],0));
  if response=inttostr(mrYes) then begin response:=inttostr(messagedlg('Вы уверены что хотите выйти?',mtwarning,[mbYes,mbNo],0));
  end;
  if response=inttostr(mrYes) then
  begin
    form3.Close;
    end
    else
    begin
   end;
  if response=inttostr(mrOk) then begin
   name:=inputbox('name','Введите имя','');
   if name='' then begin
   end
   else begin
   showmessage('До свидания, '+name);
   form3.Close;
   end;
   end;
end;
procedure TForm3.Button3Click(Sender: TObject);
var
name:string;
begin
name:=inputbox('name','Введите имя','');
if name='' then begin
end
else
showmessage('Здравствуйте, '+name );
end;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 22:28
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Совсем запутался я в одной задачке. Прошу у вас подсказки (Delphi):

Совсем запутался в цикличной загрузке списка файлов. - Delphi
В общем приписал я к проге ведение логов калькуляции, сохраняются они по принципу датавремя создания. Выборка просто по конкретному...

совсем запутался, функция power дает помоему бреш - Delphi
вообщем надо по заданию нписать код, эта дельфи вешь не адежная и помоему дает бреш в функции power. Задача ткая - надо ввести число целое...

Прошу подсказки с .ini файлом - Delphi
Привет, прошу посоветовать как решить данную проблему: В config.ini я записываю имя последней таблицы с которой пользователь работал ...

Компонент ApplicationEvents (подсказки только на одной форме) - Delphi
Вы уж извините, товарищи, но на столь глупый вопрос я не нашёл ответа в сети. В общем у меня несколько форм, на каждой есть кнопочки с...

Матлаб.С 3 по 10 задание.Прошу выполнить до Вторника,а то отчислят с универа.Прошу вас! - Matlab
я Скинул 2 фотки.Там задания Правила: 4.3. Создавайте темы с осмысленными и понятными названиями - это серьезно повышает шансы, что...

совсем запутался.. - C++ Builder
Ребята, помогите пожалуйста. Я совсем запутался в вычислениях.. #include <iostream> #include <cmath> using namespace std; ...

8
777user777
26 / 26 / 1
Регистрация: 18.08.2010
Сообщений: 186
15.12.2012, 22:48 #2
Сейчас напишу, подожди.
0
droider
Universal
Эксперт Pascal/Delphi
4381 / 2429 / 518
Регистрация: 04.10.2012
Сообщений: 8,835
15.12.2012, 22:54 #3
Вывод сообщения и запрос имени
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.Button1Click(Sender: TObject);
begin
Application.MessageBox(Pchar('Это сообщение для примера'), 'Message', 0);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
name:string;
begin
if not InputQuery('Ввод имени', 'Ваше имя', name) then exit
else
ShowMessage('Привет, '+name);
end;
 
end.
0
777user777
26 / 26 / 1
Регистрация: 18.08.2010
Сообщений: 186
15.12.2012, 22:57 #4
Ладно, тут уже за меня всё сделают.
0
droider
Universal
Эксперт Pascal/Delphi
4381 / 2429 / 518
Регистрация: 04.10.2012
Сообщений: 8,835
15.12.2012, 23:07 #5
Полный код
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
procedure TForm1.Button1Click(Sender: TObject);
begin
Application.MessageBox(Pchar('Это сообщение для примера'), 'Message', 0);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
name:string;
begin
if not InputQuery('Ввод имени', 'Ваше имя', name) then exit
else
ShowMessage('Привет, '+name);
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var
name:string;
begin
 if MessageDlg('Закрыть?', mtConfirmation, [mbYes, mbNo, mbOk], 0)=mrYes
 then
 if MessageDlg('Вы уверены?', mtConfirmation, [mbYes, mbNo], 0)=mrYes
 then
 ShowMessage('До свидания, '+name)
 else
  if MessageDlg('Закрыть?', mtConfirmation, [mbYes, mbNo, mbOk], 0)=mrOk
  then
  if not InputQuery('Ввод имени', 'Ваше имя', name) then exit
else
ShowMessage('До свидания, '+name);
end;
 
end.
P.S. Переменную name лучше объявить как глобальную. Я просто для наглядности написал.
1
ArtemK
1 / 1 / 0
Регистрация: 07.10.2012
Сообщений: 123
15.12.2012, 23:12  [ТС] #6
Цитата Сообщение от 777user777 Посмотреть сообщение
Ладно, тут уже за меня всё сделают.
Навряд ли.

Добавлено через 1 минуту
Цитата Сообщение от droider Посмотреть сообщение
Полный код
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
procedure TForm1.Button1Click(Sender: TObject);
begin
Application.MessageBox(Pchar('Это сообщение для примера'), 'Message', 0);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
name:string;
begin
if not InputQuery('Ввод имени', 'Ваше имя', name) then exit
else
ShowMessage('Привет, '+name);
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var
name:string;
begin
 if MessageDlg('Закрыть?', mtConfirmation, [mbYes, mbNo, mbOk], 0)=mrYes
 then
 if MessageDlg('Вы уверены?', mtConfirmation, [mbYes, mbNo], 0)=mrYes
 then
 ShowMessage('До свидания, '+name)
 else
  if MessageDlg('Закрыть?', mtConfirmation, [mbYes, mbNo, mbOk], 0)=mrOk
  then
  if not InputQuery('Ввод имени', 'Ваше имя', name) then exit
else
ShowMessage('До свидания, '+name);
end;
 
end.
P.S. Переменную name лучше объявить как глобальную. Я просто для наглядности написал.
Спасибо!!
А что значит эта строчка: Application.MessageBox(Pchar('Это сообщение для примера'), 'Message', 0);?

Добавлено через 2 минуты
.....
0
droider
Universal
Эксперт Pascal/Delphi
4381 / 2429 / 518
Регистрация: 04.10.2012
Сообщений: 8,835
15.12.2012, 23:21 #7
Она выводит окно сообщения (табло) из Вашего приложения
Application.MessageBox(Pchar('Текст сообщения'), 'Заголовок окна', кол-во доп. кнопок);
кол-во доп. кнопок: если
0-одна кнопка Ок
1 - две кнопки Ок и Отмена
2 - три кнопки Прервать, Повтор и Пропустить
и т.д.
Экспериментируйте!
Т.е. эта функция обладает более расширенными возможностями, чем просто ShowMessage.
0
777user777
26 / 26 / 1
Регистрация: 18.08.2010
Сообщений: 186
16.12.2012, 00:01 #8
Цитата Сообщение от droider Посмотреть сообщение
Т.е. эта функция обладает более расширенными возможностями, чем просто ShowMessage.

Проще уж тогда с api MessageBox работать. Или MessageBoxEx.
0
droider
Universal
Эксперт Pascal/Delphi
4381 / 2429 / 518
Регистрация: 04.10.2012
Сообщений: 8,835
16.12.2012, 00:09 #9
777user777, а чем вышеуказанная функция так сложна?

Добавлено через 1 минуту
Я ее привел для примера. Не нравится - не используй
0
16.12.2012, 00:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2012, 00:09
Привет! Вот еще темы с ответами:

Совсем запутался в указателях - C++
Шестую строку не могу понять, по моему перед массивом var должен стоять &. const int MAX = 3; int _tmain(int argc, _TCHAR* argv) {...

совсем запутался с md5 - MySQL
смотрите вот так добавляю данные function quote($var) { return mysql_real_escape_string($var); } ...

Выбор оперативки. Совсем запутался - Оперативная память
Привет. Нужна помощь в выборе оперативки. Материнская плата ASUS M4N68T-M LE V2 Процессор Athlon II X3 445 Есть 2 Гб, хочу их убрать...

Совсем запутался с методом Зейделя - Численные методы
Дано: 5x1+5x2=10; 3x1+5x2=10; Начальное приближение: нулевой вектор. Задание: выполнить три итерации. Сопоставить сходимость...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru