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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2013, 23:47   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию Кто-нибудь оптимизируйте действие при выборе radiobutton2

Здравствуйте, в предыдущей теме вы мне помогали написать программу применяя логическое xor, я сделал по аналогии, написал свою процедуру перевода двоичных символов в десятичное число, все работает, но все очень громоздко, может быть кто-то сможет оптимизировать код, который выполняется при активации radiobutton2? А если можно, то лучше весь проект (2 из 5 радиокнопок пока не начал делать, их не пишите)
Вложения
Тип файла: rar хаффман.rar (195.1 Кб, 10 просмотров)
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 12.03.2013, 00:01   #2
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Мне снег возле горожа надо почистить, а ещё у тёщи, лопату дам. Огород пока копать не надо...
Dozent вне форума Ответить с цитированием
Старый 12.03.2013, 00:26   #3
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

код рабочий, просто оптимизация, ито для себя, сейчас сам сижу пытаюсь что-то переделать, а написал что радиобАттоны трогать не надо, потому что некоторые форумчане могу поинтересоваться для чего тут еще rb3 и rb4
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 12.03.2013, 12:07   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

самая простая оптимизация сделать ОТДЕЛЬНЫЕ процедуры для каждой задачи
Код:
 if RadioButton1.Checked then begin
    if edit1.text='' then exit;
    CalcIsb(edit1.Text);
    Edit1.SetFocus;
 end

 else if RadioButton2.Checked then begin
   if (edit1.text='') or (edit2.text='') then exit;
   if not FindErr(Edit1.Text, Edit2.Text) then begin
     ShowMessage('Ошибок не найдено!');
     Exit;
   end;
   Edit1.SetFocus;
 end
кода остается столько же но читать его становится легче.
второй оптимизацией я бы назвал исключение всех глобально заданных (а по сути локальных) переменных.
хаффман.rar версия с лок. переменными и отдельными процедурами.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 13.03.2013, 18:13   #5
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

а еще вопрос, на вкладке events Tedit1 выбираю onenter, в списке выбираю button1, далее тестирую, ввожу 1101 (например), нажимаю enter и ничего не происходит почему-то
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 13.03.2013, 18:37   #6
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

onenter - это не событие нажатия энтера. Это скорее событие попадания мыши в пределы объекта. Событие-Антоним - onexit.

Для обработки нажатия кнопок юзайте OnKeyPress и иже с ним
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 13.03.2013, 23:31   #7
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

тогда подскажите код клавиши enter
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 13.03.2013, 23:45   #8
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
тогда подскажите код клавиши enter
Код клавиши Enter - 0x0D.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 14.03.2013, 06:33   #9
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
а еще вопрос, на вкладке events Tedit1 выбираю onenter, в списке выбираю button1, далее тестирую, ввожу 1101 (например), нажимаю enter и ничего не происходит почему-то
Может вам нужно просто установить Button1.Default = True, там же в инспекторе объектов.

Button1.Default = True означает, что если текущий компонент, который сейчас находится в фокусе, никак не обрабатывает нажатие [Enter] (не гасит это событие), то событие передастся кнопке. Button1.Cancel дает аналогичное поведение для нажатия [Esc]. И два компонента на одном родителе не должны одновременно иметь значение Default или Cancel = True. Потому что это бессмысленно. Первый же (по порядку) компонент с Default или Cancel = True погасит событие нажатия [Enter] или [Esc] и дальше оно просто не пойдет.
Sibedir вне форума Ответить с цитированием
Старый 15.03.2013, 02:08   #10
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Ладно, все работает нормально, но если ввести больше 10бит в edit1 программа выдает ошибку (скриншот ошибки и мои модернизации) во вложении, к тому что в комментарии не придерайтесь, это я просто выписывал количество избыточного кода в зависимости от введенного количества бит, чтобы потом отделить столько то символов от edit1 и запихнуть то что отделил в переменную, и подставить эту переменную вместо edit1 ошибка вылетает про включенной радиокнопки1, введите 10 бит-не будет ошибки, введите более 10-вылетит ошибка, не пойму в чем дело, хотя в моей версии программы такой ошибки небыло
Вложения
Тип файла: rar хаффман.rar (231.3 Кб, 10 просмотров)
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть кто-нибудь, кто работал с файлами excel на c#? Bi0max Microsoft Office Excel 11 23.08.2012 13:07
Может я не совсем по теме, но я надеюсь что найдется кто нибудь кто мне подскажет... xoi90 Работа с сетью в Delphi 1 23.01.2012 16:35
не знаю как выполнить.кто-нибудь...ну кто-нибудь... blina Общие вопросы по Java, Java SE, Kotlin 1 12.05.2010 11:43
Нужен кто-нибудь, кто сможет подсказать, как подступиться к программированию Delphi & C++ Koshka_Kali Помощь студентам 2 30.11.2008 13:23
действие при выборе нужного <option> badfilin JavaScript, Ajax 2 16.04.2008 23:59