Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2009, 10:44   #1
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию Простая задача по Delphi7, но....

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

Задача


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


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



Код:
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.
Цитата:
Нажатие кнопки с номером приводит к появлению в окне редактора или на панели ее номера, добавляемого в конец строки.

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

А вот сам почти доделанный проект
Вложения
Тип файла: rar Lab 1.rar (171.3 Кб, 11 просмотров)
StudentMarat вне форума Ответить с цитированием
Старый 14.05.2009, 10:53   #2
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

Код:
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;
это разве не оно?
fbus вне форума Ответить с цитированием
Старый 14.05.2009, 11:22   #3
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

Я препода спрашивал, он сказал так, чтобы номер кнопеи добавлялся именно в конец редактора edit1 а не вначале, как у меня
StudentMarat вне форума Ответить с цитированием
Старый 14.05.2009, 11:42   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
именно в конец редактора edit1 а не вначале, как у меня
Давно видать твой препод моск не лечил. Твой код добавляет именно в конец Edit1
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.05.2009, 11:54   #5
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

Да не знаю, может и лечит мне мозг. Я то особо на пары не ходил. А суть задания в том, чтобы к примеру нажал на кнопку и её и надпись добавлялась в конец edit1. Ну то есть как бы выравнивание по правому краю (вот такой вот бред). А вообще реально это сделать!?
StudentMarat вне форума Ответить с цитированием
Старый 14.05.2009, 12:03   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А вообще реально это сделать!?
Э-э-э стоп!. Имеется ввиду что помими текста в Эдите в его правом углу отрисовывается текст из кнопки не добавляясь непосредственно после текста самого эдита?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.05.2009, 12:33   #7
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

В правом углу edit добавляется текст кнопки. Затем когда ещё раз нажимаешь на кнопку или нажав на другую кнопку (они то все выполняют аналогичные дейтсвия по условию задачи). добавляется этот текст, а предыдущий текст смещается влево в поле edit.
К примеру нажав на кнопку 1 в правом углу edit появляется тектс кнопки т.е 1. Затем нажав к примеру на кнопку 2 в правом углу edit появляется текст этой кнопки т.е. 2, а предыдущий текст (т.е. 1) как бы смещается левее, уступая место данному тексту (т.е. 2).
В итоге получается что в редакторе edit представлен текст - 12
StudentMarat вне форума Ответить с цитированием
Старый 14.05.2009, 13:59   #8
He77ga
Пользователь
 
Аватар для He77ga
 
Регистрация: 14.04.2009
Сообщений: 19
По умолчанию

Тоже задумывалась о выравнивании в едите. Вот что выяснила на эту тему, может пригодится

Код:
TEdit1  = class(TEdit)
  public
    procedure CreateParams(var Params: TCreateParams); Override;
end;

procedure TEdit1.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
 
 Params.Style := Params.Style or ES_MULTILINE or ES_RIGHT;
end;
He77ga вне форума Ответить с цитированием
Старый 14.05.2009, 17:51   #9
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

Ну в общем только что эту раюоту сдал. Всё нормально. А насчёт выравнивание в 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;
Вот почти доделанный проект
Вложения
Тип файла: rar Lab 3.rar (379.1 Кб, 11 просмотров)
StudentMarat вне форума Ответить с цитированием
Старый 14.05.2009, 17:53   #10
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

Цитата:
В противном случае фон Image стано-вится прозрачным, т.е. его не видно. Кнопка Close заканчивает программу.
Вот над этим я пока что завис. Может я код начал неправильно составлять???
StudentMarat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простая задача. Delphi. svobodys Помощь студентам 3 02.03.2009 08:35
Не простая задача !!! MaxZoa Microsoft Office Excel 2 06.03.2008 18:07
Простая задача еще utyyf Помощь студентам 28 23.10.2007 00:07
Простая задача utyyf Помощь студентам 25 18.10.2007 14:50