powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / D5 -> D7 OLEVariant
19 сообщений из 19, страница 1 из 1
D5 -> D7 OLEVariant
    #39695133
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кусок унаследованного кода.
Под D5 проблем не наблюдается.
Под D7 стабильный Access Violation.
Тупой, граблей не вижу...
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
function GetSheetSize(const aXLSheet: OLEVariant): TPoint;
var
  aRange: OLEVariant;
  aFind: OLEVariant;
  aX, aY: integer;
begin
  aSheet.Activate;
  aRange := aSheet.UsedRange;
  aX := aRange.Columns.Count;
  aY := aRange.Rows.Count;
  aFind := NULL;
  aFind := aSheet.Columns[1].Find(
    What := 'TOTAL',
    LookAt := xlWhole,
    LookIn := xlFormulas,
    MatchCase := True,
    SearchOrder := xlByColumns);
  if not VarIsEmpty(aFind) and not VarIsNull(aFind) then
    aY := aFind.Row; // Access Violation
  Result := Types.Point(aX, aY);
end;


поднимите мне веки
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39695140
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Read или Write?
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39695144
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
29.08.2018 17:28, _Vasilisk_ пишет:
> Read или Write?

что?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39695151
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то недавно был такой вопрос, что метод Find, если не нашел ничего, возвращает некий спец объект
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39695154
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий> Read или Write?

что?AV Read или AV Write?

Вот 21521656 и ниже пару сообщений
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39695173
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
29.08.2018 17:48, _Vasilisk_ пишет:

> AV Read или AV Write?

Access violation at address 004BD1C7 in module 'тра-та-та.exe'.
Read of address 00000000

> Вот http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&msg=21521656 и ниже пару сообщений

Воткнул после поиска ShowMessage(VarTypeAsText(VarType(aFind)));[b]
Получил [b]'Dispatch'


Поискал в Инетах на предмет этого самого Nothing, о котором ты там упоминал.
Нашел https://stackoverflow.com/questions/577894/checking-for-the-variant-value-nothing

Оказывается Nothing это VarIsClear().

мля...
нет слов.

Воткнул. Работает!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39695175
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийОказывается Nothing это VarIsClear().Любопытно. Не знал. Заглянул в реализацию

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
function VarIsClear(const V: Variant): Boolean;
var
  LHandler: TCustomVariantType;
  LVarData: TVarData;
begin
  LVarData := FindVarData(V)^;
  with LVarData do
    if VType < CFirstUserType then
      Result := (VType = varEmpty) or
                (((VType = varDispatch) or (VType = varUnknown)) and
                  (VDispatch = nil))
    else if FindCustomVariantType(VType, LHandler) then
      Result := LHandler.IsClear(LVarData)
    else
      Result := False;
end;

Т.е. получается, что Nothing это nil, упакованный в varDispatch
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39695184
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
29.08.2018 18:22, _Vasilisk_ пишет:
> Т.е. получается, что Nothing это nil, упакованный в varDispatch

Угу.
причем в D5 этой функции нет, обходится одной VarIsEmpty().
нэ мала баба клопоту... (С)
придётся писать обёртку с $IFDEF'ами для компиляции под D5 и D7.

ненавижу OLE, late binding, COM/DCOM и ActiveX!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39695754
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийпридётся писать обёртку с $IFDEF'ами для компиляции под D5 и D7.

Матерь божья...
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39695818
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Valery_BМимопроходящийпридётся писать обёртку с $IFDEF'ами для компиляции под D5 и D7.

Матерь божья...
ты, наверное, думал, что все поголовно должны использовать Delphi Tokyo ?
Так вот нет
Огромное количество проектов используют старые версии Дельфей
и чувствуют себя ну совершенно нормально
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39695829
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какашки мамонтов имеют право на существование! Но вот что-то новое создавать на этом - увольте, суицидом попахивает...
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39695832
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
white_niggerКакашки мамонтов имеют право на существование! Но вот что-то новое создавать на этом - увольте, суицидом попахивает...
да-да ))) нужны генерики !
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39695834
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorwhite_niggerКакашки мамонтов имеют право на существование! Но вот что-то новое создавать на этом - увольте, суицидом попахивает...
да-да ))) нужны генерики !
Это точно!
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39695914
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatdefecatorпропущено...

да-да ))) нужны генерики !
Это точно!Лямбды новомодные забыли и управляемый байт-код.
Тут-то про отладчики забудут и станут бить железных инженеров (типа, производителей железа и иже)
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39696002
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorОгромное количество проектов используют старые версии Дельфей

Это из того, что никакой реальной совместимости между Дельфями нет
Совместимы только проекты вида TForm1.Button1Click

defecatorи чувствуют себя ну совершенно нормально
А как себя чувствуют разработчики, поддерживающие их ?)
Наверное, когда смотрят на Генерики думают о смысле жизни.
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39696008
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Valery_Bdefecatorи чувствуют себя ну совершенно нормально
А как себя чувствуют разработчики, поддерживающие их ?)
Наверное, когда смотрят на Генерики думают о смысле жизни.
Вот только обобщать не надо
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39696422
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Снобируйте сколько угодно, но как минимум PByte pointer math и Exit(Value) очень сильно не хватает в Д7. А есть еще удобнейшее сворачивание кода.
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39696463
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Василий 2Снобируйте сколько угодно, но как минимум PByte pointer math и Exit(Value) очень сильно не хватает в Д7. А есть еще удобнейшее сворачивание кода.
cnPack установи, и будет у тебя сворачивание кода
остальное, что ты написал, от лукавого
...
Рейтинг: 0 / 0
D5 -> D7 OLEVariant
    #39696464
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorВасилий 2Снобируйте сколько угодно, но как минимум PByte pointer math и Exit(Value) очень сильно не хватает в Д7. А есть еще удобнейшее сворачивание кода.
cnPack установи, и будет у тебя сворачивание кода
остальное, что ты написал, от лукавого
Не, не будет сворачивания. По остальным пунктам без возражений.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / D5 -> D7 OLEVariant
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]