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

Вниз

Снятие выделения строк TDBGrid   Найти похожие ветки 

 
TDBGrid   (2008-01-07 17:40) [0]

Как можно снять выделение строк у компонента TDBGrid чтобы не указывало ни на одну строку...


 
{RASkov} ©   (2008-01-07 18:33) [1]

> [0] TDBGrid   (07.01.08 17:40)

Dataset закрыть...
Фокус с дбгрида убрать...
OnDrawDataCell....
???
Выбрал? Нет, вопрос поточнее задай....


 
{RASkov} ©   (2008-01-07 18:34) [2]

Ой..... это ж "Базы".... куда я залез :( Сорри....


 
Johnmen ©   (2008-01-07 19:01) [3]

Как поставил, так и снимай.


 
TDBGrid   (2008-01-07 20:59) [4]

Johnmen, поставил просто щелчком мышки по строке, обратным щелчком не снимается, курсор указывает всё равно на строку, а надо чтобы не указывал ни на одну...


 
Германн ©   (2008-01-07 21:01) [5]


> курсор указывает всё равно на строку

Какой курсор?


 
TDBGrid   (2008-01-07 21:24) [6]

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


 
Германн ©   (2008-01-07 22:13) [7]


> то слева появляется значёк - треугольни

Этот значек называется Indicator. Выключи в Options флаг dgIndicator. Но строка все равно останется выделенной т.к. в Датасете все равно какая-то запись всегда выбрана.


 
Vadim.Spb   (2008-01-08 00:35) [8]


> Выключи в Options флаг dgIndicator. Но строка все равно
> останется выделенной

Правильно, выключи. Строку тоже можно сделать невыделенной:
DBGrid.SelectedRows.Clear;
SelectedRows - коллекция выделенных строк TBookmarkList.


 
TDBGrid   (2008-01-08 00:57) [9]

DBGrid.SelectedRows.Clear; - выделение строки снимается визуально, но привязка по этой строке с другой таблицей всё равно остаётся, значит в памяти, она всё равно выделена. А мне надо, чтобы она вообще не была выделена и привязка с другой таблицей исчезла, как её нет, до того, как щёлкнуть по одной из строк, при запуске программы, нет никакой привязки, значит как-то это можно сделать...


 
Vadim.Spb   (2008-01-08 01:17) [10]

Dataset.Close


 
Германн ©   (2008-01-08 01:28) [11]


> А мне надо, чтобы она вообще не была выделена и привязка
> с другой таблицей исчезла, как её нет, до того, как щёлкнуть
> по одной из строк, при запуске программы, нет никакой привязки,
>  значит как-то это можно сделать...

А что это за "привязка", которой нет" при старте программы и которая появляется после щелчка?


 
TDBGrid   (2008-01-08 01:34) [12]

Привязка по первичному ключу одной таблицы и какому-то полю другой таблицы. Через свойства MasterSours - указывает имя связываемой таблицы (TDateSourse с которым связана таблица) и MasterFields в редакторе которого указывается связь первичного ключа одной таблицы и поля другой.
При запуске привязка не активна, пока не щёлкнуть по какой-то строке, а вот как это выделение потом убрать, чтобы опять просмотреть все записи в таблице, они же пропадают, так как выбираются только те, которые совпадают по заданной привязке (условию).


 
Vadim.Spb   (2008-01-08 01:40) [13]


> При запуске привязка не активна

Да ладно :-))
Просто автор не знает, что если есть НД, то курсор будет всегда находится на какой-либо записи. Нет НД - нет курсора.
Визуально можно пошаманить и скрыть выделение SelectedRows, но не более.


 
TDBGrid   (2008-01-08 01:44) [14]

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


 
Vadim.Spb   (2008-01-08 01:46) [15]

1. Выгрузить НД (просто и быстро)
2. Загадать желание на Новый Год (тоже просто, но долго ждать)


 
Vadim.Spb   (2008-01-08 01:48) [16]

А вообще, возникновение данной идеи вообще - следствие неправильного алгоритма программы, имхо.


 
TDBGrid   (2008-01-08 01:49) [17]

Извиняюсь за глупый вопрос, но что такое НД?


 
Vadim.Spb   (2008-01-08 01:52) [18]

набор данных


 
Германн ©   (2008-01-08 01:52) [19]


> TDBGrid   (08.01.08 01:49) [17]
>
> Извиняюсь за глупый вопрос, но что такое НД?
>

Набор Данных. Он же TDataSet.


> TDBGrid   (08.01.08 01:44) [14]
>
> Извиняюсь, действительно при запуске привязка тоже активна,
>  не усмотрел, но как можно сделать чтобы она таковой не
> была, должен же быть способ... И не визуально, а реально.
>

Нет такого способа.


 
TDBGrid   (2008-01-08 01:54) [20]

