Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26069
Рейтинг: 2122
#16: 2009-11-14 21:47:12 ЛС | профиль | цитата
Ravilr, я никак не пойму зачем разграничивать доступ, это же не база, а файл Давай этот вопрос оставим пока на потом
карма: 22

0
Ответов: 4641
Рейтинг: 334
#17: 2009-11-14 21:56:15 ЛС | профиль | цитата
nesco писал(а):
на потом
ок!
nesco писал(а):
зачем разграничивать доступ

читал, что подобный способ (хранилище структурированное) используют ситстемы электронного документооборота и поэтому и возник вопрос т.к там разграничение реализованно. кто куда и зачем....
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Администрация
Ответов: 15294
Рейтинг: 1518
#18: 2009-11-15 21:50:27 ЛС | профиль | цитата
nesco писал(а):
Ну не перевариваю я COM-объекты, слишком там все заморочено, может только для меня, и кому-то их понять легко.

большинство технологий фирмы Microsoft трудно переварить...

nesco писал(а):
По крайней мере, Word2003 пишет *.doc именно в формате SStorage, а не XML.

имеется ввиду формат docx, появившийся в Office 2007

по поводу implements - проверь в FPC 2.2.x - если будет работать нормально, то проще на него переходить сразу, а не думать как обходить очередные грабли
карма: 26
0
Ответов: 4641
Рейтинг: 334
#19: 2009-11-17 21:16:31 ЛС | профиль | цитата
nesco писал(а):
DSKSwitch

под фпц работает "криво"
------------ Дoбавленo в 21.18:
странно. Первый раз компилировал на фпц не пошло. скомпилировал под делфи пошло. Потом опять на фпц все ок.
------------ Дoбавленo в 21.33:
nesco, разбирался с примером и понял что это пример.
Переключился между столами, например на 3-й и захотел выйти из программы переключения столов.
И все приплыл. Пропал стол №1
Поэтому при выходе надо еще на стол №1 переключать наверно.
Но это уже дело частного случая наверно..
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26069
Рейтинг: 2122
#20: 2009-11-17 22:00:49 ЛС | профиль | цитата
Ravilr писал(а):
Поэтому при выходе надо еще на стол №1 переключать наверно

У меня все прекрасно переключает последняя версия. При выходе, она автоматически открывает все приложения на остальных столах. Может, ты обновиться забыл, я ее, дня два, доделывал после первого релиза Только что проверил под FPC, прекрасно работает
карма: 22

0
Ответов: 4641
Рейтинг: 334
#21: 2009-11-17 22:08:24 ЛС | профиль | цитата
nesco писал(а):
Только что проверил под FPC,

под делфи нажимаю выход - ОК!
под fpc нажимаю выход - НЕ OK!
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26069
Рейтинг: 2122
#22: 2009-11-17 22:44:27 ЛС | профиль | цитата
Хммм... Есть такое. Проблема кроется в том, что секция Destroy, почему-то, не вызывается под FPC, в отличии от Delphi (очередной подводный камень FPC).
Единственное, что можно сделать, так это толкьо закрыть по doStopDSKSwitch до выхода. Я переправил пример, можешь проверить, должен работать под FPC, у меня работает
карма: 22

0
Ответов: 4641
Рейтинг: 334
#23: 2009-11-18 08:30:38 ЛС | профиль | цитата
nesco писал(а):
работает

работает. про публикатор не забудь.

карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26069
Рейтинг: 2122
#24: 2009-11-18 08:57:55 ЛС | профиль | цитата
Исправил
карма: 22

0
Администрация
Ответов: 15294
Рейтинг: 1518
#25: 2009-11-18 09:57:57 ЛС | профиль | цитата
nesco писал(а):
Проблема кроется в том, что секция Destroy, почему-то, не вызывается под FPC, в отличии от Delphi

вызывается
карма: 26
0
Разработчик
Ответов: 26069
Рейтинг: 2122
#26: 2009-11-18 12:47:14 ЛС | профиль | цитата
Dilma писал(а):
вызывается

А почему, тогда -- в Delphi я могу переловить дебагером, а в FPC -- нет
Может он вызывается уже при уничтоженных методах. Ну не хочет она вызывать метод закрытия, хоть ты тут умри. На примере это и видно, что не вызывается этот метод из деструктора.
Dilma, подскажи, как лучше реализовать метод закрытия в деструкторе, может, сделать через защищенный метод _onDestroy
В этом мне требуется твоя помощь, лучше примером организации вызова методов перед уничтожением
------------ Дoбавленo в 13.21:
Вот мой вариант реализации. Проверил, работает


   protected
procedure _OnDestroy(Sender:PObj);
public
...
constructor Create;
...
procedure ThiDSKSwitch._onDestroy;
begin
StopDSKSwitch;
HiClass := 0;
inherited;
end;

constructor ThiDSKSwitch.Create;
begin
inherited;
Applet.onDestroy := _onDestroy;
end;
------------ Дoбавленo в 13.36:
Если так пойдет, то я внесу исправления на SVN
карма: 22

0
Администрация
Ответов: 15294
Рейтинг: 1518
#27: 2009-11-18 14:03:00 ЛС | профиль | цитата

Add(MainForm,2953706,21,105)
{
}
Add(DSKSwitch,14897412,63,105)
{
}


#pas
destructor ThiDSKSwitch.Destroy;
begin
_debug('ok');
StopDSKSwitch;
HiClass := 0;
inherited;
end;

при сборке в обоих компиляторах перед закрытием формы вижу сообщение с текстом "ok". Доказательство обратного пока приведено не было.

nesco писал(а):
Applet.onDestroy := _onDestroy;

это не верно
карма: 26
0
Ответов: 2125
Рейтинг: 159
#28: 2009-11-18 14:06:44 ЛС | профиль | цитата
В некоторых ОО языках есть такой прикол: в конструкторе и деструкторе виртуальные функции вызываются свои, а не определённые у наследников, поэтому лучше не рассчитывать на это. Из-за этой фичи и появляются виртуальные функции Init и Done, а конструктор и деструктор обычно остаются пустые.
карма: 1

0
Разработчик
Ответов: 26069
Рейтинг: 2122
#29: 2009-11-18 14:20:06 ЛС | профиль | цитата
Dilma писал(а):
при сборке в обоих компиляторах перед закрытием формы вижу сообщение с текстом "ok". Доказательство обратного пока приведено не было

Только что проверил, нет этого события под FPC у меня, хоть ты умри

Вот откомпилированная под FPC с debug моя версия, посмотри, как Не выдается 'ok', или у тебя он выдается
Больше я не знаю, как доказать Видео компиляции и проверки только привести

tsdima писал(а):
Из-за этой фичи и появляются виртуальные функции Init и Done

Хорошо, что для этого есть у нас. На Applet.onDestroy Dilma сказал, что не верно. Что можно подсунуть вместо Applet
карма: 22

0
файлы: 1dskswitch.zip [42.3KB] [281]
Администрация
Ответов: 15294
Рейтинг: 1518
#30: 2009-11-18 14:23:15 ЛС | профиль | цитата
tsdima, такое поведение классифицируется как ошибка компиляции и закладываться на него я бы не стал.
карма: 26
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)