Forum > Russian
External: SIGSEGV
Zeno:
У меня есть еще пара вопросов: Почему?
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---N1:= TNumber.Create; //работает правильноN1.Create; //работает с ошибкой Ведь синтаксический анализатор признает оба варианта правильными, разве это не одно и то же?
И второй вопрос: как создать массив типа TNumber? Нужно ли каждый элемент массива инициализировать конструктором или же можно выделить память для каждого элемента операцией New?
Handoko:
I don't know and I don't care why the syntax analyzer accepts the line #10, there were no compile error, warning, nor hint. I just want to tell you, don't do it:
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---type TNumber = class // ... end; procedure TForm1.Button1Click(Sender: TObject);var N1: TNumber;begin N1.Create;end;
If you're interested, I started a new thread:
https://forum.lazarus.freepascal.org/index.php/topic,57612.msg428687.html#msg428687
Array of TNumber:
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---procedure TForm1.Button1Click(Sender: TObject);const ItemCount = 10;var MyArrayOfNumber: array of TNumber; i: Integer;begin SetLength(MyArrayOfNumber, ItemCount); for i := 0 to ItemCount - 1 do MyArrayOfNumber[i] := TNumber.Create;end;
If the array is a dynamic array, you first need to use SetLength to request space from the unused memory, see line #8. Read more: https://www.freepascal.org/docs-html/rtl/system/setlength.html
Because by default, Pascal array starts from 0, so 10 items of the array are actually started from 0 to 9, see line #9.
Before you can use the instance of the TNumber you have to call its constructor, in the example it is TNumber.Create, see line #10.
Seenkao:
Товарищи англичане, не хотите воспользоваться переводчиком и предоставить перевод на не английском форуме?
Очень интересно получается, что все должны переводить на английский, на англоязычном форуме, а вы не можете перевести когда находитесь на не англоязычном форуме!!! >:D
Извиняюсь за эмоции! Просто напрягает, когда свои же правила не соблюдаем. :-[
Google translate:
Comrades, Englishmen, do you want to use a translator and provide a translation on a non-English forum?
It turns out very interesting that everyone should translate into English, on an English-speaking forum, and you cannot translate when you are on a non-English-speaking forum !!! >:D
Sorry for the emotions! It's just annoying when we don't follow our own rules. :-[
Zeno:
Handoko, спасибо за ответы на мои вопросы!
Navigation
[0] Message Index
[*] Previous page