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

Вниз

Снятие выделения строк 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.043 c
2-1199438697
man Yurik
2008-01-04 12:24
2008.02.03
Как составить запрос


2-1199519421
Kley
2008-01-05 10:50
2008.02.03
Вывод данных таблицы в QRmemo


2-1199868237
DevilDevil
2008-01-09 11:43
2008.02.03
Почему может возникать неправильная максимизация ?


15-1198421299
общества
2007-12-23 17:48
2008.02.03
ООО, ОАО, ЗАО


15-1198751535
DmitrichJ
2007-12-27 13:32
2008.02.03
Как сделать стартовую страничку в IE





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