|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.05.2013, 15:18 | #1 |
Новичок
Джуниор
Регистрация: 18.05.2013
Сообщений: 1
|
Задача. Вывести именинников по введенной дате
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; GroupBox1: TGroupBox; Label1: TLabel; Edit1: TEdit; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure Edit1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; pozdrs:Array[0..5] of string =('здоровья','успехов','долголетия' ,'счастья','богатства', 'любви'); implementation function GenerateRandomPordr(Imens:Array of String): String; var i:integer; begin randomize; Result:=Imens[0]; if Length(imens)>1 then for i:=1 to Length(imens)-1 do Result:=Result+'е'+Imens[i]; Result:=Result+'Поздравляем Вас и желаем'+Pozdrs[Random(Length(Pozdrs))]; end; {$R *.dfm} procedure TForm1.BitBtn2Click(Sender: TObject); begin ME1.Clear; memo1.Clear; Me1.SetFocus; end; procedure TForm1.BitBtn1Click(Sender: TObject); var i:integer; Imeninniki:Array of String; begin if ME1.Text[3]<>'.' then begin ShowMessage('Введите дату, разделяя число и месяц точкой!');; ME1.Clear; ME1.SetFocus; Exit; end; if (ME1.Text[1]>='3') and (ME1.Text[2]>'1') or (ME1.Text[1]='0') and (ME1.Text[2]='0') or (ME1.Text[1]='') or (ME1.Text[2]='') then begin ShowMessage('Ошибка! Дни месяца от 1 до 31!!!'); Exit; end; if (ME1.Text[4]>='1') and (ME1.Text[5]>'2') or (ME1.Text[4]='0') and (ME1.Text[5]='0') or (ME1.Text[4]='') or (ME1.Text[5]='') then begin ShowMessage('Ошибка! Месяц от 1 до 12!!!'); Exit; end; Memo1.Clear; Memo2.Clear; Memo2.Lines.LoadFromFile('dr.txt'); for i:=0 to Memo2.Lines.Count-1 do begin if Pos(ME1.Text,Memo2.Lines.Strings[i])<>0 then Memo1.Lines.Add(Memo2.Lines.Strings[i]); end; if Memo1.Lines.Count=0 then begin ShowMessage('Именниников не обнаружено'); Exit; end; SetLength(Imeninniki,Memo1.Lines.Co unt); for i:=0 to Memo1.Lines.Count-1 do Imeninniki[i]:=Copy(Memo1.Lines.Strings[i],Pos('',Memo1.Lines.Strings[i]), Length(Memo1.Lines.Add(GenerateRand omPordr(Imeninniki)) end; procedure TForm1.Edit1Change(Sender: TObject); begin if Key in ['й','ц','у','к','е','н','г','ш','щ' ,'з','х','ъ','ф','ы','в','а','п','р ', 'о','л','д','ж','э','я','ч','с','м' ,'и','т','ь','б','ю',#8,#13,#27,] then abort; end; end; end. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проверить является четным числом длина введенной пользователем строки и вывести сообщение на экран (оплачу пополнением счета) | Pomogi | Фриланс | 2 | 14.01.2013 17:25 |
последовательно вводятся числа до тех пор , пока во введенной совокупности не окажется три нуля . Вывести количество введенных чис | dss24 | Microsoft Office Excel | 2 | 10.11.2012 14:12 |
Для каждой введенной цифры (0–9) вывести соответствующее ей название на английском языке (0 — zero, 1 — one, 2 — two, ...) Delphi | Ирина Анатольевна | Помощь студентам | 1 | 16.05.2012 08:34 |
Вывести следующий день, по введенной дате (pascal) | niktim | Помощь студентам | 8 | 14.11.2011 11:08 |
Как создать запрос для высчитывания возраста по введенной дате? | La_pus_ya | Microsoft Office Access | 1 | 10.04.2010 08:40 |