Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.10.26;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.006 c
2-1221822500
burrat
2008-09-19 15:08
2008.10.26
передать данные в другое приложение


15-1220494565
Slider007
2008-09-04 06:16
2008.10.26
С днем рождения ! 4 сентября 2008 четверг


2-1221651678
zabgar
2008-09-17 15:41
2008.10.26
Как работать с Access


2-1221721382
Mahno
2008-09-18 11:03
2008.10.26
Помогите с вычислением


15-1220290532
Простой
2008-09-01 21:35
2008.10.26
ИК датчик движения, контакт GND





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский