Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 49 50 51 52 53 54 55 [56] 57 58   вперед  Ctrl
 Re: Топик "как я лажанулся"  [new]
didgik
Member

Откуда:
Сообщений: 968
Гаджимурадов Рустам
didgik> Ну вот как так то?

А чьё это творчество?


Моё конечно )
26 фев 21, 19:42    [22287151]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
s62
Member

Откуда: Жуковский
Сообщений: 1299
Не знаю, назвать ли это лажанулся, но день или типа того на переделку потратил.
Недавно делал небольшой проект, управление одним софтом по расписанию, некоторые действия. Подумал, что нужно будет сделать какую-то структуру для хранения расписания, сохранять её в файл, загружать из него, отображать в виде таблицы, редактировать. Решил пойти "простым" путем, чтобы побыстрее - взять ClientDataset, в нем расписание хранить, он сам умеет сохраняться и загружаться из файла, в частности в XML, отображать - в DBGrid (точнее, взял TSMDBGrid).
И вот потребовалось по клику в таблице на булевском поле (ставим/снимаем галочку, TSMDBGrid умеет рисовать CheckBox) отправить команду, получить ответ, по данным ответа изменить значение другого поля. И оказалось, что это не так просто (для меня оказалось). Попробовал использовать разные события, происходящие перед/после редактирования или Post, но вот в результате, когда пытался менять и другое поле, не получалось изменить и сразу сделать Post, так чтобы корректно изменилось первое, это булевское поле.
В конце концов выкинул ClientDataset, DBGrid, определил запись для элемента расписания, TList<> для всего расписания, ну и пришлось написать "вручную" сохранение в файл и загрузку и отображение в TStringGrid. Заодно и попрактиковаться в рисовании в StringGrid. Зато никаких проблем с изменением данных и их отображением, как в первом варианте, не было.
Более быстрый путь обернулся дополнительным временем.

Сообщение было отредактировано: 4 мар 21, 11:01
4 мар 21, 11:08    [22289483]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
rgreat
Member

Откуда:
Сообщений: 6653
B:=UpdateImage(FGUIFrame.SignUpNameImage,
               'Please enter first and last name',
               (Trim(FGUIFrame.SignUpFirstNameEdit.Text)<>'') and (Trim(FGUIFrame.SignUpLastNameEdit.Text)<>''));

vs
B:=UpdateImage(FGUIFrame.SignUpNameImage,
               'Please enter first and last name',
               Trim(FGUIFrame.SignUpFirstNameEdit.Text)<>'') and (Trim(FGUIFrame.SignUpLastNameEdit.Text)<>'');

Могучая сила скобочек.

У меня чуть крыша не поехала пока понял.

Сообщение было отредактировано: 6 мар 21, 23:05
6 мар 21, 23:03    [22290810]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
alekcvp
Member

Откуда:
Сообщений: 2792
rgreat,

UpdateImage() - это функция, которая возвращает Boolean?..
6 мар 21, 23:13    [22290811]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
rgreat
Member

Откуда:
Сообщений: 6653
Ага.
6 мар 21, 23:17    [22290812]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
DimaBr
Member

Откуда:
Сообщений: 12043
del

Сообщение было отредактировано: 6 мар 21, 23:27
6 мар 21, 23:31    [22290816]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4539
rgreat
B:=UpdateImage(FGUIFrame.SignUpNameImage,
               'Please enter first and last name',
               (Trim(FGUIFrame.SignUpFirstNameEdit.Text)<>'') and (Trim(FGUIFrame.SignUpLastNameEdit.Text)<>''));


vs
B:=UpdateImage(FGUIFrame.SignUpNameImage,
               'Please enter first and last name',
               Trim(FGUIFrame.SignUpFirstNameEdit.Text)<>'') and (Trim(FGUIFrame.SignUpLastNameEdit.Text)<>'');


Могучая сила скобочек.

У меня чуть крыша не поехала пока понял.
Надо просто последнюю скобку, которая вызов функции закрывает, переносить на следующую строку. В случаях, когда параметры в разных строках.

Сообщение было отредактировано: 7 мар 21, 12:07
7 мар 21, 12:14    [22290869]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12789
YuRock
Надо просто последнюю скобку, которая вызов функции закрывает, переносить на следующую строку. В случаях, когда параметры в разных строках.
Ага. Я вообще пишу так
B := UpdateImage(
  FGUIFrame.SignUpNameImage,
  'Please enter first and last name',
  (Trim(FGUIFrame.SignUpFirstNameEdit.Text)<>'') and (Trim(FGUIFrame.SignUpLastNameEdit.Text)<>'')
);
7 мар 21, 17:29    [22290926]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4539
_Vasilisk_
YuRock
Надо просто последнюю скобку, которая вызов функции закрывает, переносить на следующую строку. В случаях, когда параметры в разных строках.
Ага. Я вообще пишу так
B := UpdateImage(
  FGUIFrame.SignUpNameImage,
  'Please enter first and last name',
  (Trim(FGUIFrame.SignUpFirstNameEdit.Text)<>'') and (Trim(FGUIFrame.SignUpLastNameEdit.Text)<>'')
);
Да, я именно так и имел ввиду.
7 мар 21, 18:43    [22290934]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32207
однажды, когда деревья были большими, ©
я при инициализации переменной типа Variant указал varNull, вместо Null...
а потом долго и мучительно искал засаду!
31 мар 21, 18:22    [22302663]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12789
Из недавнего. Пишу UDF
function IncDDegree(ADeg, AInc: PSmallInt): PSmallInt; cdecl;
begin
  Result := IB_Util_Malloc(SizeOf(Result^));
  try
    Result^ := UGeoFunc.IncDDegree(ADeg^, AInc^);
  except
    Result^ := ADeg^;
  end;
end;
Экспортирую функцию IncDDegree, сервер рапортует, что функция кривая и выполнить ее он не может.

Кто увидит косяк?
31 мар 21, 18:37    [22302668]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 65410
Блог
Мимопроходящий
я при инициализации переменной типа Variant указал varNull, вместо Null...

Да, прикольно.

У меня несколько раз был такой поиск, когда я вместо

raise Exception.Create('Bla-bla-bla');


писал

 raise Exception('Bla-bla-bla');
31 мар 21, 19:35    [22302712]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 62646
softwarer> писал
>
> raise Exception('Bla-bla-bla');

А это компилируется?

Posted via ActualForum NNTP Server 1.5

31 мар 21, 20:36    [22302735]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 65410
Блог
Гаджимурадов Рустам
А это компилируется?

Неожиданный вопрос. Слазил проверил. В 10.2 уже нет.
31 мар 21, 20:39    [22302737]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
ъъъъъ
Member

Откуда:
Сообщений: 1966
softwarer
Мимопроходящий
я при инициализации переменной типа Variant указал varNull, вместо Null...

Да, прикольно.

У меня несколько раз был такой поиск, когда я вместо

raise Exception.Create('Bla-bla-bla');



писал

 raise Exception('Bla-bla-bla');

А я "raise" не писал...
31 мар 21, 20:41    [22302738]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 62646
softwarer> В 10.2 уже нет.

А в какой версии компилировалось?

Posted via ActualForum NNTP Server 1.5

31 мар 21, 22:07    [22302760]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 65410
Блог
Гаджимурадов Рустам
А в какой версии компилировалось?

Так прям точно не скажу. Кажется, в 2007-й я ещё сажал пару раз эту ошибку.
31 мар 21, 22:25    [22302763]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Соколинский Борис
Member

Откуда: Москва
Сообщений: 14399
softwarer
Мимопроходящий
я при инициализации переменной типа Variant указал varNull, вместо Null...

Да, прикольно.

У меня несколько раз был такой поиск, когда я вместо

raise Exception.Create('Bla-bla-bla');



писал

 raise Exception('Bla-bla-bla');


Я пару раз слово raise забывал вставить. Получилось весьма...
31 мар 21, 23:00    [22302769]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 2520
Эххх... Тоже посыплю голову пеплом. При введении поддержки распараллеливания операций для нашей библиотеке, неправильно заюзал константу. Всё прокатывало, пока не написал баг юзер, у которого число ядер процессора было больше 32-х (значение константы)
31 мар 21, 23:15    [22302775]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4539
_Vasilisk_
Из недавнего. Пишу UDF
function IncDDegree(ADeg, AInc: PSmallInt): PSmallInt; cdecl;
begin
  Result := IB_Util_Malloc(SizeOf(Result^));
  try
    Result^ := UGeoFunc.IncDDegree(ADeg^, AInc^);
  except
    Result^ := ADeg^;
  end;
end;

Экспортирую функцию IncDDegree, сервер рапортует, что функция кривая и выполнить ее он не может.

Кто увидит косяк?

Может, из модуля UGeoFunc функция IncDDegree экспортировалась, а не твоя?
Хотя, сервер скорее упал бы при вызове, а не ошибку писал.
1 апр 21, 03:25    [22302787]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12789
YuRock
Может, из модуля UGeoFunc функция IncDDegree экспортировалась, а не твоя?
Ага
YuRock
Хотя, сервер скорее упал бы при вызове, а не ошибку писал.
Да вот как-то выживал. И предупреждал, что возвращаемый указатель не был выделен через ib_util_malloc
1 апр 21, 10:18    [22302849]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Fr0sT-Brutal
Member

Откуда:
Сообщений: 682
try
  ...
except on E: Exception do
  ...
  raise E;
end;

И вроде бы всё безобидно, но вот нет.
1 апр 21, 10:50    [22302866]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32207

31.03.2021 22:07, Гаджимурадов Рустам пишет:
>
> А в какой версии компилировалось?

в D7 точно компилится.
я тоже наступал на эти грабли

Posted via ActualForum NNTP Server 1.5

1 апр 21, 11:12    [22302880]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
JayDi
Member

Откуда: Сызрань, Россия
Сообщений: 4173
Раньше часто ловил левые баги, когда случайно конструктор вызывал от объекта вместо класса:
Person := TPerson.Create;
Person2 := Person.Create; // фейл
1 апр 21, 23:31    [22303186]     Ответить | Цитировать Сообщить модератору
 Re: Топик "как я лажанулся"  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12789
Fr0sT-Brutal
try
  ...
except on E: Exception do
  ...
  raise E;
end;


И вроде бы всё безобидно, но вот нет.
Так вроде же раньше так можно было делать. Нет?
1 апр 21, 23:37    [22303190]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 49 50 51 52 53 54 55 [56] 57 58   вперед  Ctrl
Все форумы / Delphi Ответить