Вверх ↑
Этот топик читают: Гость
Ответов: 57
Рейтинг: 0
#16: 2016-07-21 14:50:37 ЛС | профиль | цитата
Galkov спасибо за поправочку ! теперь всё работает как надо
Если вдруг кому тоже понадобится батон с дудатой ниже файлы в архивчике ...
code_37485.txt
карма: 0

0
файлы: 1code_37485.txt [7.3KB] [366]
Ответов: 9906
Рейтинг: 351
#17: 2016-07-21 14:59:35 ЛС | профиль | цитата
Vaduha писал(а):
Если вдруг кому тоже понадобится батон с дудатой

Вообще-то, я еще сказал, что данные коды использовать нельзя...
А вот как сказать, чтобы ДОШЛО -- не ведаю.

карма: 9

0
Разработчик
Ответов: 25687
Рейтинг: 2088
#18: 2016-07-21 15:56:00 ЛС | профиль | цитата
Galkov писал(а):
А вот как сказать, чтобы ДОШЛО -- не ведаю.

Объяснить "Почему"
карма: 20

0
Ответов: 9906
Рейтинг: 351
#19: 2016-07-21 18:04:47 ЛС | профиль | цитата
А поможет
Тому кто даже до этого вопроса не догадался...

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


------------ Дoбавленo в 18.04:
Делов - на строчку кода... И ту, без ошибок сделать не умеют. Эксперты, блин.
#pas
procedure THIButton._OnClick;
var dt:TData;
begin
dt := ReadData(_data_Empty, _data_Data, @_prop_Data);
_hi_OnEvent(_event_onClick, dt);
end;
  • исправлено
  • карма: 9

    0
    Ответов: 4744
    Рейтинг: 530
    #20: 2016-07-22 05:25:43 ЛС | профиль | цитата
    Galkov писал(а):
    Делов - на строчку кода... И ту, без ошибок сделать не умеют. Эксперты, блин.
    procedure THIButton._OnClick;
    begin
    _hi_OnEvent(_event_onClick, ReadData(_prop_Data, _data_Data));
    end;



    Error: There is no overloaded version of '_hi_OnEvent' that can be called with these argument

    Я тоже был в восторге от этого прикола, посему не стал парится и сделал как работало.
    ------------ Дoбавленo в 05.25:
    Да и быстродействие там не нужно
    карма: 6
    0
    Ответов: 9906
    Рейтинг: 351
    #21: 2016-07-22 09:09:06 ЛС | профиль | цитата
    nesco писал(а):
    Объяснить "Почему"
    Ну попробовал объяснить. Видишь же, что бесполезно:
    andrestudio писал(а):
    и сделал как работало
    Хоть кол на голове теши: ну НЕ ДОХОДИТ, что нельзя использовать неинициализированные данные...
    Просто нельзя.
    Никогда нельзя.


    Блин, развел ты меня на кодинг... Не хотел же
    Очень не хотел...
    Совсем не хотел.
    Ну не напрягает меня некий гипотетический DoData
    карма: 9

    0
    Ответов: 4744
    Рейтинг: 530
    #22: 2016-07-22 10:44:03 ЛС | профиль | цитата
    И что, мой вариант чем не инициализирован
    #pas
    procedure THIButton._OnClick;
    var dt:TData;
    begin
    if Assigned(_data_Data.Event) then
    begin
    dt := ReadData(dt, _data_Data);
    _hi_OnEvent(_event_onClick, dt);
    end else
    _hi_OnEvent_(_event_onClick,_prop_Data);
    end;

    по мне так тот же х.. в другой руке

    карма: 6
    0
    Разработчик
    Ответов: 25687
    Рейтинг: 2088
    #23: 2016-07-22 11:38:44 ЛС | профиль | цитата
    andrestudio писал(а):
    И что, мой вариант чем не инициализирован

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

      dt := ReadData(_prop_Data, _data_Data);

    карма: 20

    0
    Ответов: 4744
    Рейтинг: 530
    #24: 2016-07-22 12:16:40 ЛС | профиль | цитата
    nesco, да мне вАще по барабану кто как и что делает, главное чтобы делали а не стояли на месте, надеюсь теперь позиция моя ясна
    Тут только видать пинать могут, футболисты блин Вот так сами по рукам бьёте а потом сидите в луже лузерам схемки рисуете, заманчивая перспектива не правда ли художники блин
    карма: 6
    0
    Разработчик
    Ответов: 25687
    Рейтинг: 2088
    #25: 2016-07-22 12:23:31 ЛС | профиль | цитата
    andrestudio писал(а):
    главное чтобы делали а не стояли на месте

    Лучше вообще ничего не делать, чем так, как ты делаешь. Я ни одной вещи от тебя до конца сделанной не видел. Везде только поматросил и бросил.
    andrestudio писал(а):
    Вот так сами по рукам бьёте а потом сидите в луже лузерам схемки рисуете, заманчивая перспектива не правда ли

    А потому, что никто не хочет вникать в то, что уже сделано и просят точек всяких и разных на каждый чих

    карма: 20

    0
    Ответов: 4744
    Рейтинг: 530
    #26: 2016-07-22 12:53:43 ЛС | профиль | цитата
    nesco писал(а):
    Лучше вообще ничего не делать, чем так, как ты делаешь.

    ОК. Замётано
    ------------ Дoбавленo в 12.53:
    А теперь отгадай с трёх раз кто от этого выиграл
    карма: 6
    0
    Ответов: 4476
    Рейтинг: 716
    #27: 2016-07-22 13:43:45 ЛС | профиль | цитата
    andrestudio писал(а):
    И что, мой вариант чем не инициализирован?
    andrestudio, вот в этой строчке dt := ReadData(dt, _data_Data) в функцию ReadData() передаётся локальная переменная, которая нигде раньше не была инициализирована (не выполнялось присвоение). Соответственно, если она же будет возвращена этой функцией, а потом передана на выход событием компонента, то следующий компонент на ней споткнется (либо получим runtime-error на поле dt.Next или dt.ldata, либо получит непустые данные в потоке там, где должны быть пустые).
    [offtop]А Galkov-у нужно сразу выкладывать в чём ошибка, чтобы не портить себе нервы и другим[/offtop]
    карма: 26

    1
    Голосовали:MAV
    Ответов: 9906
    Рейтинг: 351
    #28: 2016-07-22 14:08:51 ЛС | профиль | цитата
    Galkov писал(а):
    Эксперты, блин


  • Вопрос первый: чего стоит в dt при обращении ReadData(dt, _data_Data) в коде andrestudio ???   Ответ: фиг его знает (что уже недопустимо).

  • Вопрос второй: может быть условие использования (Assigned(_data_Data.Event)) гарантирует НЕ ИСПОЛЬЗОВАНИЕ dt в кодах ReadData ???   Ответ: нет, не гарантирует. Значения полей dt МОЖЕТ быть скопировано в Result

  • Вопрос третий: допустимо ли, что не-понять-какие данные (из dt) всего лишь МОГУТ попасть на выход ???   Ответ: НЕ ДОПУСТИМО.

    Именно это и есть позиция нормального Разработчика. Ты должен иметь гарантии работоспособности, а не "у меня работает"
    Если у кого-то другая - да на здоровье.
    Просто не называйте себя Разработчиком...
  • карма: 9

    1
    Голосовали:MAV
    Разработчик
    Ответов: 25687
    Рейтинг: 2088
    #29: 2016-07-22 14:11:18 ЛС | профиль | цитата
    Netspirit писал(а):
    А Galkov-у нужно сразу выкладывать в чём ошибка, чтобы не портить себе нервы и другим

    Че я ему и написал
    nesco писал(а):
    Объяснить "Почему"

    ------------ Дoбавленo в 14.11:
    Во! Объяснил наконец-то. А че раньше молчал-то?
    карма: 20

    0
    Ответов: 9906
    Рейтинг: 351
    #30: 2016-07-22 14:23:38 ЛС | профиль | цитата
    Netspirit писал(а):
    А Galkov-у нужно сразу выкладывать в чём ошибка, чтобы не портить себе нервы и другим
    А спорим, что даже сейчас НЕ ДОЙДЕТ

    А мысль моя, вообще-то, в другом была:
    Galkov писал(а):
    ... положено самому догадываться.
    Тому, кто предлагает коды к использованию.
    А не в некоторой какой-то ошибке. Это мелочь, тут никто не застрахован.


    ------------ Дoбавленo в 14.23:
    nesco писал(а):
    Объяснил наконец-то. А че раньше молчал-то?

    Давай и с тобой поспорим тоже
    карма: 9

    0
    Сообщение
    ...
    Прикрепленные файлы
    (файлы не залиты)