Найдено 20 результатов

AlexP
06.01.2014 13:09:44
Форум: Обучение Free Pascal
Тема: Перегрузка операторов для обьектов с виртуальными методами
Ответы: 3
Просмотры: 9714

Re: Перегрузка операторов для обьектов с виртуальными метода

Сейчас попробовал, как вы говорите, убрать лишний конструктор из процедуры

procedure TForm1.Button1Click(Sender: TObject);
var x:tmyobject;
begin
//x.init;
x:=x+x;
form1.Caption:=x.get_string;
end;

а в оператор добавить конструктор -

operator +(c1,c2&#58 ...
AlexP
05.01.2014 15:21:39
Форум: Обучение Free Pascal
Тема: Перегрузка операторов для обьектов с виртуальными методами
Ответы: 3
Просмотры: 9714

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

Здравствуйте.

Когда обьекту с перегрузкой операторов сделал метод виртуальным, то при его вызове возникает Access Violation.

Вот обьект -

type tmyobject=object
i:integer;
constructor init;
function get_string:string; virtual;
end;

operator +(c1,c2:tmyobject)r:tmyobject ...
AlexP
07.02.2013 00:02:06
Форум: Обучение Free Pascal
Тема: Ошибки при использовании обьектов
Ответы: 5
Просмотры: 13233

Re: Ошибки при использовании обьектов

Lazarus к обеим этим проблемам отношения не имеет. Это компилятор и/или отладчик.

Проверяйте с FPC версии 2.7.1 и, если воспроизведётся, пишите в багтрекер FPC.

Спасибо. Попробую сделать всё это. Хотя если бы более опытный человек это сделал, то было бы намного быстрее, т.к. никогда ни с тем, ни ...
AlexP
06.02.2013 03:10:33
Форум: Обучение Free Pascal
Тема: Ошибки при использовании обьектов
Ответы: 5
Просмотры: 13233

Ошибки при использовании обьектов

1. Наткнулся на такую ошибку при пошаговой отладке, если один обьект наследник другого. Вот пример -


tparent=object

end;

tchild=object(tparent)
i:integer;
constructor init;
end;

var Form1: TForm1;

implementation { TForm1 } {$R *.lfm}

procedure TForm1.Button1Click(Sender&#58 ...
AlexP
24.02.2010 05:30:32
Форум: Lazarus
Тема: Опрос компонента по номеру или ???
Ответы: 2
Просмотры: 2162

Re: Опрос компонента по номеру или ???


var i,j:integer;
begin
for i:=0 to application.ComponentCount-1 do
for j:=0 to application.Components[i].ComponentCount-1 do
if pos('DB0',application.Components[i].Components[j].Name)>0 then
if tdbedit(application.Components[i ...
AlexP
09.02.2010 12:38:43
Форум: Lazarus
Тема: Наследник tstringgrid - глюк?
Ответы: 2
Просмотры: 2532

Re: Наследник tstringgrid - глюк?

Climber

Спасибо, это все понятно, можно конечно каждый раз настраивать внешний вид в design-time, но нужно именно в виде компонента, т.к. он будет часто использоваться и плюс там еще у него будут разные другие функции.
AlexP
08.02.2010 20:33:37
Форум: Lazarus
Тема: Наследник tstringgrid - глюк?
Ответы: 2
Просмотры: 2532

Наследник tstringgrid - глюк?

Обнаружил такой глюк, или я что-то делаю не так?

Мне нужен компонент, наследник tstringgrid, чтобы при создании в нем были две колонки с заданными свойствами.

Для этого создаю пакет, как обычно, в нем компонент tmystringgrid, пишу в его конструкторе

constructor tmystringgrid.Create(TheOwner ...
AlexP
20.01.2010 13:50:58
Форум: Обучение Free Pascal
Тема: процедурные переменные
Ответы: 12
Просмотры: 19150

процедурные переменные

У меня есть обьект, который работает с процедурной переменной.

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

Но такая функция, хоть и имеет такой же список параметров, является другим типом процедурной ...
AlexP
24.03.2008 16:40:06
Форум: Free Pascal Compiler
Тема: наследование объектов с дин. массивом - как?
Ответы: 37
Просмотры: 29894

А я пишу библиотеку для работы с линейной алгеброй, там нужны динамические массивы для описания векторов-матриц. А обьекты нужны потому что можно им операторы переопределять, что для линейной алгебры очень удобно.

Тут кстати столкнулся с одной сложностью - как известно, результат умножения ...
AlexP
24.03.2008 13:07:29
Форум: Free Pascal Compiler
Тема: наследование объектов с дин. массивом - как?
Ответы: 37
Просмотры: 29894


Как видите проблем, если только товарищ AlexP не забыл упомянуть о чём нибудь существенном, быть никаких не должно, тем более таких глобальных, как описано вначале.

Наверное забыл упомянуть о том, что работаю в Лазарусе.
В FPC 2.0.4 ваш код заработал, и в лазарусе (0.9.24 FPC 2.2.0) он тоже ...
AlexP
24.03.2008 12:03:34
Форум: Free Pascal Compiler
Тема: наследование объектов с дин. массивом - как?
Ответы: 37
Просмотры: 29894

О, спасибо! Про конструктор я как-то забыл, с ним заработало 8)
AlexP
24.03.2008 05:13:24
Форум: Free Pascal Compiler
Тема: наследование объектов с дин. массивом - как?
Ответы: 37
Просмотры: 29894

наследование объектов с дин. массивом - как?

Столкнулся с тем, что если обьект является наследником другого обьекта с динамическим массивом, то из обьекта-наследника невозможно обратиться к этому массиву.

Вот код -

type a=object
x:array of integer;
end;

type b=object(a)
procedure ini;
end;

procedure b.ini;
begin ...
AlexP
15.02.2008 15:49:51
Форум: Lazarus
Тема: глюки в лазарусе c сохранением юнитов
Ответы: 3
Просмотры: 4100

Не, проверил, с памятью все в порядке, и на другой машине с lazarus'ом 0,9,23 тот же глюк с этим проектом. Появляется сразу после нажатия ctrl+F9.

Насчет svn спасибо, наверно самый удобный способ.
AlexP
15.02.2008 03:00:19
Форум: Lazarus
Тема: глюки в лазарусе c сохранением юнитов
Ответы: 3
Просмотры: 4100

глюки в лазарусе c сохранением юнитов

У меня проект с одной формой и несколькими юнитами. В окне редактора исходного кода имя одного юнита на заголовке вкладки - mp2bd.pas - почему-то поменялось на unit1.lfm. Код в этой вкладке можно редактировать, но он не сохраняется, только обновляется дата создания файла unit1.lfm (хорошо хоть его ...
AlexP
04.10.2007 18:20:17
Форум: Free Pascal Compiler
Тема: упреждающее объявление
Ответы: 2
Просмотры: 3704

Спасибо, буду использовать