Но если я его выгружу, то смысл программы теряется...


 
Vadim.Spb   (2008-01-08 01:54) [21]

Так расскажи нам смысл. Или это секрет?


 
TDBGrid   (2008-01-08 01:55) [22]

Жаль что нет, ладно, буду делать как-нибудь ещё, спасибо за советы.


 
Германн ©   (2008-01-08 01:55) [23]


> Германн ©   (08.01.08 01:52) [19]
>
>

Хотя нет. Способ есть. "Отвязать" одну таблицу от другой. MasterSource:="";
Сам не проверял. Не знаю поможет ли именно тебе.


 
Vadim.Spb   (2008-01-08 01:57) [24]

Нет, не поможет.


 
TDBGrid   (2008-01-08 01:59) [25]

Я вообще хотел чтобы у меня была одна таблица только для чтения, но с возможностью выбора строк, по этой строке, если она выбрана во второй таблице появляется определённая запись, например совпадение по полям ID, но чтобы была какая-нибудь кнопочка, которая закроет эту выборку и чтобы в моей второй таблице вновь появились все записи. Добавлять можно записи только во вторую таблицу, удалять и редактировать, при сохранении, они все автоматом чтобы переносились в первую. А при выборе в первой определённой записи, как я уже написал, во второй появлялась тоже опред. запись. Но вот закрыть увы нельзя... А так всё это можно было бы реализовать.


 
turbouser ©   (2008-01-08 02:02) [26]


> TDBGrid   (08.01.08 01:59) [25]
>
> Я вообще хотел чтобы у меня была одна таблица только для
> чтения,

DBGrid.ReadOnly:=true и все.

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

