Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Уменьшить размер кода, помогите сократить код 
:(
    Опции темы
Dobermann
Дата 4.6.2008, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Прога выводит 2 алфавита побуквенно
Код

var
  Form1: TForm1;
    i,j: integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if RadioButton1.Checked then
    begin
       inc(i);
       label1.Caption:=label1.Caption+chr(i);
    end
    else
  if radioButton2.Checked then
    begin
       inc(j);
       label1.Caption:=label1.Caption+chr(j);
    end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
label1.Caption:='';
i:=191;
j:=64;
end;

begin
i:=191;
j:=64;

end.

Хотел узнать, как можно максимально сократить код процедуры вывода, но чтобы программа работала аналогично?!?!?! smile 
PM   Вверх
elestrago
Дата 4.6.2008, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



чтобы получить нормальный ответ, надо задать нормальный вопрос....

я так понял что у тебя процедура вывода 

вот 

Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  if RadioButton1.Checked then
    begin
       inc(i);
       label1.Caption:=label1.Caption+chr(i);
    end
    else
  if radioButton2.Checked then
    begin
       inc(j);
       label1.Caption:=label1.Caption+chr(j);
    end;
end;


да и вообще что то я не догоню чего ты хочеш добится!! опиши все поподробней smile
--------------------
PM MAIL ICQ   Вверх
mr.Anderson
Дата 4.6.2008, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Dobermann, итак.

1. Опиши ситуацию подробнее.
2. Зачем использовать i и j как переменные. Заведи как константы. А лучше вообще попробуй обойтись без них.
3. Называй объекты нормальными именами.
4. Точно опиши, что делает программа и что хранит каждое поле/переключатель.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Dobermann
Дата 4.6.2008, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

я так понял что у тебя процедура вывода 

да
Цитата

обойтись без них

покажи как?
Цитата

Опиши ситуацию подробнее

сделать процедуру вывода не в 10 строк, а в 2....
PM   Вверх
mr.Anderson
Дата 4.6.2008, 19:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Цитата
сделать процедуру вывода не в 10 строк, а в 2.... 

Что делает программа. Что принимает, что выводит. Какой интерфейс (что за переключатели в коде). Детали, детали мне. В 2 строки ты ее вряд ли сделаешь, но сократить можно при желании, но надо прогу видеть.
Цитата
покажи как?

Повторяю, телепатические навыки у меня развиты слабо.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Dobermann
Дата 4.6.2008, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Что делает программа

Я ведь написал...самый первый пост, самое первое предложение...
2 радиобаттона(1-рус.яз, 2-англ.яз), 1 лэйбл,  2 баттона(одна для стирания лэйбла, другая для вывода алфавита побуквенно). Ну и радиобаттонами переключаем алфавиты...
PM   Вверх
mr.Anderson
Дата 4.6.2008, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Цитата
Я ведь написал...

Если я задал дополнительный вопрос, значит, твоей информации в первом посте недостаточно. По описанным компонентам наконец-то въехал в смысл.

Думаю, короче не напишешь уже. В две строчки точно не впихнешь.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
THandle
Дата 4.6.2008, 22:13 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

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



Код

procedure TForm1.Button1Click(Sender: TObject);
var
  Value : integer;
begin
  Value := 191; inc(i);
  if RadioButton2.Checked then
    Value := Value - 127;
  Label1.Caption := Label1.Caption + Chr(Value + i);
end;



Код

procedure TForm1.Button2Click(Sender: TObject);
begin
  i := 0;
end;


Добавлено через 2 минуты и 10 секунд
Если ни одни RadioButton не выделен, то будут идти русские.

Так. Вот еще кстати:

Код

var
  Form1: TForm1;
  i : integer = 0;

{...}


Плюс можно сократить убрав переменную Value.
PM   Вверх
Dobermann
Дата 4.6.2008, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



THandle Спасибо  smile   smile 
PM   Вверх
THandle
Дата 5.6.2008, 07:21 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

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



Dobermann, извини, я протупил вчера. Вот почти в 2 строки:

Код

var
  Form1: TForm1;
  i : integer = 191;

procedure TForm1.Button1Click(Sender: TObject);
begin
  inc(i);
  Label1.Caption := Label1.Caption + Chr(i - Integer(RadioButton2.Checked) * 127);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  i := 191;
end;


Плюс могу еще кучу чуть более длинных вариантов дать.
PM   Вверх
mr.Anderson
Дата 5.6.2008, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



THandle,  smile 


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Dobermann
Дата 5.6.2008, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



THandle,  smile  smile  smile 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


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

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


 




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


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

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