Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.26;
Скачать: CL | DM;

Вниз

SpinButton   Найти похожие ветки 

 
SpinButton   (2008-09-17 23:27) [0]

Киньте плиз пример работы со SpinButton, чтобы при нажатии на кнопку SpinButton, в Edit значение увеличивалось на 1 или уменьшалось на 1 соответственно, в записимости от нажатой кнопки, вверх/вниз.


 
{RASkov} ©   (2008-09-17 23:36) [1]

> [0] SpinButton   (17.09.08 23:27)

А зачем такие сложности? Почему не подходит TUpDown или ТSpinEdit например?
А так там есть OnUpClick и OnDownClick есть такие функции как IntToStr и StrToInt
Но тут достаточно IntToStr а значение хранить например в Тэге Эдита....


 
KilkennyCat ©   (2008-09-17 23:37) [2]

В обработчике клика проверяем Button на соответствие TUDBtnType = (btNext, btPrev), в зависимости от результата делаем Inc(x) или Dec(x) и отображаем edit1.text := inttostr(x);


 
KilkennyCat ©   (2008-09-17 23:40) [3]

хе... извиняюсь, я перепутал с апдауном :)


 
{RASkov} ©   (2008-09-17 23:41) [4]

И вот ведь найдут ведь себе геморой-то....
Из кучи готовых решений выберут самое не подходящее... как например в Мемо цветные строки или связку спинбутон и эдит :)


 
SpinButton   (2008-09-17 23:43) [5]

Да, нашёл TUpDown, но он цепляется с Edit, но не цепляется с DBEdit, почему? И как их можно соединить?


 
KilkennyCat ©   (2008-09-17 23:45) [6]

ручками,например. как я написал выше.

Оффтоп: блин, вот я всегда считал, что работа с DB - это предполагает, что все остальное уже известно...


 
KilkennyCat ©   (2008-09-17 23:47) [7]

А если спидбатон "цепляет", то что тогда от него так сразу-то отказаться-то? Raskov ведь дал ответ.


 
{RASkov} ©   (2008-09-17 23:48) [8]

> [5] SpinButton   (17.09.08 23:43)

> ручками,например. как я написал выше.

Только не совсем так, но ты сам виноват, задав так вопрос.
Тебе нужно не с (Дб)Эдитами оперировать, а с данными датасета....


 
{RASkov} ©   (2008-09-17 23:50) [9]

> > ручками,например. как я написал выше.
>
> Только не совсем так, но ты сам виноват, задав так вопрос.

Гы... не я, а [2] :)
Цитата у меня вышла не удачно :(


 
SpinButton   (2008-09-17 23:50) [10]

потому что DBEdit привязан к таблице и по изменении значения в DBEdit, меняется значение в таблице, если сделать изменение по SpinButton, то значение будет меняться в DBEdit, но не в таблице, а надо чтобы и в таблице тоже, видимо при данном способе реализации, который пердложил Raskov не происходит тех обработчиков событий, которые происходят при прямом скажем вбивании значения в DBEdit.


 
{RASkov} ©   (2008-09-17 23:52) [11]

> [10] SpinButton   (17.09.08 23:50)

Да не нужны тебе эдиты... они "только" для визуализации данных....
Тебе подойдет любой компонент.... хоть просто TButton только работай с данными в датасете напрямую, а не через Эдиты...


 
{RASkov} ©   (2008-09-17 23:54) [12]

Например:
procedure TForm1.SpinButton1UpClick(Sender: TObject);
begin
 DataSet.Edit;
 DataSetIntPole.Value:= DataSetIntPole.Value + 1;
 DataSet.Post;
end;

procedure TForm1.SpinButton1DownClick(Sender: TObject);
begin
 DataSet.Edit;
 DataSetIntPole.Value:= DataSetIntPole.Value - 1;
 DataSet.Post;
end;


 
SpinButton   (2008-09-18 00:04) [13]

У компонента DataSource нет DataSetIntPole
Пишу:
DataModele2.DataSource.DataSet.Edit;
DataModele2.DataSource.DataSetIntPole.Value:= DataSetIntPole.Value + 1;
DataModele2.DataSet.Post;

Выводит ошибку на DataModele2.DataSource.DataSetIntPole.Value:= DataSetIntPole.Value + 1; - нету DataSetIntPole


 
KilkennyCat ©   (2008-09-18 00:06) [14]


> {RASkov}

Ну, что, наизобретал новых терминов? :)


 
{RASkov} ©   (2008-09-18 00:09) [15]

