Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Есть слайдер - ползунок. В нем даны значения от 0 Добавлено: 22.07.10 12:26  

Автор вопроса:  Юрий
Есть слайдер - ползунок. В нем даны значения от 0 до 10. Эти значения передаются в функцию, которая каждому значению слайдера дает одно число.
Вопрос, как сделать что бы каждое значение функции сохранилось в список?
Событие(слайдер)(y1....yn) - > Число(x1....xm) - > Запись x1
                                                   ........
                                                   Запись xm

                                    
Задачу можно представить так, когда пишем x(i) = n слева в теле процедуры, я не хочу каждый раз присваивать (вводить число n) "вручную"
Мне нужно что бы эта переменная менялась когда я двигаю слайдер. Но, когда значение n меняется на m, значение n затирается в ячейке памяти, так? Мне надо что бы
x меняется, но предыдущие его значения остаются. Наверное нужно какая то доп процедура, или реакция на событие..
Нашел вот такой кусочек кода, нельзя ли его использовать?

Dim i As Integer
Dim Wrap As String
Wrap = Chr(13) & Chr(10)
For i = 1 To 10
TextBox1.Text = TextBox1.Text & "Строка " & i & Wrap
Next i


Вот код для которого нужно получить множество значений

Private Sub RunScript(ByVal x As Integer, ByVal y As Integer, ByRef A As Object)
    Dim dictionary As New Dictionary(Of String, Integer)
    ' y - текущее значение слайдера, x - соотвествующи значению слайдера номер
    dictionary.Add(y, x)
    Dim pair As KeyValuePair(Of String, Integer)
    For Each pair In dictionary
      ' получаем пару чисел, задача получить список пар для всех значений слайдера
      Print("{0}, {1}", pair.Key, pair.Value)
      A = dictionary
    Next pair
End Sub

Ответить

  Ответы Всего ответов: 27  

Номер ответа: 1
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 22.07.10 13:20
У тебя какая-то каша в голове. Попробуй объяснить что ты хочешь сделать, а не как ты собираешься это сделать, может кто-то сможет помочь. Сейчас из твоих объяснений я ровным счетом ничего не могу понять.

При чем тут слайдер вообще?
Если ты хочшеь заранее рассчитать результат функции для определенных значений и сохранить их для последующего использования, я тебе уже сказал как это делается. Когда тебе нужно значение, получаешь его из Dictionaty вот и все. Для чего ты эти значения будешь использовать, для слайдера или для чего еще это вообще не играет роли.

  1. ByRef A As Object

1. Зачем опять object, когда у тебя там должен лежать Dictionary?
2. Почему ByRef параметр, а не возвращать результат через return?

Ответить

Номер ответа: 2
Автор ответа:
 Юрий



Вопросов: 3
Ответов: 30
 Профиль | | #2 Добавлено: 22.07.10 13:28
Нужно получить поcледовательность как на картинке (я уже давал ссылку)
раз
http://api.ning.com/files/niy4HgfbtOt0T31mPQorLgCyQ9OZ49skZKZpkflqEbKGEH6I3cmLZo8usM4gOgUPTY3xlIwGx*YrZ73ufFHncfP*VVcrySLPi5hmu4y*avg_/HowMake.jpg

пока получается вот это

http://api.ning.com/files/**-kAR-bu0MjYlhkg6N0WQw39VVmtRPu-8ImLx*RVpxbSvVh0ZUB4wpLEOU6NR7j0a22etklhom0AYf3Y0m7Gptc1goIFZSqx*U0LM14iSQ_/HowMake2.jpg

Насчет А как объект, потому что не только числа могут быть, например false/true

Ответить

Номер ответа: 3
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #3 Добавлено: 22.07.10 13:45
  1. Dim data As New Dictionary (Of Integer, Integer)
  2. data(0) = 4
  3. data(2) = 6
  4. data(11) = 9


  1. Насчет А как объект, потому что не только числа могут быть, например false/true

еще страннее. Но Object все равно не там должен быть.

Ответить

Номер ответа: 4
Автор ответа:
 Юрий



Вопросов: 3
Ответов: 30
 Профиль | | #4 Добавлено: 22.07.10 13:58
Artyom пишет:
# Dim data As New Dictionary (Of Integer, Integer)
# data(0) = 4
# data(2) = 6
# data(11) = 9

Вот видите, Вы же вручную присваиваете переменным значения. Я же не буду каждый раз лезть в код и вручную присваивать? Мне надо динамически, как на рисунках.

