Непонятки с TDbf

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Непонятки с TDbf

Сообщение vitaly_l » 17.01.2017 22:27:51

arriah писал(а):Сейчас я его поместил в событие OnAfterCreated хромиума, и все заработало как надо...
А вот в чем природа такого поведения понять не могу. Опой чую что косяк в TChromium...

Я тоже долго это пытался понять, но в итоге пришёл к выводу что, косяка как такового нет, а наоборот: простая, последовательность инициализации. И постольку поскольку, что-то не успевает инициализироваться, то соответственно другое, что-то, ещё не может работать. И последовательность, инициализации, лежащих на форме компонентов в onCreate - не оговаривается. Дальше сами, т.к. это уже не мой и более низкий уровень.

Добавлено спустя 3 минуты 15 секунд:
Соответственно, Ваш код работает, но в какой-то момент МОЖЕТ перестать работать т.к. вы положили код в "он-после" другого компонента (OnAfterCreated хромиума)... хотя и не факт, что всё рухнет, при редактировании компонентов формы.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Непонятки с TDbf

Сообщение pupsik » 18.01.2017 00:21:02

Но как? Но почему? Ведья просто перенес кусок кода :) Удалил дбгрид, поставил его заново - через кнопку все заработало...
Во..о бубном играете :)
Код проекта в студию, а не кусочками "играть". А то начиналось с дбф, а продолжилось: виноват хромиум...
Или сами пересмотрите логику программы....

п.с.
vitaly_l косяки есть но не всегда видны.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Непонятки с TDbf

Сообщение vitaly_l » 18.01.2017 10:47:32

pupsik писал(а):косяки есть но не всегда видны.

Не, здесь не косяк, а именно: последовательность инициализации.
( описанный, ТС: "глюк" - очень часто возникает и у меня тоже ).
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Непонятки с TDbf

Сообщение pupsik » 18.01.2017 11:15:17

vitaly_l по куску кода я вижу парочку косячков. Плюс по описанию еще есть. И кто его знает как накосячено в самом проекте.
А последовательность инициализации. - не из этой оперы.
Поэтому: или сам проект, или проект с глюком.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Непонятки с TDbf

Сообщение vitaly_l » 18.01.2017 11:19:28

pupsik писал(а):по куску кода я вижу парочку косячков. Плюс по описанию еще есть. И кто его знает как накосячено в самом проекте.

Ну тогда, только: код проекта - сможет пролить свет! ( :roll: было-бы познавательно узнать истину :roll: )

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Непонятки с TDbf

Сообщение arriah » 25.01.2017 01:04:42

vitaly_l писал(а):Ну тогда, только: код проекта - сможет пролить свет! ( было-бы познавательно узнать истину )

Да нет кода проекта как такового.

Самое простое, визуальные компонеты на форме (дбгрид, хромиум, кнопка "Загрузка")
Открытие/проверка файла БД в событии OnСlick на кнопке (эта кнопка больше ничего не делает, планировалось что по ней будет заполнятся БД).
Далее переносим код Открытия/Проверки в событие OnCreat формы - получаем екзепшн. Удаляем дбгрид, ставим заново - все работает.

Чистый проект: На форме только хромиум, в событии OnCreate формы - код проверки/открытия файла БД - при запуске ошибка. Удаляем с формы хромиум - все ок.

Проверил несколько раз, так что подобный чистый проект создать несложно.
Может быть у меня только так, можно грешить на винду 10-ку, под другими версиями не пробовал, может система "засрана", ибо экспериментов в ней хватает. Может в лазаре чего-то лишнее...

Поствлю в виртуалку чистую винду, лазарь, проверю еще там...

Вобщем весь проект сводится к тому, чтобы забрать несколько рсс лент с определенных сайтов.

Да, согласен, можно было распрасить XML, загнать в TreeView. Но возник вопрос в том, чтобы не подгружать уже полученные публикации. Вобщем решил их загонять в локальную БД в dbf, записей мало, он как раз подходит под мои нужды.

Можно было бы использовать и HTTPSend, но он получит только "рыбу" HTML, а мне нужно чтобы отработали все скрипты на странице, поэтому использую хромиум - когда он загружает нужную страницу, отрабатывают скрипты - я забираю исходник и уже над ним делаю то что мне надо.

Да и дбгрид видуально удобнее для конечного пользователя (заказчика), ему надо видеть в таблице даду, название публикации и линк. Дерево не подходит, ибо приходится втаком случае разворачивать ветку, клацать на ссылку, чтобы она открылась в браузере - с гридом удобнее, нажав на строку загружается публикация, и сразу можно получить доступ к дате, названию и другим полям...

вобщем вот такой вот проект
arriah
новенький
 
Сообщения: 94
Зарегистрирован: 29.07.2015 16:42:35

Re: Непонятки с TDbf

Сообщение vitaly_l » 25.01.2017 08:22:08

arriah писал(а):Проверил несколько раз, так что подобный чистый проект создать несложно.

Если Вы хотите чтобы Вам помогли, выложите свою заготовку в приложении. Тут много хороших программистов, если кто-то увидит ошибку, то укажет Вам на неё, а гадать на кофейной гуще - сложно. Вы так положили на форму, а мы эдак. У нас работает, а у Вас нет. Бородатый Пупсик - прав, с кодом заготовки будет легче найти причину.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Пред.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29

Рейтинг@Mail.ru