07.12.2016, 22:36
|
Модератор
|
|
Регистрация: 17.04.2008
Сообщения: 8,024
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
|
|
Дело было вечером, делать было нечего...
1.
Код:
procedure Form1.Button1Click(Sender: TObject);
var
sName : String;
iRub, iKop : Integer;
begin
Try
// Пошли проверки
If Trim(Edit1.Text) = '' then Raise Exception.Create('Нимнеование товара не введено.');
If Trim(Edit2.Text) = '' then Raise Exception.Create('Цена товара руб не введена.');
If Trim(Edit3.Text) = '' then Raise Exception.Create('Цена товара коп не введена.');
sName := Trim(Edit1.Text);
If Not TryStrToInt(Trim(Edit2.Text),iRub) Then Raise Exception.Create('Цена товара руб не является числом.');
If Not TryStrToInt(Trim(Edit3.Text),iRub) Then Raise Exception.Create('Цена товара коп не является числом.');
// Все ОК - добавляем в Memo
Memo1.Lines.Add(Format('%s - %d руб %d коп',[sName, iRub, iKop]));
Except
On E : Exception Do MessageDlg(E.Message,mtError,[mbOK],0);
End;
end;
2. Тут есть 2 формы - form1 и form2. Все кнопки и поля ввода на Form1. Обе формы должны создаваться автоматически (такое, вроде, по умолчанию)
Код:
uses Unit2;
// Показ формы
procedure Form1.Button1Click(Sender : TObject);
var
W, H : Integer;
begin
If tryStrToInt(Edit1.Text,W) And tryStrToInt(Edit2.Text,H) then
begin
Form2.Width := W;
Form2.Height := H;
Form2.Show;
end
else
MessageDlg('Указанные ширина и/или высота не являются целым числом.',mtError,[mbOK],0);
end;
// уменьшение размера
procedure Form1.Button2Click(Sender : TObject);
var
W, H : Integer;
begin
W := Form2.Width;
H := Form2.Height;
If (W < 11) Or (H < 11) Then MessageDlg('Ширина и/или высота формы меньше мин значения.',mtError,[mbOK],0)
else
begin
W := W - 10;
H := H - 10;
Form2.Width := W;
Form2.Height := H;
end;
end;
3.1.
V = H*Pi*R^2
m = V*G
Код:
procedure Form1.Button1Click(Sender : TObject);
var
H, R, G : Double; // на всякий случай
begin
If TryStrToFloat(Edit1.Text,R) And TryStrToFloat(Edit2.Text,H) And TryStrToFloat(Edit3.Text,G)
Then MessageDlg(Format('m = %.2f',[G*H*sqr(R)*3.14]),mtInformation,[mbOK],0)
Else MessageDlg('Ошибка в исходных данных.',mtError,[mbOK],0);
end;
3.2.
Код:
procedure Form1.Button1Click(Sender : TObject);
var
S : String;
I : Integer;
C : Integer;
begin
S := Edit1.Text;
C := 0;
I := 1;
While (S[i] <> '!') And (I <= Length(S)) Do
begin
If S[i] = ' ' Then Inc(C);
Inc(I);
end;
If I > Length(S)
Then ShowMessage('В строке нет воскл. знака.')
Else ShowMessage(format('В строке %d символов до воскл. знака.',[C]));
end;
3.3.
Код:
procedure Form1.Button1Click(Sender : TObject);
var
S1, S2 : String;
begin
S1 := Edit1.Text;
S2 := StringReplace(S1,'abcd','',[rfReplaceAll]);
ShowMessage('Строка до: ' + S1 + #13#10 + 'Строка после: ' + S2);
end;
ЗЫ. Только с такими решенями препод скорее всего догадается, что это делал не ты...
|