![]() |
![]() |
![]() |
|
исходный код калькулятора | ☑ | ||
---|---|---|---|---|
0
ПульсЪ
24.09.10
✎
12:12
|
есть у кого нибудь исходный код калькулятора:?
или хотябы помогите Процедура Кнопка1Нажатие(Элемент) перем1 = ЭлементыФормы.ПолеВыводаРезультата.Значение; ЭлементыФормы.ПолеВыводаРезультата.Значение = перем1*10+1; КонецПроцедуры Процедура Кнопка2Нажатие(Элемент) перем2 = ЭлементыФормы.ПолеВыводаРезультата.Значение; ЭлементыФормы.ПолеВыводаРезультата.Значение = перем2*10+2; КонецПроцедуры и т.д. Процедура КнопкаРавноНажатие(Элемент) КонецПроцедуры Процедура КнопкаСложениеНажатие(Элемент) КонецПроцедуры мне никак не осуществить процесс сложения. |
|||
1
IronDemon
24.09.10
✎
12:15
|
В школе на информатике уже не учат этому?
|
|||
2
ПульсЪ
24.09.10
✎
12:16
|
я конечно могу сделать два поля вписывать в них циферки и складывать, но это не вариант
|
|||
3
ПульсЪ
24.09.10
✎
12:17
|
хочу сделать аналог калькулятора на винде
|
|||
4
ПульсЪ
24.09.10
✎
12:18
|
одно поле, кнопки - цифры и кнопки -операции и кнопка = равно
|
|||
5
birkoFFFF
24.09.10
✎
12:19
|
Куда катится этот мир...
|
|||
6
Mikeware
24.09.10
✎
12:19
|
нормальный курсовой для 1 курса.
|
|||
7
birkoFFFF
24.09.10
✎
12:20
|
(6) ты хотел сказать лабораторная работа ?
|
|||
8
ПульсЪ
24.09.10
✎
12:22
|
никто не поможет?
|
|||
9
Адинэснег
24.09.10
✎
12:22
|
(6) на курсовых обычно обвязки к БД уже пишут, или задачки из МатАна решают =)
|
|||
10
H A D G E H O G s
24.09.10
✎
12:23
|
(9) МатАн на курсовых не решают.
ВычМат решают. |
|||
11
Mikeware
24.09.10
✎
12:26
|
(7)(9) Смотря на каких специальностях.
Впрочем, 2/3 миздюков "с верхним образованием и опытом от 10 лет" калькулятор не напишут... |
|||
12
patapum
24.09.10
✎
12:28
|
(3) лучше перепиши винду целиком на 1с )))
|
|||
13
ПульсЪ
24.09.10
✎
12:29
|
хаха, смешно, ты сам то смошешь калькуль накатать, я почему то уверен что нет
|
|||
14
patapum
24.09.10
✎
12:30
|
(13) муторно и непонятно зачем. вообще и более сложные вещи писал
|
|||
15
Mikeware
24.09.10
✎
12:31
|
(14) Ну, зачем лабораторные/семестровые/курсовые делают? для обучения!
|
|||
16
ПульсЪ
24.09.10
✎
12:31
|
обучение на любом языке начинается с написания калькулятора
|
|||
17
ПульсЪ
24.09.10
✎
12:32
|
(14) согласен
|
|||
18
IamAlexy
24.09.10
✎
12:34
|
развод? :)
|
|||
19
ПульсЪ
24.09.10
✎
12:34
|
какой развод?)
|
|||
20
ПульсЪ
24.09.10
✎
12:36
|
просто (11)хорошо подметил
|
|||
21
skunk
24.09.10
✎
12:37
|
кошмар
|
|||
22
patapum
24.09.10
✎
12:38
|
(11), (20) заявление с потолка. статистику никто не составлял
|
|||
23
ПульсЪ
24.09.10
✎
12:39
|
вообщем пробывал делать, что то такое получается, суть должна быть понятна, но алгоритм не правильный.. в чем ошибка?
Процедура КнопкаРавноНажатие(Элемент) если ЭлементыФормы.ПолеВвода2.Значение = 0 тогда сложение = ЭлементыФормы.ПолеВыводаРезультата.Значение + ЭлементыФормы.ПолеВвода1.Значение; иначе сложение = ЭлементыФормы.ПолеВвода1.значение + ЭлементыФормы.ПолеВвода2.значение; КонецЕсли; ЭлементыФормы.ПолеВыводаРезультата.Значение = сложение; КонецПроцедуры Процедура КнопкаСложениеНажатие(Элемент) если сч = 0 тогда ЭлементыФормы.ПолеВвода1.Значение = ЭлементыФормы.ПолеВыводаРезультата.Значение; ЭлементыФормы.ПолеВыводаРезультата.Значение = 0; сч = 1; Иначе ЭлементыФормы.ПолеВвода2.Значение = ЭлементыФормы.ПолеВыводаРезультата.Значение; ЭлементыФормы.ПолеВыводаРезультата.Значение = 0; сч = 0; конецЕсли; КонецПроцедуры |
|||
24
skunk
24.09.10
✎
12:39
|
это полный миздец
|
|||
25
skunk
24.09.10
✎
12:40
|
блин я тормоз ... седня же пятница
|
|||
26
Адинэснег
24.09.10
✎
12:40
|
тролль?
|
|||
27
ДенисЧ
24.09.10
✎
12:41
|
стр = "";
ВвестиСтроку(стр, "Введите выражение", 100); Сообщить("Результат:"); Сообщить(Шаблон("["+стр+"]")); |
|||
28
patapum
24.09.10
✎
12:43
|
(26) нет, очень культурный человек. сам не может, считает что другие тоже, но совета спрашивает
|
|||
29
Mikeware
24.09.10
✎
12:44
|
(23) "... в чем ошибка???
-В ДНК!!!"© |
|||
30
ПульсЪ
24.09.10
✎
12:44
|
(28) не ну извини, все только *издят не поделу, один базар, как на рынке, а толку нету, я то же могу зайти куда нить постебатсья, поумничать, а итог нулевой
|
|||
31
ПульсЪ
24.09.10
✎
12:48
|
(27), спасибо, интересный вариант) только не совсем то что нужно
|
|||
33
skunk
24.09.10
✎
13:33
|
по-моему пора тебе отдохнуть децел
|
|||
34
Ненавижу 1С
гуру
24.09.10
✎
13:34
|
||||
35
МихаилМ
24.09.10
✎
13:35
|
(32) флудеры поднимают Вашу не очень интелектуальную тему уровня уроков информатики в школе.
|
|||
36
ПульсЪ
24.09.10
✎
13:37
|
(33) а что я что то не то сказал?
|
|||
37
ПульсЪ
24.09.10
✎
13:37
|
(33) или неправду
|
|||
38
ПульсЪ
24.09.10
✎
13:40
|
(35) 1) ну в школе на информатике програмирование не проходят, ну покрайней мере в моей школе не было
2) для Вас с Вашим опытом она может и не очень интелектуальная, а для меня с моим опытом еще как интелектуальная. |
|||
39
skunk
24.09.10
✎
13:41
|
(36)подумай ... повториться накажем
|
|||
40
skunk
24.09.10
✎
13:42
|
(38)яндексом вас тоже не учили пользоваться?
|
|||
41
ПульсЪ
24.09.10
✎
13:44
|
(39) Ну возможно переборщил немногов (32)... это да... но с другой стороны неприятно, когда спрашиваешь что то, а тебя стегать начинают не предложив не одного варианта.. такое ощущение что все сразу такими умными родились, что сели и сразу все сделали.
|
|||
42
Ненавижу 1С
гуру
24.09.10
✎
13:44
|
(41) в (34) прям таки ни одного?
|
|||
43
ПульсЪ
24.09.10
✎
13:45
|
(40) я и яндексом, и гуглем.. поиск результата не дал.. под 1С калькуль нашел одну тему, где такой же вопрос поднимался. результат - одинаковый, только одни разговоры
|
|||
44
ПульсЪ
24.09.10
✎
13:46
|
тема кстате на этом же форуме
|
|||
45
ПульсЪ
24.09.10
✎
13:47
|
поиск дает такое: ????? ???????????
возможно прокси виноват |
|||
46
Mort
24.09.10
✎
13:49
|
Не удивлюсь если окажется, что 50% 1С-ников не могут осилить накатать калькулятор.
|
|||
47
ДенисЧ
24.09.10
✎
13:49
|
(46) 80%...
|
|||
48
МихаилМ
24.09.10
✎
13:51
|
(41)
некоторые сразу родились, некоторые учились. профессия программиста подразумевает высшее образование. И как следствие - умение программировать не только на 1с. А Ваш вопрос говорит, что уровень Вашей компетенции в вопросах пограммирования ниже базовых. Следственно понимание Вашей проблемы и отзывчивость Вы надёте на форуме студентов и школьников а не разработчиков. |
|||
49
skunk
24.09.10
✎
13:52
|
||||
50
skunk
24.09.10
✎
13:53
|
(46)а чего там катать-то?
|
|||
51
ДАртаньян
24.09.10
✎
13:53
|
тупые и жадные такие тупые и жадные. (0) человеку интересно, не всё-ж время на скд отчёты по продажам ваять, может скоро займётся написанием отказоустойчивого и быстрого движка базы данных... на 1с скрипте...
|
|||
52
skunk
24.09.10
✎
13:54
|
там больше умение картинки рисовать надо умееть... абы красявый был
|
|||
53
Mort
24.09.10
✎
13:56
|
(50) В этом то и вся печаль.
|
|||
54
ДАртаньян
24.09.10
✎
13:56
|
или будет из трактора велокат делать. Богата левшами земля русская
|
|||
55
ПульсЪ
24.09.10
✎
13:56
|
(48) я на 3 курсе высшего, до этого колледж, изучал паскаль, делфи, с програмированием знаком.
на форму школьников и студентов ответы не найти. людей, которые родились и сразу сели програмировать и все делали, таких нету.. все учатся годами конечно, если нас закормят продуктами ГМО , то такие умники может и начнут появляться |
|||
56
Ненавижу 1С
гуру
24.09.10
✎
13:57
|
(0) автор, сколько платишь?
|
|||
57
skunk
24.09.10
✎
13:57
|
(55)я до первого курса уже вирусы писал ... а ты на 3 еще до сих пор калькулятор осилить не можешь?
|
|||
58
Mort
24.09.10
✎
13:58
|
(55) На третьем курсе и ещё дискретные автоматы не проходили?
|
|||
59
ПульсЪ
24.09.10
✎
14:00
|
(57) ну ты молодец, а я внонтакте ломал, да пароли угонял от мыла и что?
(55) нет не проходили |
|||
60
Я не курил
24.09.10
✎
14:03
|
Автор, ты серьезно?
|
|||
61
ДАртаньян
24.09.10
✎
14:04
|
(55) покупаешь самый дешёвый китайский калькулятор и долго не отрываясь на него смотришь. Потом закрываешь глаза и представляешь, что ты - большой такой калькулятор. У тебя есть кнопочки с закорючками и окошко, где ты показываешь результат.. когда на кнопочки нажимают, ты пикаешь.. сидишь так недельку не двигаясь, и из тебя получится хороший овощ(калькулятор).
|
|||
62
ПульсЪ
24.09.10
✎
14:05
|
(61) при таком раскладе, скорее из меня получится хороший овощЪ)
|
|||
63
skunk
24.09.10
✎
14:07
|
(59)конечно ... звидеть не мешки тягать ... хацкер незнающий как написать на калькулятор это нонсен
|
|||
64
ПульсЪ
24.09.10
✎
14:09
|
(59) вот вот, ты хоть знаешь кто такой хакер и историю происхождения?) то же мне вирусописец)
ща сразу в гугль или яндекс) |
|||
65
ПульсЪ
24.09.10
✎
14:10
|
(64) ну и что такое вирусная матрица?)
|
|||
66
Mort
24.09.10
✎
14:10
|
(61) На такое мероприятие травы не напасёшься.
|
|||
67
ПульсЪ
24.09.10
✎
14:11
|
(66) )
|
|||
68
skunk
24.09.10
✎
14:13
|
(66)+1 ...
(64)откуда ... ты вон лучшее шлепай калькулятор пёши ищо ... как осилишь я тебе попрошу сказать пароль к моему мылу ... ну а там будем глядеть, что ты знаешь о матрицах, хакерах и историю их происхождений |
|||
69
strange2007
24.09.10
✎
14:17
|
Помню у нас 2 прогера почти месяц ваяли мега калькулятор для проги, которая на MS SQLе крутилась. Сделали! Были баги и мега ограничения но сделали. Пришел студент и предложил юзать execute, типа спрашивать у пользователя что посчитать и пихнуть SQLю
Вот чем-то напоминает ветка |
|||
70
ПульсЪ
24.09.10
✎
14:20
|
(64) дык я не хвастаюсь тут что я такой сякой, я просто решил попросить умных людей помочь с вопросом, а вместо помощи получил 68 сообщений флуда.. как по твоему это нормально? меня когда кто либо спрашивает о чем нибудь, я если знаю помогаю, мне вот не в облом помочь в чем то кому то.
|
|||
71
skunk
24.09.10
✎
14:21
|
в наше время путь становления программера начинался с разработки своего калькулятора и текстового редактора ... интересно с чего начинают программировать теперешнее поколение некст
|
|||
72
Я не курил
24.09.10
✎
14:21
|
В упрощенном виде будет примерно как-то так:
Перем ВыражениеДляВычисления; Процедура Кнопка1Нажатие(Элемент) ЭлементыФормы.ПолеВыводаРезультата.Значение = ЭлементыФормы.ПолеВыводаРезультата.Значение+"1"; КонецПроцедуры Процедура Кнопка2Нажатие(Элемент) ЭлементыФормы.ПолеВыводаРезультата.Значение = ЭлементыФормы.ПолеВыводаРезультата.Значение+"2"; КонецПроцедуры ... Процедура КнопкаРавноНажатие(Элемент) ВыражениеДляВычисления = ВыражениеДляВычисления + ЭлементыФормы.ПолеВыводаРезультата.Значение; ВыражениеДляВычисления = Вычислить(ВыражениеДляВычисления); КонецПроцедуры Процедура КнопкаСложениеНажатие(Элемент) ВыражениеДляВычисления = СокрЛП(ЭлементыФормы.ПолеВыводаРезультата.Значение) + "+"; ЭлементыФормы.ПолеВыводаРезультата.Значение = ""; КонецПроцедуры ... |
|||
73
GROOVY
модератор
24.09.10
✎
14:21
|
(71) А корень и факториал твой калькулятор считать будет?
|
|||
74
GROOVY
модератор
24.09.10
✎
14:22
|
(73) к (70)
|
|||
75
skunk
24.09.10
✎
14:23
|
(70)а чем тебе хвастаться ... тем, что ты на третьем курсе не можешь написать кальк? ... что ты угонял пассворды от мыла и приэтом не увидал ссылку по которой сможешь скачать целых два каклькулятора?
|
|||
76
Mort
24.09.10
✎
14:23
|
||||
77
el-gamberro
24.09.10
✎
14:23
|
(70) В проблема то калькулятор написать?
|
|||
78
skunk
24.09.10
✎
14:23
|
(73)неужели и это проблема?
|
|||
79
Я не курил
24.09.10
✎
14:24
|
ТОесть так правилнее
Перем ВыражениеДляВычисления; Процедура Кнопка1Нажатие(Элемент) ЭлементыФормы.ПолеВыводаРезультата.Значение = СокрЛП(ЭлементыФормы.ПолеВыводаРезультата.Значение)+"1"; КонецПроцедуры Процедура Кнопка2Нажатие(Элемент) ЭлементыФормы.ПолеВыводаРезультата.Значение = СокрЛП(ЭлементыФормы.ПолеВыводаРезультата.Значение)+"2"; КонецПроцедуры ... Процедура КнопкаРавноНажатие(Элемент) ВыражениеДляВычисления = ВыражениеДляВычисления + ЭлементыФормы.ПолеВыводаРезультата.Значение; лементыФормы.ПолеВыводаРезультата.Значение = Вычислить(ВыражениеДляВычисления); КонецПроцедуры Процедура КнопкаСложениеНажатие(Элемент) ВыражениеДляВычисления = СокрЛП(ЭлементыФормы.ПолеВыводаРезультата.Значение) + "+"; ЭлементыФормы.ПолеВыводаРезультата.Значение = ""; КонецПроцедуры ... |
|||
80
Mort
24.09.10
✎
14:24
|
(71)
- Зарегился на мисте - Подал резюме на отстатыщ ... - profit ! |
|||
81
Mort
24.09.10
✎
14:27
|
(72) Садись два.
|
|||
82
ПульсЪ
24.09.10
✎
14:30
|
(79) да, первый вариант не прокатил, ща этот попробую, суть вроде понимаю, ща сек
|
|||
83
ДАртаньян
24.09.10
✎
14:30
|
(70) имхо, миста=90% флуда
(0) как я понимаю, для (0) не нужны конечные автоматы, для одинарных операций тупо вызывать функцию с агрументом из поля ввода по кнопке(1/x например), для операций с двумя аргументами( первый сохранять во вторую переменную, получать значение операции(+,-,/,* - всего 4 ), по нажатию = вычислять переменная1 операция переменная2 - всё это пишется за день в опохмелённом состоянии. если хочется каких нибуть крутых функций вроде е в степени х, или статистические ... придётся матан вспоминать. |
|||
84
ado
24.09.10
✎
14:32
|
(58) Ты чего ругаешься. Не видишь, человек делфи, паскаль изучал.
|
|||
85
ПульсЪ
24.09.10
✎
14:34
|
(79) спасибо огромное хороший человек) суть понял, доделал все рабит, дальше сам теперь все остально сделаю!)) еще раз спасяб!)
|
|||
86
ado
24.09.10
✎
14:36
|
(83) То что ты описал, это и есть конечный автомат ;-)
|
|||
87
ДАртаньян
24.09.10
✎
14:42
|
не обязательно(даже излишне) знать теорию конечных автоматов, чтобы написать калькулятор. Нужно чуть-чуть мозга(intelligence = 11) и методом тыка всё получится
|
|||
88
ado
24.09.10
✎
14:49
|
(87) Не обязательно, но отнюдь не излишне.
|
|||
89
Mort
24.09.10
✎
14:52
|
А после нажатия "+" первая переменная стирается? Не пойдет...
|
|||
90
trdm
24.09.10
✎
14:52
|
(1) Задачка совсем детская...
|
|||
91
ПульсЪ
24.09.10
✎
14:54
|
(89) она не стирается, а просто поле очищается
|
|||
92
trdm
24.09.10
✎
14:54
|
(71) >>>интересно с чего начинают программировать теперешнее поколение некст.
С пивной бутылки и пересадки мозга :) |
|||
93
ПульсЪ
24.09.10
✎
14:55
|
(79) нашел косяк при вычислении больших чисел
{(1,1)}: Неправильная константа типа Число маленькие считает, большие нехочет |
|||
94
skunk
24.09.10
✎
14:55
|
(93)вау
|
|||
95
Mort
24.09.10
✎
14:56
|
(91) Я это и имел ввиду. Запусти вин калькулятор и посмотри как там. Кажется мелочь, а на самом деле серьёзный провал в функциональности.
А если нажимать 123 + 234 + 345 ? Или нужно всё время "равно" дергать? |
|||
96
ПульсЪ
24.09.10
✎
14:57
|
(91) это позже доделаю
|
|||
97
skunk
24.09.10
✎
14:57
|
(92)всмысле? ... им что от обезъян мозг пересаживают?
|
|||
98
ShoGUN
24.09.10
✎
14:57
|
Жесть. Не, я понимаю, я сам когда дотнет впервые открыл - взялся там рисовать свой калькулятор) Но вроде я в курсе был как калькулятор функционирует...
|
|||
99
PuhUfa
24.09.10
✎
15:01
|
(46)(47) а не провести ли на форуме конкурс "кто красивее нарисует калькулятор"? -)
|
|||
100
skunk
24.09.10
✎
15:05
|
сотка
|
|||
101
skunk
24.09.10
✎
15:06
|
(99)сделай ©Волшебник
|
|||
102
ПульсЪ
24.09.10
✎
15:09
|
(99) ага сделать конкурс, и объявить его тогда, когда до конца осталось часов 5 ) работ будет не много)
|
|||
103
ПульсЪ
24.09.10
✎
15:11
|
{(1,1)}: Неправильная константа типа Число
<<?>>1 009+99 999 {(1,7)}: Неправильная константа типа Число 1 009+<<?>>99 999 |
|||
104
skunk
24.09.10
✎
15:12
|
жестко
|
|||
105
ЗлобнийМальчик
24.09.10
✎
15:17
|
(11) это какой? с обратной польской записью придется сначала матчасть почитать. А простенький виндовый - не вижу даже в теории проблем
|
|||
106
ЗлобнийМальчик
24.09.10
✎
15:20
|
(0) чернобыль походу повлиял...
|
|||
107
skunk
24.09.10
✎
15:20
|
в винде уже далеко непростенький калькулятор ... кстати да согласен ... виндовый кальк не напишет процентов 80 одинэснигов
|
|||
108
ShoGUN
24.09.10
✎
15:23
|
(107) Инженерный? Или простой? :) Или полный аналог, переключаемый?
|
|||
109
ПульсЪ
24.09.10
✎
15:25
|
{(1,1)}: Неправильная константа типа Число
<<?>>1 009+99 999 {(1,7)}: Неправильная константа типа Число 1 009+<<?>>99 999 ошибка исчезает если делать полезначение ПоляВвода не число а строка |
|||
110
skunk
24.09.10
✎
15:29
|
(108)в винде сейчас три калькулятора ... и именно его с имитировать у многих обламается...
|
|||
111
ЗлобнийМальчик
24.09.10
✎
15:30
|
(107) я про упрощенную версию - вроде в (0) именно такой надо сделать
|
|||
112
ЗлобнийМальчик
24.09.10
✎
15:31
|
+(111) а вот научный я так сходу не возьмусь - читать придется...
|
|||
113
ShoGUN
24.09.10
✎
15:32
|
(110) В семёрке вроде 4. Простой, инженерный, статистический и программерский.
|
|||
114
ПульсЪ
24.09.10
✎
15:35
|
(111) сначала простой, потом сложный
мой калькуль уже считает и вычитание Процедура КнопкаРавноНажатие(Элемент) если перемВыч = 1 тогда ВыражениеДляВычисления = ВыражениеДляВычисления - ЭлементыФормы.ПолеВыводаРезультата.Значение; ЭлементыФормы.ПолеВыводаРезультата.Значение = Вычислить(ВыражениеДляВычисления); перемВыч = 0; Иначе ВыражениеДляВычисления = ВыражениеДляВычисления + ЭлементыФормы.ПолеВыводаРезультата.Значение; ЭлементыФормы.ПолеВыводаРезультата.Значение = Вычислить(ВыражениеДляВычисления); конецесли; КонецПроцедуры Процедура КнопкаСложениеНажатие(Элемент) ВыражениеДляВычисления = СокрЛП(ЭлементыФормы.ПолеВыводаРезультата.Значение) + "+"; ЭлементыФормы.ПолеВыводаРезультата.Значение = ""; КонецПроцедуры Процедура КнопкаВычитаниеНажатие(Элемент) перемВыч = 1; ВыражениеДляВычисления = СокрЛП(ЭлементыФормы.ПолеВыводаРезультата.Значение) - "+"; ЭлементыФормы.ПолеВыводаРезультата.Значение = ""; КонецПроцедуры |
|||
115
ПульсЪ
24.09.10
✎
15:36
|
сколько же тогда строк понадобится для пары десятков операций..
|
|||
116
trdm
24.09.10
✎
15:38
|
(95) >>А если нажимать 123 + 234 + 345 ? Или нужно всё время "равно" дергать?
Не нужно, только после ввода 345. ПС. Что за кальк там у тебя?? |
|||
117
ShoGUN
24.09.10
✎
15:39
|
(114) Это называется "индусский код". http://lurkmore.ru/Индусский_код
|
|||
118
skunk
24.09.10
✎
15:40
|
(113)блин про статистический я и забыл (((
|
|||
119
mzelensky
24.09.10
✎
15:41
|
(55) 3 курс??? ИЗУЧИЛ ДЕЛФИ????чувак...и ты не можешь калькулятор написать??? я на первом курсе на делфяке сервер алимпиадных задач писал, на 2 курсе на Си написал своего радмина (пусть и немного упрощенную версию, но удаленное управление компом реализовал)...на 3 курсе уже автоматизировал участок производства на сахарном заводе (на 1С)... где ты учишься????
|
|||
120
Mort
24.09.10
✎
15:42
|
(116) Я имел ввиду тот что автор мутит, в (114) вот.
|
|||
121
ПульсЪ
24.09.10
✎
15:43
|
(119) ну может ты с самого детства задротствуешь за ПК, тогда не удивительно) все дело в том кто когда начала учится
|
|||
122
ПульсЪ
24.09.10
✎
15:43
|
(116) нужно равно дергать
|
|||
123
trdm
24.09.10
✎
15:45
|
function Calculator(ui)
{ this.ui = ui; this.pendingAdditiveOperator = ""; this.pendingMultiplicativeOperator = ""; this.sumInMemory = 0; this.sumSoFar = 0; this.factorSoFar = 0; this.waitingForOperand = true; with (ui) { display.text = "0"; zeroButton.clicked.connect(this, this.digitClicked); oneButton.clicked.connect(this, "digitClicked"); twoButton.clicked.connect(this, "digitClicked"); threeButton.clicked.connect(this, "digitClicked"); fourButton.clicked.connect(this, "digitClicked"); fiveButton.clicked.connect(this, "digitClicked"); sixButton.clicked.connect(this, "digitClicked"); sevenButton.clicked.connect(this, "digitClicked"); eightButton.clicked.connect(this, "digitClicked"); nineButton.clicked.connect(this, "digitClicked"); pointButton.clicked.connect(this, "pointClicked"); changeSignButton.clicked.connect(this, "changeSignClicked"); backspaceButton.clicked.connect(this, "backspaceClicked"); clearButton.clicked.connect(this, "clear"); clearAllButton.clicked.connect(this, "clearAll"); clearMemoryButton.clicked.connect(this, "clearMemory"); readMemoryButton.clicked.connect(this, "readMemory"); setMemoryButton.clicked.connect(this, "setMemory"); addToMemoryButton.clicked.connect(this, "addToMemory"); divisionButton.clicked.connect(this, "multiplicativeOperatorClicked"); timesButton.clicked.connect(this, "multiplicativeOperatorClicked"); minusButton.clicked.connect(this, "additiveOperatorClicked"); plusButton.clicked.connect(this, "additiveOperatorClicked"); squareRootButton.clicked.connect(this, "unaryOperatorClicked"); powerButton.clicked.connect(this, "unaryOperatorClicked"); reciprocalButton.clicked.connect(this, "unaryOperatorClicked"); equalButton.clicked.connect(this, "equalClicked"); } } Calculator.prototype.abortOperation = function() { this.clearAll(); this.ui.display.text = "####"; } Calculator.prototype.calculate = function(rightOperand, pendingOperator) { if (pendingOperator == "+") { this.sumSoFar += rightOperand; } else if (pendingOperator == "-") { this.sumSoFar -= rightOperand; } else if (pendingOperator == "*") { this.factorSoFar *= rightOperand; } else if (pendingOperator == "/") { if (rightOperand == 0) return false; this.factorSoFar /= rightOperand; } return true; } Calculator.prototype.digitClicked = function() { var digitValue = __qt_sender__.text - 0; if ((digitValue == 0) && (this.ui.display.text == "0")) return; if (this.waitingForOperand) { this.ui.display.clear(); this.waitingForOperand = false; } this.ui.display.text += digitValue; } Calculator.prototype.unaryOperatorClicked = function() { var operand = this.ui.display.text - 0; var result = 0; if (__qt_sender__.text == "Sqrt") { if (operand < 0) { this.abortOperation(); return; } result = Math.sqrt(operand); } else if (__qt_sender__.text == "x^2") { result = Math.pow(operand, 2); } else if (__qt_sender__.text == "1/x") { if (operand == 0.0) { this.abortOperation(); return; } result = 1 / operand; } this.ui.display.text = result + ""; this.waitingForOperand = true; } Calculator.prototype.additiveOperatorClicked = function() { var operand = this.ui.display.text - 0; if (this.pendingMultiplicativeOperator.length != 0) { if (!this.calculate(operand, this.pendingMultiplicativeOperator)) { this.abortOperation(); return; } this.ui.display.text = this.factorSoFar + ""; operand = this.factorSoFar; this.factorSoFar = 0; this.pendingMultiplicativeOperator = ""; } if (this.pendingAdditiveOperator.length != 0) { if (!this.calculate(operand, this.pendingAdditiveOperator)) { this.abortOperation(); return; } this.ui.display.text = this.sumSoFar + ""; } else { this.sumSoFar = operand; } this.pendingAdditiveOperator = __qt_sender__.text; this.waitingForOperand = true; } Calculator.prototype.multiplicativeOperatorClicked = function() { var operand = this.ui.display.text - 0; if (this.pendingMultiplicativeOperator.length != 0) { if (!this.calculate(operand, this.pendingMultiplicativeOperator)) { this.abortOperation(); return; } this.ui.display.text = this.factorSoFar + ""; } else { this.factorSoFar = operand; } this.pendingMultiplicativeOperator = __qt_sender__.text; this.waitingForOperand = true; } Calculator.prototype.equalClicked = function() { operand = this.ui.display.text - 0; if (this.pendingMultiplicativeOperator.length != 0) { if (!this.calculate(operand, this.pendingMultiplicativeOperator)) { this.abortOperation(); return; } operand = this.factorSoFar; this.factorSoFar = 0.0; this.pendingMultiplicativeOperator = ""; } if (this.pendingAdditiveOperator.length != 0) { if (!this.calculate(operand, this.pendingAdditiveOperator)) { this.abortOperation(); return; } this.pendingAdditiveOperator = ""; } else { this.sumSoFar = operand; } this.ui.display.text = this.sumSoFar + ""; this.sumSoFar = 0.0; this.waitingForOperand = true; } Calculator.prototype.pointClicked = function() { if (this.waitingForOperand) this.ui.display.text = "0"; if (this.ui.display.text.indexOf(".") == -1) this.ui.display.text += "."; this.waitingForOperand = false; } Calculator.prototype.changeSignClicked = function() { var text = this.ui.display.text; var value = text - 0; if (value > 0) { text = "-" + text; } else if (value < 0) { text = text.slice(1); } this.ui.display.text = text; } Calculator.prototype.backspaceClicked = function() { if (this.waitingForOperand) return; var text = this.ui.display.text; text = text.slice(0, -1); if (text.length == 0) { text = "0"; this.waitingForOperand = true; } this.ui.display.text = text; } Calculator.prototype.clear = function() { if (this.waitingForOperand) return; this.ui.display.text = "0"; this.waitingForOperand = true; } Calculator.prototype.clearAll = function() { this.sumSoFar = 0.0; this.factorSoFar = 0.0; this.pendingAdditiveOperator = ""; this.pendingMultiplicativeOperator = ""; this.ui.display.text = "0"; this.waitingForOperand = true; } Calculator.prototype.clearMemory = function() { this.sumInMemory = 0.0; } Calculator.prototype.readMemory = function() { this.ui.display.text = this.sumInMemory + ""; this.waitingForOperand = true; } Calculator.prototype.setMemory = function() { this.equalClicked(); this.sumInMemory = this.ui.display.text - 0; } Calculator.prototype.addToMemory = function() { this.equalClicked(); this.sumInMemory += this.ui.display.text - 0; } |
|||
124
ПульсЪ
24.09.10
✎
15:45
|
вы вот сами сядьте ща кто такой умный и накотайте за 10 мин калькулятор как на винде.. хотя бы простой.. я вот посморю как полуится)
базарить все умеют, а по делу единицы |
|||
125
trdm
24.09.10
✎
15:46
|
(124) >>> вы вот сами сядьте ща кто такой умный и накотайте за 10 мин калькулятор как на винде.. хотя бы простой..
Тебе что влом описать пару десятков операций с проверками? |
|||
126
ПульсЪ
24.09.10
✎
15:47
|
(125) дык а я чем занимаюсь?
|
|||
127
mzelensky
24.09.10
✎
15:47
|
(121) не хами, хлопец!!! если ничего умного сказать не можешь - лучше вообще молчи!
|
|||
128
Архитектор
24.09.10
✎
15:48
|
Лучше игру "сапер" напиши и поиграть можно)
|
|||
129
kiruha
24.09.10
✎
15:49
|
А некоторые еще в школе пишут свою ОС, антивирь и офисный пакет ))
|
|||
130
skunk
24.09.10
✎
15:50
|
(129)ну это вообще гений
|
|||
131
ПульсЪ
24.09.10
✎
15:50
|
(127) дык я про что, если НЕЧЕГО по делу сказать, то помолчи лучше, хлопец
|
|||
132
mzelensky
24.09.10
✎
15:50
|
(129) ты путаешь понятия "пишут свою ОС" и "создают свою сборку Линухи" !!!
|
|||
133
ПульсЪ
24.09.10
✎
15:50
|
(128) потом и до сапера доберусь)
|
|||
134
ДАртаньян
24.09.10
✎
15:51
|
(0) не так прост как кажется, крутые хакеры сильны в социальной инженерии, судя по (123), к 300 посту кто-нибуть другой уже напишет кальк в 1с :)(
|
|||
135
ПульсЪ
24.09.10
✎
15:51
|
(123) зверь машина)) сам писал?
|
|||
136
ПульсЪ
24.09.10
✎
15:52
|
(134) )))))))))
|
|||
137
Mnemonic1C
24.09.10
✎
15:53
|
Ого, новая ***звезда***
|
|||
138
skunk
24.09.10
✎
15:54
|
(133)лучше оставь его в покое
|
|||
139
Mnemonic1C
24.09.10
✎
15:54
|
Автор, скажи пожалуйста, а кой смысл тебе на 1С писать калькулятор?
|
|||
140
ПульсЪ
24.09.10
✎
15:55
|
(139) лишним не будет, а знания никогда не помешают
|
|||
141
ПульсЪ
24.09.10
✎
15:55
|
любые
|
|||
142
Адинэснег
24.09.10
✎
15:57
|
(114) пля... вот откуда этот код берется :D
месяц-два и это будет резюме, с опытом внедрения УПП, перепиской под нужды бизнеса или как там ща пишут (нужды бизнеса - как раз те самые калькуляторы и кнопки заполнения тч прямо на форме документа) *LOL* |
|||
143
Mnemonic1C
24.09.10
✎
15:57
|
Насколько помню с универа, калькулятор задают с целью разобратся с работой элементов управления, обработка событий, и т.д. А в 1С это зачем, здесь это проще пареной репы, ты либо изучай "Программирование", или учи 1С
|
|||
144
ДАртаньян
24.09.10
✎
16:00
|
что такого сложного в калькуляторе с точки зрения работы элементов управления. Даже на winapi много кнопочек и одно поле ввода - элементарнейшая задача.
(142) скорее всего, сейчас коллективный разум решает тестовое задание в какой-нибуть франч :( |
|||
145
ПульсЪ
24.09.10
✎
16:01
|
(143) проще пареной репы, напиши, просто так, удели лишних 10 мин 1С, тоока не два поля ввода и четыре строчки сложение, выч, умн и дел, а такой, как простой виндовский хп.. можешь даже сюда не выкладывать если удастся, просто попробуй
|
|||
146
kokamoonga
24.09.10
✎
16:08
|
(145) ну я написал за 15 минут с простейшими арифметическими операциями, на большее время тратить влом. а в чем собственно задача при наличии например оператора Выполнить?
|
|||
147
Злобный Фей
24.09.10
✎
16:15
|
(145)
"И вы, в присутствии двух людей с университетским образованием, позволяете себе давать советы космического масштаба и космической же глупости о том, как всё поделить!" "зарубите себе на носу, что вам нужно молчать и слушать, что вам говорят. Учиться и стараться стать хоть сколько-нибудь приемлемым членом социального общества!" |
|||
148
Mnemonic1C
24.09.10
✎
16:16
|
(145) Мне что делать нечего?
|
|||
149
ПульсЪ
24.09.10
✎
16:16
|
(146) у меня равно на 2 операции выглядит так:
Процедура КнопкаРавноНажатие(Элемент) если перемВыч = 1 тогда ВыражениеДляВычисления = ВыражениеДляВычисления - ЭлементыФормы.ПолеВыводаРезультата.Значение; ЭлементыФормы.ПолеВыводаРезультата.Значение = Вычислить(ВыражениеДляВычисления); перемВыч = 0; Иначе ВыражениеДляВычисления = ВыражениеДляВычисления + ЭлементыФормы.ПолеВыводаРезультата.Значение; ЭлементыФормы.ПолеВыводаРезультата.Значение = Вычислить(ВыражениеДляВычисления); конецесли; КонецПроцедуры а у тебя? |
|||
150
mzelensky
24.09.10
✎
16:17
|
(146) не "выполнить" ,а "вычислить()" :)
|
|||
151
mzelensky
24.09.10
✎
16:20
|
а такой вариант как просчитаешь:
скажем набираешь: 2+4+2+6*5 ??? После каждого действия будешь равно нажимать (надо же еще правила арифметики учитывать)!!!??? |
|||
152
ПульсЪ
24.09.10
✎
16:21
|
(147) в этой ветке 150 сообщений, основная часть флуд) что слушать то? как люди с университетским образованием строят из себя мега програмеров?) глупость) в теме несколько сообщений только по делу, а остальное рыночный базар, как бабульки обсуждают все подрят, даже то что не знают, так и тут
|
|||
153
ПульсЪ
24.09.10
✎
16:22
|
(151) пока не знаю как)
|
|||
154
kokamoonga
24.09.10
✎
16:22
|
(150) с Выполнить тоже работает)) но Вычислить логичнее да)
|
|||
155
ПульсЪ
24.09.10
✎
16:23
|
(154) ну так что умник, поделишься секретом одной процедурки?) или еще не придумал?))
|
|||
156
kokamoonga
24.09.10
✎
16:23
|
(154)+
Процедура РавноНажатие(Элемент) ВычисленноеЗначение = ""; ЗначениеПоляВычисления = ЭлементыФормы.ПолеВычисления.Значение; СтрокаДляВыполнения = "ВычисленноеЗначение = "+ЗначениеПоляВычисления; Выполнить(СтрокаДляВыполнения); ЭлементыФормы.ПолеВычисления.Значение = ВычисленноеЗначение; КонецПроцедуры |
|||
157
kokamoonga
24.09.10
✎
16:23
|
(155) ой)
|
|||
158
Архитектор
24.09.10
✎
16:24
|
(149) Это ЭлементыФормы.ПолеВыводаРезультата.Значение = Вычислить(ВыражениеДляВычисления);
Хороший кодер написал бы одиг раз после условия. |
|||
159
ПульсЪ
24.09.10
✎
16:26
|
(149) а я что говорил что я хороший кодер?) если б был бы хорошим кодером, не базарил бы тут
|
|||
160
ПульсЪ
24.09.10
✎
16:27
|
(156) многообещающий кусок кода))
|
|||
161
kokamoonga
24.09.10
✎
16:28
|
(160) он работает, а я какбы и не прогер вовсе. с другой стороны для решения задачи в черновом варианте мне понадобилось 15 минут а тебе тему на форуме заводить что говорит о.
|
|||
162
ПульсЪ
24.09.10
✎
16:29
|
(160) этот кусок кода неочем не говорит)
|
|||
163
Megas
24.09.10
✎
16:29
|
(161) Читер =)
|
|||
164
kokamoonga
24.09.10
✎
16:30
|
(162) а что тебе? черновой вариант обработки выложить?)
|
|||
165
kokamoonga
24.09.10
✎
16:30
|
(164)+ черновой вариант обработки которая никогда не будет доделана ибо нафиг не надо
|
|||
166
ПульсЪ
24.09.10
✎
16:31
|
(162)хочешь выкладый, мне если честно ввсеравно уже)
ну даже если ты и написал? что из этого? ты крут?)) понтов та)) |
|||
167
kokamoonga
24.09.10
✎
16:31
|
(163) ага, смотри, щас на hadshot нарвешься))
|
|||
168
kokamoonga
24.09.10
✎
16:34
|
(166) читай свой пост (145) до полного просветления. мне профану понадобилось 15 минут на решение этой задачи вместе с формой и элементами управления. а профам которых здесь есть, просто лень писать эту ерунду ибо на уровне алгоритма решается в уме за 2,3 секунды.
|
|||
169
ПульсЪ
24.09.10
✎
16:37
|
(168) ну я тогда написал только что винду на 1С))) грузиться прямо со съемника, прикинь, а ты не можешь... гг ))
Процедура ПриНачалеРаботыСистемы(); Форма = ПолучитьОбщуюФорму("РабочийСтол"); форма.Открыть(); КонецПроцедуры |
|||
170
ПульсЪ
24.09.10
✎
16:38
|
(168) однобуйственно твоему коду 156
|
|||
171
kokamoonga
24.09.10
✎
16:41
|
(170) ты щас о чем ващще?
|
|||
172
ПульсЪ
24.09.10
✎
16:41
|
(171) о том что на словах любой может понт кинуть)
|
|||
173
Yorik
24.09.10
✎
16:43
|
(0) А для чего тебе нужно задание это выполнить?
|
|||
174
kokamoonga
24.09.10
✎
16:44
|
(172) понты ты тут кидаешь) еще раз (145) читай.
|
|||
175
ПульсЪ
24.09.10
✎
16:44
|
(174) ну ты чудной)
|
|||
176
ПульсЪ
24.09.10
✎
16:45
|
ща еще +100 сообщений = ЧТО ТАКОЕ ПОНТ?)
|
|||
177
Mort
24.09.10
✎
16:45
|
Дело было в пятницу.. Короче щас выложу пример с автоматом на 8.2
|
|||
178
kokamoonga
24.09.10
✎
16:45
|
(175) даже не представляешь насколько))
|
|||
179
ПульсЪ
24.09.10
✎
16:46
|
(173) для саморазвития
|
|||
180
ПульсЪ
24.09.10
✎
16:46
|
(178) давай код, посмотрим насколько ты чудной
|
|||
181
kokamoonga
24.09.10
✎
16:47
|
(180) код чего?
|
|||
182
ПульсЪ
24.09.10
✎
16:47
|
(181) код твоего калькулятора, посмотрим на зверя
|
|||
183
kokamoonga
24.09.10
✎
16:50
|
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Для Сч = 1 По 10 Цикл ИмяЦифровойКнопки = "Кнопка"+Строка(Сч); Кнопка = ЭлементыФормы[ИмяЦифровойКнопки]; Кнопка.Заголовок = Сч; ДействиеКнопки = Новый Действие("ДействиеКнопки"); Кнопка.УстановитьДействие("Нажатие",ДействиеКнопки); КонецЦикла; КонецПроцедуры Процедура ДействиеКнопки(Кнопка) ЗначениеПоляВычисления = ЭлементыФормы.ПолеВычисления.Значение; ЗначениеПоляВычисления = ""+ЗначениеПоляВычисления+Кнопка.Заголовок; ЭлементыФормы.ПолеВычисления.Значение = ЗначениеПоляВычисления; КонецПроцедуры Процедура РавноНажатие(Элемент) ВычисленноеЗначение = ""; ЗначениеПоляВычисления = ЭлементыФормы.ПолеВычисления.Значение; СтрокаДляВыполнения = "ВычисленноеЗначение = "+ЗначениеПоляВычисления; Выполнить(СтрокаДляВыполнения); ЭлементыФормы.ПолеВычисления.Значение = ВычисленноеЗначение; КонецПроцедуры Процедура СНажатие(Элемент) ЭлементыФормы.ПолеВычисления.Значение = ""; КонецПроцедуры Процедура BackspaceНажатие(Элемент) ЗначениеПоляВычисления = ЭлементыФормы.ПолеВычисления.Значение; ЗначениеПоляВычисления = Лев(ЗначениеПоляВычисления,СтрДлина(ЗначениеПоляВычисления)); ЭлементыФормы.ПолеВычисления.Значение = ЗначениеПоляВычисления; КонецПроцедуры представить не могу на что тут посмотреть можно... но смотри конечно) |
|||
184
ПульсЪ
24.09.10
✎
16:50
|
(181) или удалил уже?) а заного лень писать?)
|
|||
185
ado
24.09.10
✎
16:55
|
Автор, брось 1С, вот среда для реальных пацанов: Вышел Qt 4.7.0
|
|||
186
Mort
24.09.10
✎
16:57
|
http://ifolder.ru/19459590 вот пжлста. Плюс, минус. Добавить операцию - создать команду и прописать пару строк, в коде всё описано.
|
|||
187
Megas
24.09.10
✎
17:01
|
(186) ... Да блин +и - сделать легко ... и * сделать легко а вот / и всё остальное сложнее... еслиб было время то подумал бы как а так времени нет.
|
|||
188
Маус
24.09.10
✎
17:02
|
(185) Ура!
|
|||
189
ПульсЪ
24.09.10
✎
17:03
|
(183) это весь код??))
|
|||
190
kokamoonga
24.09.10
✎
17:04
|
(189) да, а что тебе еще надо? обвески? это уже без меня.
|
|||
191
ПульсЪ
24.09.10
✎
17:04
|
(186) посмотрю, только попозже, ща времени нету, спс
|
|||
192
ПульсЪ
24.09.10
✎
17:05
|
(189) а где вычитание? деление? умножение?
|
|||
193
ПульсЪ
24.09.10
✎
17:06
|
(189) а все понял технику)
|
|||
194
kokamoonga
24.09.10
✎
17:07
|
(193) техника проста до абсурда. только если бы задача стояла серьезно а не налабать за 10 минут кусок г... простите кода, было бы все иначе
|
|||
195
ПульсЪ
24.09.10
✎
17:08
|
(190) садись, двойка
|
|||
196
kokamoonga
24.09.10
✎
17:09
|
(195) за что учитель?))
|
|||
197
ПульсЪ
24.09.10
✎
17:10
|
(196) что то я не вижу кнопочек сложение, вычитание, деление, умножение..)
|
|||
198
kokamoonga
24.09.10
✎
17:10
|
(197) просто ты тупишь
Процедура ДействиеКнопки(Кнопка) ЗначениеПоляВычисления = ЭлементыФормы.ПолеВычисления.Значение; ЗначениеПоляВычисления = ""+ЗначениеПоляВычисления+Кнопка.Заголовок; ЭлементыФормы.ПолеВычисления.Значение = ЗначениеПоляВычисления; КонецПроцедуры |
|||
199
ДАртаньян
24.09.10
✎
17:10
|
(134)->(186) ЧТД !!!
ПульсЪ, хочу стать хакером, где такому учат ? |
|||
200
ПульсЪ
24.09.10
✎
17:12
|
200
|
|||
201
ПульсЪ
24.09.10
✎
17:12
|
(198) я понял, слухай, так и я могу) дело то вкнопках заключается)
|
|||
202
ПульсЪ
24.09.10
✎
17:13
|
(199) в книжках учат)
|
|||
203
Злобный Фей
24.09.10
✎
17:14
|
ПульсЪ = гений 1С ? Уж очень стиль на фиксу похож.
|
|||
204
ДАртаньян
24.09.10
✎
17:14
|
ты по каким учился?
|
|||
205
kokamoonga
24.09.10
✎
17:14
|
(201) представь себе да. дело в кнопках.
|
|||
206
ПульсЪ
24.09.10
✎
17:15
|
(203) я не гений, я всего лишь начинающий))
|
|||
207
Архитектор
24.09.10
✎
17:15
|
(203)г1с уж калк бы наверно написал
|
|||
208
ПульсЪ
24.09.10
✎
17:15
|
(204) google.ru, ya.ru
|
|||
209
Злобный Фей
24.09.10
✎
17:17
|
(207) Ну может последователь..
|
|||
210
ShoGUN
24.09.10
✎
17:18
|
(209) Сын? О_о Племянник? О_о
Заеб*т же всех... |
|||
211
Архитектор
24.09.10
✎
17:19
|
(209)наверно,) подрастает смена
|
|||
212
ПульсЪ
24.09.10
✎
17:19
|
АХхАхХ)))
|
|||
213
g_frost
24.09.10
✎
17:27
|
(0) Давал подобную задачу "студентам"
получив решение понял что RTFM это священный завет Встроенные функции языка (Script functions) Вычислить (Eval) Синтаксис: Вычислить(<Выражение>) Параметры: <Выражение> (обязательный) Тип: Строка. Выражение, которое требуется вычислить. Возвращаемое значение: Результат вычисления выражения. Тип возвращаемого значения зависит от типа выражения. Описание: Вычисляет переданное выражение. С помощью метода можно вычислять математические и логические выражения, а также операции конкатенации. Подробнее про выражения см. раздел "Выражения языка". Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. Пример: А = Вычислить("500 + 500*20/100"); А = Вычислить("Истина и Ложь"); А = Вычислить("""Иван"" + "" "" + "" |
|||
214
g_frost
24.09.10
✎
17:29
|
(213) а я то надеялся что начнут строки парсить, скобки, приоритеты операций в стек складывать ... =)
|
|||
215
Mort
24.09.10
✎
17:30
|
Вот развитие (186): легким движением руки добавляются умножение, деление, корень, смена знака, обработка /0:
http://ifolder.ru/19460137 автоматы рулят |
|||
216
Mort
24.09.10
✎
17:33
|
Исходник:
&НаКлиенте Процедура ПриОткрытии(Отказ) Сост = 3; Стэк = 0; Табло = "0"; КонецПроцедуры &НаКлиенте Процедура ВыполнитьРасчет(Отказ = Ложь) Если ТекОперация = "Плюс" Тогда Стэк = Стэк + Число(Табло); ИначеЕсли ТекОперация = "Минус" Тогда Стэк = Стэк - Число(Табло); ИначеЕсли ТекОперация = "Умножить" Тогда Стэк = Стэк * Число(Табло); ИначеЕсли ТекОперация = "Делить" Тогда Если Число(Табло) = 0 Тогда Отказ = Истина; Табло = "Ошибка"; Возврат; Иначе Стэк = Стэк / Число(Табло); КонецЕсли; КонецЕсли; Табло = Формат(Стэк, "ЧН=0; ЧГ="); КонецПроцедуры &НаКлиенте Процедура Равно(Команда) Если Сост = 1 Или Сост = 2 Тогда Отказ = Ложь; ВыполнитьРасчет(Отказ); Если Отказ Тогда Сост = 4; Иначе Сост = 3; КонецЕсли; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура Цифра(Команда) Цифра = Прав(Команда.Имя, 1); Если Сост = 1 Тогда Если Табло = "0" Тогда Табло = Цифра; Иначе Табло = Табло + Цифра; КонецЕсли; ИначеЕсли Сост = 2 Тогда Табло = Цифра; Сост = 1; ИначеЕсли Сост = 3 Тогда Табло = Цифра; Стэк = 0; ТекОперация = "Плюс"; Сост = 1; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура Операция(Команда) Операция = Команда.Имя; Если Сост = 1 Тогда Отказ = Ложь; ВыполнитьРасчет(Отказ); Если Отказ Тогда Сост = 4; Возврат; КонецЕсли; ТекОперация = Операция; Сост = 2; ИначеЕсли Сост = 2 Тогда ТекОперация = Операция; Сост = 2; ИначеЕсли Сост = 3 Тогда ТекОперация = Операция; Сост = 2; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура Преобразование(Команда) Если Сост =1 ИЛИ Сост = 2 ИЛИ Сост = 3 Тогда Преобразование = Команда.Имя; Если Преобразование = "Корень" Тогда Стэк = Sqrt(Число(Табло)); Табло = Формат(Стэк, "ЧН=0; ЧГ="); КонецЕсли; Сост = 3; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура Точка(Команда) Если Сост = 1 Тогда Если Найти(Табло, ",") = 0 Тогда Табло = Табло + ","; КонецЕсли; ИначеЕсли Сост = 2 Тогда Табло = "0,"; Сост = 1; ИначеЕсли Сост = 3 Тогда Табло = "0,"; Стэк = 0; ТекОперация = "Плюс"; Сост = 1; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура CE(Команда) Стэк = 0; ТекОперация = "Плюс"; Сост = 3; Табло = "0"; КонецПроцедуры &НаКлиенте Процедура ПлюсМинус(Команда) Если Сост = 1 Тогда Если Табло = "0" Тогда Возврат; КонецЕсли; Если Лев(Табло, 1) = "-" Тогда Табло = Сред(Табло,2); Иначе Табло = "-" + Табло; КонецЕсли; КонецЕсли; Если Сост = 3 Тогда Стэк = -Стэк; Табло = Формат(Стэк, "ЧН=0; ЧГ="); КонецЕсли; КонецПроцедуры |
|||
217
ПульсЪ
24.09.10
✎
17:38
|
лана) спасибо отдельным людям кто помогал а не стебался)
а всем остальным обработочка на прощание)) Процедура ПриОткрытии() // Вставить содержимое обработчика. Для Каждого Эл из Метаданные.РегистрыСведений Цикл РегистрСведенийСписок.Добавить(Эл.Имя, Эл.Синоним+"("+Эл.Имя+")", ложь); КонецЦикла; Для Каждого Эл из Метаданные.Справочники Цикл СправочникиСписок.Добавить(Эл.Имя, Эл.Синоним+"("+Эл.Имя+")", ложь); КонецЦикла; Для Каждого Эл из Метаданные.Документы Цикл ДокументыСписок.Добавить(Эл.Имя, Эл.Синоним+"("+Эл.Имя+")", ложь); КонецЦикла; РегистрСведенийСписок.СортироватьПоПредставлению(); СправочникиСписок.СортироватьПоПредставлению(); ДокументыСписок.СортироватьПоПредставлению(); КонецПроцедуры Процедура РегистрыСведенийУдалить() Если Вопрос("Удалять регистры сведений?", РежимДиалогаВопрос.ДаНетОтмена)<> КодВозвратаДиалога.Да Тогда Возврат; КонецЕсли; // Вставить содержимое обработчика. Для Каждого Эл из РегистрСведенийСписок Цикл Если Не Эл.Пометка Тогда Продолжить; КонецЕсли; ИмяРегистра=Эл.Значение; ПредставлениеРегистра=Эл.Представление; Сообщить("Очищаю регистр: "+ПредставлениеРегистра); НаборЗаписей=РегистрыСведений[ИмяРегистра].СоздатьНаборЗаписей(); НаборЗаписей.Записать(); КонецЦикла; КонецПроцедуры Процедура ДокументыУдалить() Если Вопрос("Удалять документы?", РежимДиалогаВопрос.ДаНетОтмена)<> КодВозвратаДиалога.Да Тогда Возврат; КонецЕсли; // Вставить содержимое обработчика. Для Каждого Эл из ДокументыСписок Цикл Если Не Эл.Пометка Тогда Продолжить; КонецЕсли; Имя=Эл.Значение; Представление=Эл.Представление; Сообщить("Очищаю документ: "+Имя); ПереченьОб=Документы[Имя].Выбрать(); СписокСсылок=Новый Массив(); Если флТранзакция Тогда НачатьТранзакцию(); КонецЕсли; Пока ПереченьОб.Следующий() Цикл Сч=СписокСсылок.Количество(); Если Сч%10=0 Тогда Состояние(Сч); ОбработкаПрерыванияПользователя(); КонецЕсли; СписокСсылок.Добавить(ПереченьОб.Ссылка); Если Не флУдалятьУдалитьОбъекты Тогда ПереченьОб.Ссылка.ПолучитьОбъект().Удалить(); КонецЕсли; КонецЦикла; Если флУдалятьУдалитьОбъекты Тогда УдалитьОбъекты(СписокСсылок, ложь); КонецЕсли; Если флТранзакция Тогда ЗафиксироватьТранзакцию(); КонецЕсли; Сообщить(" удалено "+СписокСсылок.Количество()+" документов"); КонецЦикла; КонецПроцедуры Процедура СправочникиУдалить() Если Вопрос("Удалять справочники?", РежимДиалогаВопрос.ДаНетОтмена)<> КодВозвратаДиалога.Да Тогда Возврат; КонецЕсли; // Вставить содержимое обработчика. Для Каждого Эл из СправочникиСписок Цикл Если Не Эл.Пометка Тогда Продолжить; КонецЕсли; Имя=Эл.Значение; Представление=Эл.Представление; Сообщить("Очищаю справочник: "+Имя); ПереченьОб=Справочники[Имя].Выбрать(); СписокСсылок=Новый Массив(); Если флТранзакция Тогда НачатьТранзакцию(); КонецЕсли; Пока ПереченьОб.Следующий() Цикл Сч=СписокСсылок.Количество(); Если Сч%10=0 Тогда Состояние(Сч); ОбработкаПрерыванияПользователя(); КонецЕсли; СписокСсылок.Добавить(ПереченьОб.Ссылка); Если Не флУдалятьУдалитьОбъекты Тогда ПереченьОб.Ссылка.ПолучитьОбъект().Удалить(); КонецЕсли; КонецЦикла; Если флУдалятьУдалитьОбъекты Тогда УдалитьОбъекты(СписокСсылок, ложь); КонецЕсли; Если флТранзакция Тогда ЗафиксироватьТранзакцию(); КонецЕсли; //УдалитьОбъекты(СписокСсылок, ложь); Сообщить(" удалено "+СписокСсылок.Количество()+" элементов"); КонецЦикла; КонецПроцедуры Процедура КнопкаВыполнитьНажатие(Элемент) // Вставить содержимое обработчика. Если ЭлементыФормы.ГлавнаяПанель.ТекущаяСтраница.Имя="СтраницаРегистрыСведений" Тогда РегистрыСведенийУдалить(); ИначеЕсли ЭлементыФормы.ГлавнаяПанель.ТекущаяСтраница.Имя="СтраницаСправочники" Тогда СправочникиУдалить(); ИначеЕсли ЭлементыФормы.ГлавнаяПанель.ТекущаяСтраница.Имя="СтраницаДокументы" Тогда ДокументыУдалить(); КонецЕсли; КонецПроцедуры |
|||
218
ПульсЪ
24.09.10
✎
17:39
|
формочку сами сделайте)
|
|||
219
Злобный Фей
24.09.10
✎
17:46
|
Ну точно лавры г1с покоя не дают..
|
|||
220
Архитектор
24.09.10
✎
17:54
|
(217) двоечка вам, товарищ
|
|||
221
inspam
24.09.10
✎
19:40
|
(217) а грабить корованы можно этой обработкой?
|
|||
222
Зеленый Кот
24.09.10
✎
19:43
|
(221)
нет - только клиентов |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |