![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пропадает полоса прокрутки Dbgrid [D7, Paradox]
AntonUSAnoV © (2008-01-08 18:22:00)Уважаемые программисты хоть я уже задавал этот вопрос, ответа на него даже коллективным путём мы не нашли, в связи с этим я хотел бы вновь его поднять:
Суть такова: пользователь производит SQL выборку из БД, затем нажимает кнопку все записи, которая устанавливает datasource-dataset в исходное положение, т.е. показывает все записи. И тут в dbgrid у меня почему то пропадает полоса прокрутки(вертикальная), причём пропадает, только если после выборки результат - 1 запись, а если их несколько то соответственно не пропадает.
Наблюдение: после выборки-1 запись - полоса прокрутки тут же пропадает, и при нажатии на кнопку все записи не появляется, а если после выборки- несколько записей, полоса прокрутки не пропадает.
В ходе предыдущих раздумий пришёл к выводу что это проблема отображения DBgrida в виндоус ХП и виста, и связана она со стилями Виндоус, как решить никто не знает, вопрос уже обсуждался на этой ветке под этой же темой
sniknik (2008-01-26 23:57:00) [21]по ссылке, пост Prohodil Mimo © (06.12.07 19:45) [8] второй абзац. сделай такой тест сам. всего по одному, кверик, грид и т.д. только кнопки 2, и их событиях разные запросы на с результатами на 1 и много записей...
без мудрежа со сменой датасета, у невидимых гридов и т.д. (того что ты выдаешь за код), т.е. сделай упрощенную модель.
глюк есть?
ну вот ты и ответил на свой же вопрос, в чем дело.
> в Гриде, в Query ? или глубже ...?
при чем сдесь кстати Query, если я вижу в [14] использования только table? (Query1 не при делах, ну закрыли его, а в другом куске в него внесли какието слова... и как это связано то?)
неважно, это риторический вопрос.
важно, что разбирать мы будем не твой "код", его надо переписывать заново с 0, а получившуюся модель.
там по идее не больше 20-30 строк должно получится, во всем модуле (половина автоматом генериться). вот его ты и выложишь сюда полностью (а не свой, огрызками).
иначе обсуждения не получится.
AntonUSAnoV (2008-01-26 22:53:00) [22]И ещё : через раз полоса прокрутки таки появляется: т.е.
1)поиск - результат 1 запись - все записи - нет полосы,
2)поиск - результат 1 запись - все записи - есть полоса
AntonUSAnoV (2008-01-26 22:32:00) [23]
procedure TForm1.BitBtn1Click(Sender: TObject);// это кнопка "Все записи"
begin
poisk.QUERY1.Close;
if dbgrid1.Visible=true then begin
FORM1.DataSource1.DataSet:=form1.table1;
Table1.Locate('fam',NAME_RES2,[loCaseInsensitive, loPartialKey]);
end;
if dbgrid3.Visible=true then begin
DataSource1.DataSet:=form1.tablesotrudniki;
Tablesotrudniki.Locate('fam',NAME_RES2,[loCaseInsensitive, loPartialKey]);
end;
edit1.Text:=dbedit1.Text+' '+dbedit2.Text+' ' +dbedit3.Text;
if form1.DBEdit4.Text <> '' then
showfoto(form1.DBEdit4.Text)
else form1.image1.Visible:=false;
end;
AntonUSAnoV (2008-01-26 22:31:00) [24]Ну вот , теперь я поменял запрос используя SQL.add(string), всё работает, но проблема с поллосой прокрутки ей же и осталась..
AntonUSAnoV (2008-01-26 22:18:00) [25]Пишет list index out of bounds,
sniknik (2008-01-26 22:07:00) [26]впечатляет...
человек который буквально все делает через задницу... и не понимает, что делает, и учится не хочет.
ладно в принципе понятно зачем делаются переприсваивания датасета у источника, хотя и не одобряю (кривой метод).
а вот присвоение запроса просто "сказка", и в какой книге такой пример взял? (убить авторов)
ты понимаешь что делаешь? или шаманскими методами, скопировал откудато, вставил работает и ладно...
вставь
...
begin
query1.SQL.Clear;
query1.SQL[0]:='select *';
...
и посмотри что будет, и подумай, почему без этого работало, с этим стало ошибочным, и зачем тогда вообще данное присвоение...
видиш, всего кусочек раскрыл а уже глюк нашли (а это несомненно глюк, т.к. если чтото поменять "там" то "здесь" "неизвестно отчего" будет ошибка, и вопрос в форум "на одной машине/проекте работает а на другом тоже самое нет". вот именно так без подробностей "кто виноват Гейтс или борланд?")
"колись" дальше, пока мне не надоело...
AntonUSAnoV (2008-01-26 21:11:00) [27]
// это запрос на выборку
if form1.DataSource1.DataSet=form1.table1 then
begin
query1.SQL[0]:='select *';
query1.SQL[1]:='FROM ":Теннис:players.DB"';
query1.SQL[2]:= 'where';
query1.SQL[3]:= '(fam like "'+familia+'") and';
query1.SQL[4]:= '(name like "'+name+'") and';
query1.SQL[5]:= '(otchestvo like "'+otchestvo+'") and';
query1.SQL[6]:= '(data_rogd like "%'+data_rogd+'%") and';
query1.SQL[7]:= '(razriad like "'+razriad+'") and';
query1.SQL[8]:= '(mesto_uchebi like "%'+mesto_uchebi+'%") and';
query1.SQL[9]:= '(trener like "%'+trener+'%") and';
query1.SQL[10]:= '(pasport like "'+pasport+'") and';
query1.SQL[11]:= '(strahovoe like "'+strahovoe+'") and';
query1.SQL[12]:= '(adress_propiski like "%'+propiska+'%") and';
query1.SQL[13]:= '(best_result like "%'+best_result+'%")';
query1.SQL[14]:= 'order by fam';
end;
query1.Open;
if Query1.RecordCount <> 0 then
begin
form1.DataSource1.DataSet:=Query1;
poisk.Close;
sniknik (2008-01-26 20:35:00) [28]юмора в моих высказываниях сдесь нет. все серьезно. зря восхищаешься.
а чувство такта у меня теряется обычно раньше, сразу, тебе еще повезло, пару раз пытался обьяснить, что надо для решения. третий раз не буду (какой смысл если в ответ идет не инфа а бред?).
хотя и у этого бреда есть положительная сторона, теперь ясно, что автор не мог напороться на системную/... ошибку (то было исключительно у Prohodil Mimo, да и то возможно т.к. не подтверждено), которая мне была бы интересна, а борется исключительно с собственной дуростью... которая думаю всем до фени. (это ж надо, после кучи эксептов делать вывод, что то что получается правильно...)
AntonUSAnoV (2008-01-26 20:04:00) [29]
> sniknik ©
Восхищён Вашим чувствум юмора, равно как и такта...браво...
sniknik (2008-01-26 16:14:00) [30]> имея новые данные:
хм... а че ж тогда ты их не показываешь? (как впрочем и старые)
> так в чём же дело
чем больше читаю твои вопросы(не только этот) тем больше думаю что в ДНК.
AntonUSAnoV (2008-01-26 15:45:00) [31]Итак я хотел бы вернуться к проблеме, имея новые данные: тут вроде говорили что пропадание полосы прокрутки при результате выборки в 1 запись - это нормально, но вот я сам попробовал и обнаружил что на другом ДБГриде даже при результате в 1 запись полоса остаётся. А на другом (с которого начиналось обсуждение - пропадает, и потом уж не возвращается, Сто ещё могу сказать: на форме есть table1, datasource1, dbgrid1, query1. Я делаю SQL выборку с помощью Query, делаю Datasource1.dataset:=query1, и повторюсь если результат - 1 то полоса прокрутки пропадает, далее жму кнопку все записи (dataset:=table1) - не появляется. Так вот : я попробовал вывести результат выборки не в этот Дбгрид, а в другой , на др. форме, поменяв form2.datasource2. dataset:=form1.query1, конечно повалили ошибки из-за ненайденых полей, но кое-что всё-таки вывелось во 2-й Дбгрид, и в нём осталась полоса прокрутки(при результате - 1 запись).. так в чём же дело, в Гриде, в Query ? или глубже ...?
Германн (2008-01-09 02:44:00) [32]
> AntonUSAnoV (08.01.08 20:06) [2]
>
> Спасибо за понимание, прошу прошения за неточность в выражениях.
> ..
>
> Но что конкретно можно ещё добавить к описанной ситуации
> ?,
>
"Белую норвежскую крысу" :)
sniknik (2008-01-08 20:29:00) [33]> Но что конкретно можно ещё добавить к описанной ситуации ?
все! вплоть до примера исходника с базой как в той ветке просили.
должен понимать, что описанная ситуация это не всеобщая проблема, о которой стоит только упомянуть и все поняли о чем. я так вот ни разу не сталкивался, хотя у многих клиентов и XP, и стили и т.д. и запрос с результатом в 1 запись не редкость, а после в больше...
и никто не жаловался. (???) даже намеков на подобное не было (а вообщето радуются, и пытаются в глюки записать даже грамматическую ошибку гденибудь в интерфейсе...)
т.е. у тебя полная монополия на методы получения твоего глюка, и уж постарайся обьяснить так (если не хочеш/не можеш пример), чтобы и мы могли воспроизвести глюк...
если по той ветке не понял, я его так и не воспроизвел, хотя и пытался, предположение было просто "задачкой на логику" по инфе предоставленной Prohodil Mimo. не более. (мог и ошибиться, но вроде подтвердилось)
AntonUSAnoV (2008-01-08 20:08:00) [34]кстати по поводу стилей: это же действительно работает : при изменении на стиль Виндоус 2000 этой проблемы уже не наблюдается, только меры больно уж радикальные..
AntonUSAnoV (2008-01-08 20:06:00) [35]Спасибо за понимание, прошу прошения за неточность в выражениях...
Но что конкретно можно ещё добавить к описанной ситуации ?,
sniknik (2008-01-08 19:11:00) [36]> В ходе предыдущих раздумий пришёл к выводу
прям таки сам, взял, и пришел?
от тебя инфы, об окружении, где запускается, и как это происходит было 0...
догадки о стилях были по чужой инфе, и возможно не связанной с твоей. а просто похожей проблеме.
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1196084789&n=1
> как решить никто не знает
а ктото пытался решить? автор на тему "забил", никакой инфы на доп.вопросы не дал. чего решать проблему которая только у автора и проявляется?
ну да, и еще у одного который сказал что ему пофигу эта проблема. (к тому же возможно из другой области)
и почему вообще ктото должен знать все, по каждому чиху начинающих? почему не решить коллективно (раз сам не можеш?)
почему форум воспринимается как база готовых решений, а не место обсудит/решить проблему с коллегами?
p.s. хочеш чтото решить сам прочитай старую ветку, и сделай выводы. иначе закрою.
(уже могу, как спам. но ладно уж, дубль довольно старый... амнистия за давность)