Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi] Компоненты standart


Автор: DRAGON88 14.5.2009, 09:24
Вот само условие задачи. А её почти доделал, остались только мелочи, над которыми я застрял
 

Задача



На форме располагаются компоненты: четыре кнопки с номерами, редактор Edit, панель, флажок CheckBox, кнопки “Очистить” и «Закрыть». Исходно окно редак-тора пусто. Нажатие кнопки с номером приводит к появлению в окне редактора или на панели ее номера, добавляемого в конец строки. Переключение вывода производится флажком CheckBox. Кнопка «Очистить» приводит окно редактора или поверхность панели в исходное состояние.

Добавлено через 4 минуты и 38 секунд
Вот сам на данный момент код

Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    Edit1: TEdit;
    Panel1: TPanel;
    CheckBox1: TCheckBox;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if CheckBox1.Checked=false then
begin
edit1.Text:=edit1.Text+BitBtn1.Caption;
end
else
begin
panel1.Caption:=panel1.Caption+BitBtn1.Caption;
end;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
if CheckBox1.Checked=false then
begin
edit1.Text:=edit1.Text+BitBtn2.Caption;
end
else
begin
panel1.Caption:=panel1.Caption+BitBtn2.Caption;
end;
end;

procedure TForm1.BitBtn5Click(Sender: TObject);
begin
edit1.Text:='';
panel1.Caption:='';
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
if CheckBox1.Checked=false then
begin
edit1.Text:=edit1.Text+BitBtn3.Caption
end
else
begin
panel1.Caption:=panel1.Caption+BitBtn3.Caption;
end;
end;

procedure TForm1.BitBtn4Click(Sender: TObject);
begin
if CheckBox1.Checked=false then
begin
edit1.Text:=edit1.Text+BitBtn4.Caption
end
else
begin
panel1.Caption:=panel1.Caption+BitBtn4.Caption;
end;
end;

procedure TForm1.BitBtn6Click(Sender: TObject);
begin
form1.Close;
end;



end.


Нажатие кнопки с номером приводит к появлению в окне редактора или на панели ее номера, добавляемого в конец строки. 

Вот именно над этим я застрял. Вроде бы просто, но не получается

А вот сам почти доделанный проект




Автор: TrЭin3e 14.5.2009, 13:06
а что у вас делает прога по нажатии кнопок? 
код 
Код

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
if CheckBox1.Checked=false then
begin
edit1.Text:=edit1.Text+BitBtn3.Caption
end
else
begin
panel1.Caption:=panel1.Caption+BitBtn3.Caption;
end;
end;
 вроде бы правильный, все должно работать

Автор: DRAGON88 14.5.2009, 13:31
В правом углу edit добавляется текст кнопки. Затем когда ещё раз нажимаешь на кнопку или нажав на другую кнопку (они то все выполняют аналогичные дейтсвия по условию задачи). добавляется этот текст, а предыдущий текст смещается влево в поле edit.
К примеру нажав на кнопку 1 в правом углу edit появляется тектс кнопки т.е 1. Затем нажав к примеру на кнопку 2 в правом углу edit появляется текст этой кнопки т.е. 2, а предыдущий текст (т.е. 1) как бы смещается левее, уступая место данному тексту (т.е. 2).
В итоге получается что в редакторе edit представлен текст - 12

Вот так должно работать

Автор: DRAGON88 14.5.2009, 17:08
Ну в общем только что эту раюоту сдал. Всё нормально. А насчёт выравнивание в edit, то препод дал мне это задание, чтобы я подумал как это можно сделать.
Теперь вот дал мне ещё одну задачу. Не хочу показаться слишком наглым, но можете и в ней помощь Я начал её делать и тут я тоже тоже застрял.

Вот сама задача

На форме располагаются: кнопка SpeedButton, кнопка Close, редакторы MaskEdit и Memo, контейнер Image. В редакторе Memo содержится 10 Фамилий И.О. В редактор MaskEdit разрешено вводить текст только по такому же формату. Если введенная фамилия совпадает с одной из фамилий в Memo, в Image ото-бражается изображение данного человека. В противном случае фон Image стано-вится прозрачным, т.е. его не видно. Кнопка Close заканчивает программу.

Вот сам на данный момент код


Код

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Buttons, Mask, Jpeg;

type
  TForm1 = class(TForm)
    MaskEdit1: TMaskEdit;
    BitBtn1: TBitBtn;
    Memo1: TMemo;
    Image1: TImage;
    SpeedButton1: TSpeedButton;
    procedure MaskEdit1Change(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);





  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.MaskEdit1Change(Sender: TObject);
begin
if (Trim(maskedit1.Text)='Иванов  В.В.') or (Trim(maskedit1.Text)='Иванов В.В.')then
begin
Image1.Picture.LoadFromFile('Ivanov.jpg');
end;
if (Trim(maskedit1.Text)='Петров  П.П.') or (Trim(maskedit1.Text)='Петров П.П.')then
begin
Image1.Picture.LoadFromFile('Petrov.jpg');
end;
if (Trim(maskedit1.Text)='Сидоров А.А.') then
begin
Image1.Picture.LoadFromFile('Sidorov.JPG');
end;
if (Trim(maskedit1.Text)='Синицин У.У.') then
begin
Image1.Picture.LoadFromFile('sinisin.JPG');
end;
if (Trim(maskedit1.Text)='Соколов А.А.') then
begin
Image1.Picture.LoadFromFile('Sokolov.jpg');
end;
if (Trim(maskedit1.Text)='Орлов   А.А.') or (Trim(maskedit1.Text)='Орлов  А.А.') or (Trim(maskedit1.Text)='Орлов А.А.')then
begin
Image1.Picture.LoadFromFile('Orlov.jpg');
end;
if (Trim(maskedit1.Text)='Волков  М.М.') or (Trim(maskedit1.Text)='Волков М.М.')then
begin
Image1.Picture.LoadFromFile('Volkov.jpg');
end;
if (Trim(maskedit1.Text)='Васькин В.И.') then
begin
Image1.Picture.LoadFromFile('Vaskin.jpg');
end;
if (Trim(maskedit1.Text)='Зайцев  В.Б.') or (Trim(maskedit1.Text)='Зайцев В.Б.')then
begin
Image1.Picture.LoadFromFile('Zaisev.jpg');
end;
if (Trim(maskedit1.Text)='Путин   В.В.') or (Trim(maskedit1.Text)='Путин  В.В.') or (Trim(maskedit1.Text)='Путин В.В.') then
begin
Image1.Picture.LoadFromFile('Putin.jpg');
end;
end;


procedure TForm1.BitBtn1Click(Sender: TObject);
begin
form1.Close;
end;


procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if speedbutton1.Down=false then
begin
maskedit1.Enabled:=false;
speedbutton1.Caption:='Не разрешено редактирование MaskEdit';
end;
if speedbutton1.Down=true then
begin
maskedit1.Enabled:=true;
speedbutton1.Caption:='Редактирование MaskEdit разрешено';
end;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
speedbutton1.Down:=true;
speedbutton1.Caption:='Редактирование MaskEdit разрешено';
end;


В противном случае фон Image стано-вится прозрачным, т.е. его не видно. Кнопка Close заканчивает программу.

Вот над этим я пока что завис. Может я код начал неправильно составлять???

Вот сам проект недоделанный



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)