> [13] SpinButton   (18.09.08 00:04)

:)
Конечно нет... Это я его придумал, а точнее ты)
Ищи у себя как он там называется)
Поле, которое связано с ДБЭдитом, в котором тебе хочется менять значения....
Если он у тебя не присутствует в паблишед формы, то как-нибудь так FieldByName или еще как-нибудь так....


 
{RASkov} ©   (2008-09-18 00:10) [16]

> [14] KilkennyCat ©   (18.09.08 00:06)

:) Да уж...) Ничё, прорвёмся)


 
{RASkov} ©   (2008-09-18 00:12) [17]

> [14] KilkennyCat ©   (18.09.08 00:06)

И что самое интересно, так это то, как он нашел и добрался до действительного значения(свойства) DataSet :)))


 
SpinButton   (2008-09-18 00:14) [18]

Всё, сделал с SpinEdit как надо и значения в базе изменяет, спасибо большое


 
{RASkov} ©   (2008-09-18 00:16) [19]

> [13] SpinButton   (18.09.08 00:04)
> У компонента DataSource нет DataSetIntPole

Интересно, а что тебя подвигло искать это "все дело" именно у DataSource ?
Этж просто компонент связи, у него вообще практически ничего нет :)

> [18] SpinButton   (18.09.08 00:14)

Фух... :)


 
Германн ©   (2008-09-18 00:36) [20]

Не ну. А на кой фиг нужен такой компонент? Изменять значение поля в базе на +1 или -1.
Неисповедимы твои пути, господь! (Или это проделки Сатаны? :)


 
{RASkov} ©   (2008-09-18 00:43) [21]

> Изменять значение поля в базе на +1 или -1.

:)

> А на кой фиг нужен такой компонент?

Действительно...)

Кстати, если нажать на спинбутон и держать, то событие наверняка будет генерироваться одно за другим.... ужасно :) ....постоянная смена состояния датасета....


 
{RASkov} ©   (2008-09-18 00:49) [22]

Автор, замени ДБЭдит обычным, "прикрути" к нему ТАпДаун, а в базу заноси при окончательном решении сколько нужно сделать +(-)1 для значения, т.е. после ввода его полностью... Может быть на ОнЭксит или еще как... не забудь про то, что ОнЭксит может и не произойти, ну не будет пользователь фокус убирать....


 
Германн ©   (2008-09-18 00:57) [23]


> Кстати, если нажать на спинбутон и держать, то событие наверняка
> будет генерироваться одно за другим.... ужасно :) ....постоянная
> смена состояния датасета....
>

Вот и я об том же. :)
> {RASkov} ©   (18.09.08 00:49) [22]
>
> Автор, замени ДБЭдит обычным, "прикрути" к нему ТАпДаун,
>  а в базу заноси при окончательном решении сколько нужно
> сделать +(-)1 для значения, т.е. после ввода его полностью.
>

Да и это на фиг. Если нужно менять значение поля строго  на единицу, то не надо давать пользователю возможность сделать неправильный ввод. А если не надо, обычный DBEdit решит все проблемы.



Страницы: 1 вся ветка

Текущий архив: 2008.10.26;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.022 c
2-1221643925
Андрей_1
2008-09-17 13:32
2008.10.26
Нажатие Bitbtn с клавиатуры


15-1220435620
diiimmmmaaaaa
2008-09-03 13:53
2008.10.26
ICQ клиент (выбрать)


15-1220537463
Leonid Troyanovsky
2008-09-04 18:11
2008.10.26
Google теперь не хранит кэши?


2-1221641760
Vitaliy_____
2008-09-17 12:56
2008.10.26
Синхронизация прокрутки


2-1221812490
Alex86
2008-09-19 12:21
2008.10.26
Вложенный запрос