Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Delphi] Компоненты standart, Простая задача по Delphi 
:(
    Опции темы
DRAGON88
Дата 14.5.2009, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 20.11.2008

Репутация: нет
Всего: нет



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

Задача



На форме располагаются компоненты: четыре кнопки с номерами, редактор 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.


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

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

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





Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  Lab_1.rar 171,26 Kb
PM MAIL   Вверх
TrЭin3e
Дата 14.5.2009, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 28.3.2009
Где: Ставрополь

Репутация: нет
Всего: 1



а что у вас делает прога по нажатии кнопок? 
код 
Код

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;
 вроде бы правильный, все должно работать
PM MAIL   Вверх
DRAGON88
Дата 14.5.2009, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 20.11.2008

Репутация: нет
Всего: нет



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

Вот так должно работать
PM MAIL   Вверх
DRAGON88
Дата 14.5.2009, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 20.11.2008

Репутация: нет
Всего: нет



Ну в общем только что эту раюоту сдал. Всё нормально. А насчёт выравнивание в 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 заканчивает программу.

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

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




Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  Lab_3.rar 379,09 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0720 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.