Ответить

Номер ответа: 5
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #5 Добавлено: 22.07.10 14:01
  1. Dim data As New Dictionary (Of Integer, Integer)
  2.  
  3. For I = 0 To 100
  4.     data(I) = MyFunction (I)
  5. Next I

Ответить

Номер ответа: 6
Автор ответа:
 Юрий



Вопросов: 3
Ответов: 30
 Профиль | | #6 Добавлено: 22.07.10 14:12
Функция MyFunction (I) находится снаружи, нам известны только значения
Вот функция
http://www.7image.ru/pics/0710/52164402.jpg

Ответить

Номер ответа: 7
Автор ответа:
 Юрий



Вопросов: 3
Ответов: 30
 Профиль | | #7 Добавлено: 22.07.10 14:14
Вообще спасибо большое за отклик!

Ответить

Номер ответа: 8
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #8 Добавлено: 22.07.10 14:34
Ты думаешь эти картинки кому-то понятны кроме тебя?

Если значения заранее предрассчитаны, положи их в XML файл и закинь в ресурсы.
При запуске считываешь их в Dictionary, делаешь функцию-обертку, которая принимает аргумент и выдает из словаря результат.

Ответить

Номер ответа: 9
Автор ответа:
 Юрий



Вопросов: 3
Ответов: 30
 Профиль | | #9 Добавлено: 22.07.10 14:41
Функция считается быстро. Смысл в: Есть тысячи 3d точек. Двигая слайдер, я с помощью функции анализирую окружение каждой точки. Выводится число от 4 до 9, что означает сколько точек находится рядом. Вот этому числу ставиться в соответсвие номер значения слайдера - порядковый номер точки (от 0 до 1000000). Мне нужно просто объединить результаты (построить список) что бы проводить дальнейшие операции с исходными данными - массивом точек.
Может на C# проще это сделать? Я думал тут делов то, просто я только только начал читать книжки по VB.NET.
Про xml я подумаю, но мне кажется что не вариант, все должно быть на лету.

Ответить

Номер ответа: 10
Автор ответа:
 UnDeAdZak



Вопросов: 80
Ответов: 476
 Профиль | | #10 Добавлено: 22.07.10 15:10
Юрий Попробуй так:
В начале кода(при запуске) программы ты создаёш массив, проядковый номер ячейки которого равен количеству точек у соответствующего полигона ,и тутже заполняеш его в цикле при помощи своей функции. При прокрутке слайдера в текстбокс выводится значение того элемента массива, Порядковому номеру которого соответствует значение Value у скролла.

Ответить

Номер ответа: 11
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #11 Добавлено: 22.07.10 15:16
На C# проще не будет.

Мне было все понятно пока снова не появилось слово "слайдер".

Зачем тебе вообще этот слайдер нужен?

Ответить

Номер ответа: 12
Автор ответа:
 Юрий



Вопросов: 3
Ответов: 30
 Профиль | | #12 Добавлено: 22.07.10 15:21
Слайдер это просто метод ввода данных, что бы не вводить в окошко до потери сознания тысячи цифр. Как регулятор громкости у проигрывателя. Я гифку сделаю, покажу в действии как должно выглядеть.

Ответить

Номер ответа: 13
Автор ответа:
 Юрий



Вопросов: 3
Ответов: 30
 Профиль | | #13 Добавлено: 22.07.10 15:22
Слайдер это просто метод ввода данных, что бы не вводить в окошко до потери сознания тысячи цифр. Как регулятор громкости у проигрывателя. Я гифку сделаю, покажу в действии как должно выглядеть.

Ответить

Номер ответа: 14
Автор ответа:
 Юрий



Вопросов: 3
Ответов: 30
 Профиль | | #14 Добавлено: 22.07.10 15:57
Вот сделал гифку, что имеем сейчас
http://www.7image.ru/pics/0710/52218223.gif

Как должно быть
http://www.7image.ru/pics/0710/52217462.gif

Ответить

Номер ответа: 15
Автор ответа:
 Юрий



Вопросов: 3
Ответов: 30
 Профиль | | #15 Добавлено: 22.07.10 17:05
Мне нужно что бы все старые значения не затирались текущей информацией а сохранялись. Грубо говоря выделялись на лету ячейки памяти. Вот пример на картинке
http://www.7image.ru/pics/0710/52217462.gif
Сейчас дела обстоят так - видно что информация теряется
http://www.7image.ru/pics/0710/52218223.gif

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам