Новая версия - Исправлений до сих пор нет
Не работает PopupMenu в TfsSyntaxMemo если вы используете свое..
procedure TfsSyntaxMemo.MouseDown(Button: TMouseButton; Shift: TShiftState;
Заменить
// if (Button = mbRight) and (PopupMenu = nil) then
// FPopUpMenu.Popup(Mouse.CursorPos.x, Mouse.CursorPos.y)
на это
if (Button = mbRight)then
begin
if (PopupMenu = nil) then
FPopUpMenu.Popup(Mouse.CursorPos.x, Mouse.CursorPos.y)
else if assigned(FPopupMenu) then
exit;
end
В скрипте если деление на ноль.
unit fs_iexpression;
function TDivFloatNode.GetValue: Variant;
Var s:string;
begin
Result := FLeft.Value;
if FRight.Value =0 then
begin
s:= 'Деление на ноль ' + SourcePos;
Application.MessageBox(pChar(s),'Внимание', MB_ICONSTOP or MB_OK);
exit;
end;
.....
unit frxDBSet;
function TfrxDBDataset.GetValue(Index: String): Variant;
после
{$IFDEF Delphi6}
else if TField(Fields.Objects) is TSQLTimeStampField then
v := TSQLTimeStampField(Fields.Objects).AsDateTime
{$ENDIF}
else
Заменить
// v := TField(Fields.Objects).Value
на
if Fields.Objects<> Nil then
v := TField(Fields.Objects).Value
else v := Null;
Из версии в версию приходится это добавлять..
procedure TfsSyntaxMemo.MouseDown(Button: TMouseButton; Shift: TShiftState;
Заменить
// if (Button = mbRight) and (PopupMenu = nil) then
// FPopUpMenu.Popup(Mouse.CursorPos.x, Mouse.CursorPos.y)
на это
if (Button = mbRight)then
begin
if (PopupMenu = nil) then
FPopUpMenu.Popup(Mouse.CursorPos.x, Mouse.CursorPos.y)
else if assigned(FPopupMenu) then
exit;
end
В скрипте если деление на ноль.
unit fs_iexpression;
function TDivFloatNode.GetValue: Variant;
Var s:string;
begin
Result := FLeft.Value;
if FRight.Value =0 then
begin
s:= 'Деление на ноль ' + SourcePos;
Application.MessageBox(pChar(s),'Внимание', MB_ICONSTOP or MB_OK);
exit;
end;
.....
unit frxDBSet;
function TfrxDBDataset.GetValue(Index: String): Variant;
после
{$IFDEF Delphi6}
else if TField(Fields.Objects) is TSQLTimeStampField then
v := TSQLTimeStampField(Fields.Objects).AsDateTime
{$ENDIF}
else
Заменить
// v := TField(Fields.Objects).Value
на
if Fields.Objects<> Nil then
v := TField(Fields.Objects).Value
else v := Null;
Из версии в версию приходится это добавлять..
Комментарии
Когда переходилис 3 на 4 в 3 была функция.
выделяешь бенд нажимаешь выравнить в право или лево и все набросанные там компоненты
упорядочивались. Так нет
http://fast-report.com/ru/forum/index.php?...l=IsBandsSelect
Посмотри на дату 23.09.2004 до сих пор вносят...
Как новая версия так полдня уходит на поправки
http://fast-report.com/ru/forum/index.php?...amp;hl=SaveFile
if (frxDesignerComp <> nil) and Assigned(frxDesignerComp.FOnSaveReport) then
begin
if frxDesignerComp.FOnSaveReport(Report, SaveAs) then
begin
UpdateRecentFiles(Report.FileName);
UpdateCaption;
Modified := False;
Exit;
end;
end;
Им про это постоянно говорят что выход должен стоять так а не после end;
=======================================================
http://fast-report.com/ru/forum/index.php?...ic=5426&hl=
Tfrxwatchform Почему не Tchecklistbox, Удобнее было было бы
Если объявить как
WatchLB: TCheckListBox
Это конечно логично с одной стороны, но что делать тем, кто уже использует свои диалоги сохранения в OnSaveReport ?
Пользователь нажал отмену и тут появляется еще один диалог.
Сделаем.
Вопрос "зачем" ?
Если возникает ошибка, то когда и как воспроизвести ?
begin
if Assigned(SyntaxMemo) then
if Tree.Selected.Count = 0 then
SyntaxMemo.SelText := Tree.Selected.Text;
/// а ЕСЛИ СВОЙ ОБРАБОТЧИК ВИСИТ???? чтобы сработало надо добавить
if Assigned(OnDblClick) then OnDblClick(Self);
end;
Иногда надо в скрипте очистить только переменные не затрагивая остальное
procedure TfsScript.ClearVariables;
var
i: Integer;
item: TObject;
begin
i := 0;
while i < FItems.Count do
begin
item := FItems.Objects;
if (item is TfsRTTIModule) or
(item is TfsMethodHelper) or
((item is TfsCustomVariable) and
(TfsCustomVariable(item).AddedBy = TObject(1))) then
Inc(i)
else
begin
item.Free;
FItems.Delete(i);
end;
end;
FStatement.Clear;
FUnitLines.Clear;
FErrorPos := '';
FErrorMsg := '';
FErrorUnit := '';
end;
Почему то фукция function Pi: Extended Описана которая оень редко используется а вот фукция
function Power(const Base, Exponent: Extended) не описана.
constructor TfsSysFunctions.Create(AScript: TfsScript);
AddMethod('function Power(const Base, Exponent: Extended): Extended', CallMethod6, FCatMath);
function TfsSysFunctions.CallMethod6(Instance: TObject; ClassType: TClass;
else if MethodName = 'POWER' then
Result := Power(Caller.Params[0], Caller.Params[1])
Если вас не затруднить, хотелось бы узнать, когда появляется ошибка в function TfrxDBDataset.GetValue(Index: String): Variant (описанный выше фикс) ?
Насчет этого поспешил, ответ писал не с рабочей машины, посмотреть негде было.
Это уже сделано через горячие клавиши, выделите бенд нажмите Ctrl + A.
В каком отчете было. И как только это вставили этот код- стало нормально работать.
Но тогда потратили целый день на поиск.
С тех пор добавляю этот код.
Смысл в том что когда приходило кажеться NIl.
Поправим.
Проверил. Открыл стандартную демку вошел в дизайнер.
выделил бенд. нажал Ctrl + A.
Все элементы на бенде выделелись нажал выровнить в лево.
| || || | -
И результат - все элементы выровнились по самому крайнему полю. Т.Е у всех значение LEFT стала одинаковая.
ЧТО делает мой код
Он выставляет элементы по порядку
ставит первый элемент как он кончается ставится следующий элемент и т.д
Не надо таскать каждый элемент и ставить за следующим ручками и выравнивать совмещая квадратики...
|первый| второй| третий| четвертый|
А потом попробуйте поменять место расположение объекта (не ставя baNone)
Первый объекта поставьте его последним.
И у меня все выравнивается во верхнему краю сразу.
я не хочу использовать свойство baLeft.
Это все мелочи. По сравнению с этим.
(почему в скрипте под Д2009 при передачи строкого параметра исчезают русские буквы?)
http://fast-report.com/ru/forum/index.php?...amp;#entry21938
там все расписано и почему ошибка.
Как лечить?