Текущий архив: 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, я хочу чтобы во второй таблице у меня показывалась краткая информация о персонале и чтобы при выборе кого-либо из этого персонала, у меня в первой таблице появлялась запись об этом персонале, ну, чтобы пользователь не видел всю инфу (подробную) обо всём персонале, а только краткую.
Страницы: 1 2 вся ветка
Текущий архив: 2008.02.03;
Скачать: CL | DM;
Память: 0.54 MB
Время: 0.042 c