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

Вниз

Первая видимая запись в TDBStringGrid   Найти похожие ветки 

 
TheEd   (2011-09-10 15:39) [0]

Если говорить о TStringList, то это TopRow. Чего его закрыли в TDBStringGrid? Как определить или изменить первую видимую запись?


 
Inovet ©   (2011-09-10 15:47) [1]

> [0] TheEd   (10.09.11 15:39)
> TDBStringGrid

Это что?
В 100500-й раз - в TDBGrid нет данных.


 
Pushok   (2011-09-10 16:04) [2]

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


 
SQLEX ©   (2011-09-10 16:11) [3]

http://www.gunsmoker.ru/2008/10/x-y-z.html
если это не этот случай :), то можно и так, например, взять данные.

Данные там есть, на самом деле - мы же их видим, у них есть размеры, цвет, Pchar-ный образ в памяти. они же выводятся на экран :)

 TCG = class(TCustomGrid);
var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
begin
  ShowMessage( TCG(dbgrd1).GetEditText(1,1) );

но, как правило, этого не нужно.
в DBGrid работают через его DataSet и никак ииначе.


 
TheEd   (2011-09-10 19:04) [4]

Да речь не о том - данные ДБГрид показывает, но показывает напр. с записи Х по запись Y, при этом RecNo у соответствующего ДатаСета может быть от X до Y.
Требуется же узнать первый отображаемый номер строки, ну или если так правильнее - его ReNo.
Мне это нужно для переопределения вертикального скроллинга, т.е. прокрутить на экран вверх или вниз - а для этого нужно знать что видно и на сколько записей крутить!


 
Inovet ©   (2011-09-10 19:18) [5]

> [4] TheEd   (10.09.11 19:04)
> Мне это нужно для переопределения вертикального скроллинга

Зачем? DBGrid сам всё умеет крутить. А на RecNo сильно не расчитывай. DBGridEh при некоторых нерекомендуемых установках в некоторых Dataset отображает полосу прокрутки в привычном пропорциональном виде, DBGrid не помню.


 
TheEd   (2011-09-10 19:46) [6]


> Зачем?

у меня инерфейс специфический со своими скролбарами.


 
Cobalt ©   (2011-09-12 11:07) [7]

Заставляйте пользователя выделять строку данных, которую необходимо изменить.


 
TheEd   (2011-09-12 22:54) [8]


> Заставляйте пользователя выделять строку данных, которую
> необходимо изменить.

Дык предполагается что юзер должен выбрать одну запись из всех. А если он хочет пролистать на экран, тыкает в кнопку ПэйджАп/Даун и я прокручиваю DBGrid...


 
Германн ©   (2011-09-13 00:19) [9]


> Дык предполагается что юзер должен выбрать одну запись из
> всех.

Ну и пусть юзер выберет сам ту запись, которую надо изменить. При чём тут некий TopRow или DBGrid с вашими самопальными скроллами?

P.S. Опять XYZ? http://www.gunsmoker.ru/2008/10/x-y-z.html


 
TheEd   (2011-09-14 02:05) [10]

to Германн:

> Ну и пусть юзер выберет сам ту запись, которую надо изменить.

Юзер выбирает запись не для того, чтобы менять. Ну типа выбрал из списка свою группу, а на следующей странице мастера в детальной таблице выбирает, к примеру своё фамилиё.

> При чём тут некий TopRow или DBGrid с вашими самопальными
> скроллами?

Повторюсь - интерфейс - спецефический, клавы - нет, мыши - тоже. Юзер бужет тыкать пальцами по тачскрину. Естественно, стандартный скролбокс мелкий и неудобный (я его то реализовал, малость даже растянул, но он растягивается только по одной координате:( ).
И для целей перемотки списка на экран вперёд-назад и нужен свой скролбокс. Писать компонент с нуля можно, но это грабли, шишки и баги (не каждый день визуальные компоненты пишу...) - поэтому пока обошёлся двумя кнопками всерху и снизу скролбокса, квадратными, равными его ширине - задача решается, но скролбокс всё равно выглядит неказисто.
В принципе я смирился с данной темой, буду похоже иммитоировать скролбокс как писал DimaBr из этого поста:
http://delphimaster.net/view/5-1315651190/


 
Inovet ©   (2011-09-14 02:14) [11]

> [10] TheEd   (14.09.11 02:05)
> интерфейс - спецефический, клавы - нет, мыши - тоже.

Так можно же посылать окну сообщения от элементов интерфейса о нажатиях PageUp, PageDown.


 
Германн ©   (2011-09-14 03:23) [12]


> В принципе я смирился с данной темой, буду похоже иммитоировать
> скролбокс как писал DimaBr

Если сможете. :)


 
TheEd   (2011-09-14 03:49) [13]


> Так можно же посылать окну сообщения от элементов интерфейса
> о нажатиях PageUp, PageDown.

Спасибо ! Так в принципе и решил, просто уже принципиально интересно - зачем убирать TopVisibleRow и как его вычислить...

> Если сможете. :)

вопрос только в человеко-часах :)))
зы: задумка есть чтобы не парить моск созданием велосипеда: положу невидимый скробокс, свяжу его с TDBGridEh.VertScrolBar.ExtScrolBar, а сам нарисую какой нужно, при этом параметры буду у невидимого компонента брать и события ему трансферить. Криво но быстро.


 
Anatoly Podgoretsky ©   (2011-09-14 07:44) [14]

> TheEd  (14.09.2011 02:05:10)  [10]

Самоделькин, в планшетах, в ноутбуках и телефонах давно уже реализовали


 
sniknik ©   (2011-09-14 08:15) [15]

> в планшетах, в ноутбуках и телефонах давно уже реализовали
а на ПС разве нет? скролинг пальцем как там не, что иное как начало Drug-а при Drug&Drop, (перемещение мыши с зажатой клавишей, с тачскрином аналогично "мазок" пальцем по экрану). или движение карт при зажатом батоне мышы...
просто они там по своему одно и то же действие обрабатывают.
т.е. ноухау не в новой реализации чего то, а в новом действии у старого события.
в общем то легко можно повторить, теперь когда это уже очевидно для юзера... а вот раньше когда то давно пытался, что то подобное внедрить в одной программе... вызвало у юзеров (и начальства в основном) яростное отторжение.


 
Anatoly Podgoretsky ©   (2011-09-14 08:41) [16]

> sniknik  (14.09.2011 08:15:15)  [15]

Видимо не реализовали, судя по вопросу.

Конечно, ты внедрил, а им монитор протирать


 
sniknik ©   (2011-09-14 09:43) [17]

> Видимо не реализовали, судя по вопросу.
ну, именно в том виде что ему нужно, естественно (а что вообще реализовано в программировании? в нем же результат готовая программа... таких компонент не бывает ;). но "кирпичики" из которых можно построить нужное есть.

> Конечно, ты внедрил, а им монитор протирать
не... ;) тогда тачкринов было мало, я тогда новое действие на мышку (с тачпападом бы конечно работало, если бы был, но не было) пытался "повесить". т.е. если только протирать "изнутри", от курсора. :)

у меня было, в MDI интерфейсе перетаскивание записей между формами, ну вот я и пытался (заколебавшись сам на тестах) "упростить", не "дотаскивать" до конца, а просто "обозначать движение" типа дернул в нужную сторону и отпустил (похоже? по моему да), и запись отправлялась по нему.
особенно удобно было рассортировывать записи (товары) по объектам (весам/группам), типа вокруг списка открыл нужные объекты листаешь его (по названию можно было только визуально определить что куда) и отправляешь в нужную сторону/объект мелкими подергиваниями мыши.
но... начальство не восприняло, типа "а если ошибется?" (ну удалишь что такого?), не донесешь идею до "тупых" юзеров (хотя в основном тупизна в них самих, сейчас бы на ура прошло стоило бы только в сторону "таблеток" кивнуть ;(), и т.д., пришлось убрать.


 
Anatoly Podgoretsky ©   (2011-09-14 09:55) [18]

> sniknik  (14.09.2011 09:43:17)  [17]

Опередил ты свое время :-)


 
sniknik ©   (2011-09-14 10:09) [19]

получается да...
хотя грустно, оценивается не удобство/полезность/функциональность, а "раскрученность"/"разрекламированность" фичи.


 
Inovet ©   (2011-09-14 10:23) [20]

> [16] Anatoly Podgoretsky ©   (14.09.11 08:41)
> Конечно, ты внедрил, а им монитор протирать

Они их не протирают, всегда чёрные от грязи экран залапан жирными руками (сало едят и возят по экрану палцами) и ещё ручками и карандашами поджеркивают на экране, особо продвинутые какими-то чтрашными железяками со скрипом, как стеклорез.


 
Inovet ©   (2011-09-14 10:27) [21]

