Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пропадает полоса прокрутки Dbgrid [D7, Paradox]


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо