Вопрос № 178207: Здравствуйте, уважаемые эксперты! Помогите, пожалуйста, решить задачи на Delphi: 1. Подсчитать, сколько секунд прошло с начала часа. Часы (h), минуты(m), секунды (s) вводятся пользователем. 2. Напишите приложение, в заголовке окна которого опис...
Вопрос № 178207:
Здравствуйте, уважаемые эксперты! Помогите, пожалуйста, решить задачи на Delphi: 1. Подсчитать, сколько секунд прошло с начала часа. Часы (h), минуты(m), секунды (s) вводятся пользователем. 2. Напишите приложение, в заголовке окна которого описан его размер (высота и ширина), а в окне изображен прямоугольник, закрашенный вертикальными линиями. Стороны прямоугольника расположены на расстоянии 10 пикселей от границ окна, независимо от размеров окна. 3. Создайте приложение с заставкой. Приложение должно
состоять из двух форм. На первой форме находятся сведения о создателе приложения и кнопка с надписью «Показать заставку». Окно заставки черного цвета, без заголовка, занимает весь экран . В окне заставки в произвольном месте формы должны появляться попеременно эллипсы и прямоугольники разного цвета и размера (можно воспользоваться компонентом Timer, расположенным на странице System). Приложение должно закрываться при нажатии любой клавиши клавиатуры, предварительно вы
дав сообщение, уточняющее, точно ли пользователь хочет закрыть приложение.
procedure TForm1.Button1Click(Sender: TObject); var h, m, s: word; begin h:= StrToInt(Edit1.Text); // Записываем в переменную количество часов m:= StrToInt(Edit2.Text); // Записываем в переменную
количество минут S:= StrToInt(Edit3.Text); // Записываем в переменную количество секунд m:= (h * 60) + m; // Считаем количество минут s:= (m * 60) + s; // Считаем количество секунд Label1.Caption:= 'Прошло ' + IntToStr(s) + ' сек.'; // Выводим результат end;
2. Прямоугольник можно нарисовать так:
Код:
procedure TForm1.FormCreate(Sender: TObject); // Выводим высоту и ширину в заголовок формы begin Form1.Caption:= 'Высота ' + IntToStr(Form1.Height) + ', ' + 'Ширина ' + IntToStr(Form1.Width); end;
procedure TForm1.FormPaint(Sender: TObject); begin Form1.Canvas.Brush.Style:= bsVertical; // Назначаем заливку вертикальными линиями для кисти формы
Form1.Canvas.Brush.Color:= clBlack; // Назначаем чёрный цвет кисти формы Form1.Canvas.Rectangle(10, 10, 200, 100); // Рисуем на форме прямоугольник end;
3. Программу - заставку можно сделать таким образом:
procedure TAboutBox.OKButtonClick(Sender: TObject); begin Randomize; // Инициализация генератора случайных чисел // Выставляем размер формы на весь экран Form1.Left:= 0; Form1.Top:= 0; Form1.Height:= Screen.Height; Form1.Width:= Screen.Width; // Показали форму Form1.Show; end;
type TForm1 = class(TForm) Timer1: TTimer; procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure
Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1; pr: boolean;
implementation
{$R *.dfm}
function RGBToColor: TColor; // Функция возвращает случайный цвет var R, G, B: Byte; begin R:= Random(256); G:= Random(256); B:= Random(256); Result := B shl 16 or G shl 8 or R; if pr then // Последовательно
меняем тип фигуры pr:= false else pr:= true; end;
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState); begin If MessageDlg('Вы действительно хотите закрыть окно?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then Application.Terminate; // Если ответ "да", закрываем приложение end;
procedure TForm1.Timer1Timer(Sender: TObject); begin Form1.Canvas.Brush.Style:= bsSolid; // Выставили заполнение кисти сплошным Form1.Canvas.Brush.Color:= clBlack; // Цвет кисти чёрный Form1.Canvas.FillRect(Form1.Canvas.ClipRect); // Отчищаем форму
от фигуры Form1.Canvas.Brush.Color:= RGBToColor; // Цвет кисти случайный if pr then // Рисуем прямоугольник Form1.Canvas.Rectangle(Random(Form1.Width), Random(Form1.Height), 200, 100) else // или рисуем эллипс Form1.Canvas.Ellipse(Random(Form1.Width), Random(Form1.Height), 200, 100); end;
end.
Весь проект "программа - заставка".
----- Помогли тебе, помоги и ты.
Ответ отправил: Евгений/Genia007/, Бакалавр
Ответ отправлен: 07.05.2010, 16:44
Номер ответа: 261269
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 261269
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.