Вот этого я не понял :(


 
Vadim.Spb   (2008-01-08 02:04) [27]

Я тоже не понял мысли ....
Приведи пример таблиц и все станет ясно.


 
TDBGrid   (2008-01-08 02:07) [28]

Ну, то есть я редактирую только одну таблицу, назову её B, и после того, как запомнил состояние, нажимаю на опред. кнопочку и все записи из этой таблицы B переносятся в другую таблицу - A. А эта таблица у меня служит только для чтения, там я не могу редактировать записи, то есть если я удалю запись в таблице B, то она удалится и в таблице A, но вот при выборе строки в таблице A происходит выборка записи из таблицы B, и уже показывает не все записи в ней, а опред., попадающие под условие. Но мне нужно продолжить заполнение этой таблицы и видеть все записи, поэтому надо как-то программно отцепить привязку с таблицей A, но при этом она должна остаться открытой для чтения.


 
TDBGrid   (2008-01-08 02:10) [29]

Ну, например таблица Clients и Numers. Clients хранит записи о клиентах определённого заведения, а Numers хранит информацию о комнатах в этих заведениях. И в таблице Clients есть поле номера комнаты, которое в таблице Numers является первичным ключом.


 
TDBGrid   (2008-01-08 02:12) [30]

пример не тот, извиняюсь, это я о другом сейчас ещё парюсь.
Суть в том, что есть две таблицы, одна хранит полную информацию о персонале заведения, а другая краткую информацию. Ту таблицу, которая хранит полную информацию редактировать можно, а ту, которая краткую - нельзя, она получается из той, в которой полная информация.


 
Vadim.Spb   (2008-01-08 02:12) [31]

Ты же говорил, что у тебя мастер-детайл, так зачем что-то переносить из В в А?


 
turbouser ©   (2008-01-08 02:16) [32]


> TDBGrid   (08.01.08 02:12) [30]

Мда... Рекурсия какая-то...


 
TDBGrid   (2008-01-08 02:18) [33]

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


 
Vadim.Spb   (2008-01-08 02:21) [34]

Приведи конкретный пример таблиц с данными и результатом действий. Иначе тебя никто не поймет.


 
TDBGrid   (2008-01-08 02:25) [35]

Таблица хранящая полную информацию о персонале:
object Full_PersonalTBN: TFloatField
 FieldName = "TBN"
 Required = True
end
object Full_PersonalFam: TStringField
 FieldName = "Fam"
end
object Full_PersonalImya: TStringField
 FieldName = "Imya"
end
object Full_PersonalOtch: TStringField
 FieldName = "Otch"
end
object Full_PersonalDolzh: TStringField
 FieldName = "Dolzh"
 Required = True
end
object Full_PersonalPasp: TStringField
 FieldName = "Pasp"
 Required = True
end
object Full_PersonalINN: TStringField
 FieldName = "INN"
 Required = True
end
object Full_PersonalSS: TStringField
 FieldName = "SS"
end
object Full_PersonalTel: TFloatField
 FieldName = "Tel"
end
object Full_PersonalDateprin: TStringField
 FieldName = "Dateprin"
end
object Full_PersonalOklad: TCurrencyField
 FieldName = "Oklad"
end
Таблица хранящая краткую информацию о персонале:
object PersonalTBN: TFloatField
 FieldName = "TBN"
 Required = True
end
object PersonalDolzh: TStringField
 FieldName = "Dolzh"
 Size = 40
end
object PersonalFamil: TStringField
 FieldName = "Famil"
end
object PersonalImya: TStringField
 FieldName = "Imya"
end
object PersonalOtch: TStringField
 FieldName = "Otch"
end
object PersonalTel: TIntegerField
 FieldName = "Tel"
end


 
Германн ©   (2008-01-08 02:27) [36]


> пример не тот, извиняюсь, это я о другом сейчас ещё парюсь.

Ну тогда парься сам.
Отвечать на конкретные вопросы по конкретным задачам - это пожалуйста. А телепаты живут на других форумах.


 
TDBGrid   (2008-01-08 02:28) [37]

Результат действий в том, что все поля столбцов: Dolzh, Fam, Imya, Otch и Tel копируютмя из первой таблицы во вторую. А по выборе поля в первой таблице происходит выборка во второй.


 
turbouser ©   (2008-01-08 02:29) [38]


> TDBGrid   (08.01.08 02:25) [35]

Зачем в таком случае 2 таблицы? Если вторая - это половина первой??


 
TDBGrid   (2008-01-08 02:29) [39]

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


 
TDBGrid   (2008-01-08 02:32) [40]

turbouser, я хочу чтобы во второй таблице у меня показывалась краткая информация о персонале и чтобы при выборе кого-либо из этого персонала, у меня в первой таблице появлялась запись об этом персонале, ну, чтобы пользователь не видел всю инфу (подробную) обо всём персонале, а только краткую.


 
Vadim.Spb   (2008-01-08 02:32) [41]

И где здесь мастер-дитейл?


 
TDBGrid   (2008-01-08 02:34) [42]

Причём тут вообще мастер-дитейл, я про него даже не писал...


 
Vadim.Spb   (2008-01-08 02:37) [43]

Начинаю становиться телепатом:
- д.б таблица А с ФИО персонала и id.
- далее подчиненная таблица В в которой есть расширенные данные о персонале. В подчинена А.
- далее подчиненная таблица С с краткими данными персонала. С подчинена А.
Таб. С можно редактировать и она доступна юзеру. Изменения в С отображаются в НД таб. В.
Похоже?


 
Vadim.Spb   (2008-01-08 02:39) [44]


> Привязка по первичному ключу одной таблицы и какому-то полю
> другой таблицы. Через свойства MasterSours - указывает имя
> связываемой таблицы (TDateSourse с которым связана таблица)
> и MasterFields в редакторе которого указывается связь первичного
> ключа одной таблицы и поля другой.

Это о чем?


 
TDBGrid   (2008-01-08 02:47) [45]

Это привязка между таблицами, как раз для того, чтобы при нажатии на строке первой таблицы, появлялась строка с полной информацие во второй таблице. Что не понятного?


 
Vadim.Spb   (2008-01-08 02:52) [46]


> Причём тут вообще мастер-дитейл, я про него даже не писал.
> ..


> Это привязка между таблицами, как раз для того, чтобы при
> нажатии на строке первой таблицы, появлялась строка с полной
> информацие во второй таблице. Что не понятного?

Будь последователен ...


 
TDBGrid   (2008-01-08 02:53) [47]

Так эта привязка и называется мастер-дитейл? Просто я не знаю что это такое, ведь это ты его так назвал, не я... Теперь буду знать.


 
turbouser ©   (2008-01-08 02:55) [48]


> TDBGrid   (08.01.08 02:47) [45]

Не надо 2 таблицы. Достаточно одной с полной информацией.
Надо понимать, что с SQL автор не знаком...

> TDBGrid   (08.01.08 02:53) [47]
>
> Так эта привязка и называется мастер-дитейл?

Да :)


 
Vadim.Spb   (2008-01-08 03:06) [49]


> Не надо 2 таблицы. Достаточно одной с полной информацией.

Да и, судя по всему - 2 НД.


 
Плохиш ©   (2008-01-08 11:05) [50]


> TDBGrid  

Правда веришь, что форумы существуют для обучения лентяев основам?



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

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

Наверх




Память: 0.59 MB
Время: 0.021 c
2-1199456039
namco
2008-01-04 17:13
2008.02.03
txt в DBGRID


15-1198693128
Terc
2007-12-26 21:18
2008.02.03
Кто шарит в Lazarus


15-1199182043
palva
2008-01-01 13:07
2008.02.03
Директива #import Borland C++ 5.5.1


2-1200214983
{ент
2008-01-13 12:03
2008.02.03
Как создать форму в RunTime


3-1190719104
oleg_v
2007-09-25 15:18
2008.02.03
DBF - как полностью удалить запись из таблицы