> [17] sniknik ©   (14.09.11 09:43)
> не "дотаскивать" до конца, а просто "обозначать движение"
> типа дернул в нужную сторону и отпустил

Нифига себе, швырять между окнами совсем не то что пальцами в одном скролить. А если их десять открыто и не вто улетят как потом выковыривать.


 
TheEd   (2011-09-14 11:14) [22]


> Самоделькин, в планшетах, в ноутбуках и телефонах давно
> уже реализовали

это не то и не другое, а типа информационного терминала. Пальцем елозить не каждый юзверь знает, поэтому батоны для них ложу с картинками и/или надписями.
Как показывает практика в баттоны тыкать сегодня умеют даже имбецилы :)
Насчёт сала Inovet в точку попал - засирают часто.


 
sniknik ©   (2011-09-14 11:30) [23]

> Нифига себе, швырять между окнами совсем не то что пальцами в одном скролить.
то же самое, и даже по действиям если тачскрин... т.е. ткнул пальцем, "мазнул" в нужную сторону - "запись ушла". вместо скрола в одном.

> А если их десять открыто и не вто улетят как потом выковыривать.
во первых не десять, максимум 4 (в реале было удобнее на 2-х/3-х).
а во вторых, во во, буквально те же слова... не пробуя, и не работая с этим, сразу "штыки".

и что значит выковыривать? окно перед глазами, 2-4 формы рядом, подцепи ошибочную из соседнего и "толкни назад".
вы вообще с драг & дропом работали? тут/там была вся разница не тащить непосредственно до приемника (четверть экрана) а "двинуть" в сторону (пол сантиметра). с вариантом тачскрина "поскреб" пальцем и перекинул десяток записей... бывает проще чем выделять, и отправлять "кучей", хотя и так можно было.

что такого сложного/ужастного, что даже с примером перед глазами не воспринимается?


 
Inovet ©   (2011-09-14 11:46) [24]

> [23] sniknik ©   (14.09.11 11:30)
> не пробуя, и не работая с этим, сразу "штыки".

Не спорю, может и удобно. Но всё-таки принципиальное резличие между в одном объекте крутнуть отпустить ничего ведь не изменится, и между разными, когда меняется, вроде как хочется уверенности - донёс до места и отпустил. Как оно на практике - надо пробовать, на кошках.


 
sniknik ©   (2011-09-14 12:20) [25]

> вроде как хочется уверенности - донёс до места и отпустил
когда разгребешь за день кодов так 200-300, тупо хочется "попроще", а уверенность она глазами получается.
т.е. 200-300 это на тестах, а в реале оператор может по 8-10 тыс записей в день перекидывать. (в основном конечно группами, а не позаписьно, хотя для групп тот же принцип, и сумме немногим больше тестовых... но все одно мало хорошего, так и накручиваются мышиные километры)

а вообще, спор между "интуитивно понятным" и "удобным после изучения интерфейсом...", и тут "работа мышкой" проигрывает клавиатуре. эээ... ну не везде конечно, но в основном.


 
Inovet ©   (2011-09-14 13:04) [26]

> [25] sniknik ©   (14.09.11 12:20)
> и тут "работа мышкой" проигрывает клавиатуре. эээ... ну не везде конечно, но в основном.

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


 
Anatoly Podgoretsky ©   (2011-09-14 15:12) [27]

> TheEd  (14.09.2011 11:14:22)  [22]

И без надписей могут?


 
TheEd   (2011-09-17 00:25) [28]


> И без надписей могут?

почему бы нет, если рисунок интуитивен? :)



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

Форум: "Начинающим";
Текущий архив: 2011.12.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.072 c
2-1316145462
i2e
2011-09-16 07:57
2011.12.25
Узнать ширину/высоту полосы прокрутки


3-1269323054
Boatswain
2010-03-23 08:44
2011.12.25
Динамически загружаемая dll и MSConnection


2-1315479852
dEN
2011-09-08 15:04
2011.12.25
Удалить определенные символы в строке


15-1315419704
неокубинец
2011-09-07 22:21
2011.12.25
Подскажите по подключению монитора


15-1315315520
Palladin
2011-09-06 17:25
2011.12.25
Ассоциированные с файлом иконки в Vista и Windows 7





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский