Главная страница
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, я хочу чтобы во второй таблице у меня показывалась краткая информация о персонале и чтобы при выборе кого-либо из этого персонала, у меня в первой таблице появлялась запись об этом персонале, ну, чтобы пользователь не видел всю инфу (подробную) обо всём персонале, а только краткую.



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

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

Наверх




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


2-1199972940
AntonUSAnoV
2008-01-10 16:49
2008.02.03
как открыть файл из delphi


2-1199304844
aha
2008-01-02 23:14
2008.02.03
зашился в вычислениях CRC , полистал кучу литературы, пообращался


2-1199569366
петрович07
2008-01-06 00:42
2008.02.03
Двумерный массив,задача


2-1200229743
GhoulMaster
2008-01-13 16:09
2008.02.03
событи принятия сообщени в TTcpServer