Jump to content
Janilabo

TPARow & TPAColumn

Recommended Posts

Made these 2 useful little commands.

Play around with the constants, to see how these work.. ;)

Constants can be negative aswell. Well, only TEST_SIZE has to be higher than 0 for these to work.

 

const
 TEST_START_X = 0;
 TEST_START_Y = 0;
 TEST_SIZE = 10;
 TEST_SPACE = 1;

function TPARow(rowStart: TPoint; rowSize, rowSpace: Integer): TPointArray;
var
 i: Integer;
begin
 if (rowSize > 0) then
 begin
   SetLength(Result, rowSize);
   for i := 0 to (rowSize - 1) do
   begin
     Result[i].X := rowStart.X;
     Result[i].Y := (rowStart.Y + (i * rowSpace));
   end; 
 end;
end;

function TPAColumn(columnStart: TPoint; columnSize, columnSpace: Integer): TPointArray;
var
 i: Integer;
begin
 if (columnSize > 0) then
 begin
   SetLength(Result, columnSize);
   for i := 0 to (columnSize - 1) do
   begin                         
     Result[i].X := (columnStart.X + (i * columnSpace));
     Result[i].Y := columnStart.Y;                       
   end; 
 end;
end;

var
 startPt: TPoint;
 TPA: TPointArray;

begin
 startPt := Point(TEST_START_X, TEST_START_Y);          
 TPA := TPARow(startPt, TEST_SIZE, TEST_SPACE);
 WriteLn('TPARow(' + PointToStr(startPt) + ', ' + IntToStr(TEST_SIZE) + ', ' + IntToStr(TEST_SPACE) + '): ' + #13#10 + TPAToStr(TPA));
 SetLength(TPA, 0);
 WriteLn('');
 TPA := TPAColumn(startPt, TEST_SIZE, TEST_SPACE);
 WriteLn('TPAColumn(' + PointToStr(startPt) + ', ' + IntToStr(TEST_SIZE) + ', ' + IntToStr(TEST_SPACE) + '): ' + #13#10 + TPAToStr(TPA));
 SetLength(TPA, 0);
end.

 

Anyone have any better name suggestions for em? :)

 

Also, TPAGrid():

 

const
 GRID_START_X = 0;
 GRID_START_Y = 0;
 GRID_ROWS = 3;     
 GRID_COLUMNS = 3;
 GRID_ROW_SPACE = 1;
 GRID_COLUMN_SPACE = 1;

function TPAGrid(start: TPoint; rows, columns, rowSpace, columnSpace: Integer): TPointArray;
var
 i, s, r, c: Integer;
begin
 if ((rows < 0) or (columns < 0)) then
   Exit;
 s := (rows * columns);
 if (s > 0) then
 begin
   SetLength(Result, s);
   for r := 0 to (rows - 1) do
     for c := 0 to (columns - 1) do
     begin    
       i := ((r * columns) + c);                    
       Result[i].X := (start.X + (c * columnSpace));
       Result[i].Y := (start.Y + (r * rowSpace));
     end;
 end;
end;

var
 TPA: TPointArray;

begin
 ClearDebug;
 TPA := TPAGrid(Point(GRID_START_X, GRID_START_Y), GRID_ROWS, GRID_COLUMNS, GRID_ROW_SPACE, GRID_COLUMN_SPACE);
 WriteLn('TPAGrid((' + IntToStr(GRID_START_X) + ',' + IntToStr(GRID_START_Y) + '), ' + IntToStr(GRID_ROWS) + ', ' + IntToStr(GRID_COLUMNS) + ', ' + IntToStr(GRID_ROW_SPACE) + ', ' + IntToStr(GRID_COLUMN_SPACE) + '):');
 WriteLn(TPAToStr(TPA));
 SetLength(TPA, 0);
end.

 

..aaaaand TBAGrid():

 

function TBAGrid(start: TPoint; boxWidth, boxHeight, rows, columns, rowSpace, columnSpace: Integer): TBoxArray;
var
 i, s, r, c: Integer;
begin
 if ((rows < 0) or (columns < 0) or (boxWidth < 1) or (boxHeight < 1)) then
   Exit;
 s := (rows * columns);
 if (s > 0) then
 begin
   SetLength(Result, s);
   for r := 0 to (rows - 1) do
     for c := 0 to (columns - 1) do
     begin    
       i := ((r * columns) + c);                    
       Result[i].X1 := (start.X + (c * columnSpace));
       Result[i].Y1 := (start.Y + (r * rowSpace)); 
       Result[i].X2 := (Result[i].X1 + (boxWidth - 1));
       Result[i].Y2 := (Result[i].Y1 + (boxHeight - 1));
     end;
 end;
end;

 

TBARow() & TBAColumn():

 

function TBARow(start: TPoint; boxWidth, boxHeight, rowSize, rowSpace: Integer): TBoxArray;
var
 i: Integer;
begin
 if ((rowSize > 0) and (boxWidth > 0) and (boxHeight > 0)) then
 begin           
   SetLength(Result, rowSize);
   for i := 0 to (rowSize - 1) do
   begin                     
     Result[i].X1 := start.X;
     Result[i].Y1 := (start.Y + (i * rowSpace)); 
     Result[i].X2 := (Result[i].X1 + (boxWidth - 1));
     Result[i].Y2 := (Result[i].Y1 + (boxHeight - 1));
   end;
 end;
end;

function TBAColumn(start: TPoint; boxWidth, boxHeight, columnSize, columnSpace: Integer): TBoxArray;
var
 i: Integer;
begin
 if ((columnSize > 0) and (boxWidth > 0) and (boxHeight > 0)) then
 begin           
   SetLength(Result, columnSize);
   for i := 0 to (columnSize - 1) do
   begin                     
     Result[i].X1 := (start.X + (i * columnSpace));
     Result[i].Y1 := start.Y; 
     Result[i].X2 := (Result[i].X1 + (boxWidth - 1));
     Result[i].Y2 := (Result[i].Y1 + (boxHeight - 1));
   end;
 end;
end;

 

http://uppit.com/1azcxakq7tuc/Grid_stuff.zip (some examples for most of these functions)

 

-Jani

Edited by Janilabo
Added TBAColumn / TBARow and corrected TPAGrid/TBAGrid.
Link to comment
Share on other sites

オンライン カジノは、プレイヤーが自宅にいながらにしてポーカー、ルーレット、ブラックジャック、スロットなどのギャンブル ゲームを楽しむ機会を提供する仮想プラットフォームです。 オンラインカジノは、アクセスのしやすさ、ゲームの種類の多さ、そして大金を獲得する機会があるため、年々人気が高まっています。

オンラインカジノの主な利点は、利便性とアクセスしやすさです。 プレイヤーは、通常のカジノの営業時間に制限されず、いつでもゲームを楽しむことができます。 必要なのは、インターネットにアクセスできるデバイスと、カジノのウェブサイトにアクセスできることだけです。 これにより、プレイヤーは従来のカジノによくありがちなストレスや緊張を感じることなく、快適な環境でプレイすることができます。

オンラインカジノのもう1つの利点は、ゲームの選択肢が豊富なことです。 ユーザーは、それぞれ独自のルールと勝利の機会を提供する何百もの異なるゲームから選択できます。 技術革新のおかげで、オンライン ゲームのグラフィックとサウンドは高品質になり、プレイヤーは興奮と情熱の雰囲気に浸ることができます。

さまざまなゲームに加えて、オンライン カジノはプレーヤーにさまざまなボーナスやプロモーションも提供します。 これらは、スロットのフリースピン、プレイのための追加のお金、または貴重な賞品が得られる特別なトーナメントなどです。 このようなボーナスにより、勝利の可能性が高まり、ゲームがさらに楽しくなります。

もちろん、オンラインカジノでのプレイにはリスクがあります。 ギャンブルには依存性がある可能性があるため、自分の感情を監視し、支出をコントロールすることが重要であることを覚えておくことが重要です。 カジノはまた、責任あるゲーミングをサポートし、自己排除や賭け金制限の機会を提供します オンライン カジノ

全体として、オンライン カジノはギャンブル愛好家にとって便利でエキサイティングなエンターテイメントを提供します。 幅広いゲーム、ボーナスの選択肢があり、いつでもプレイできるため、世界中のプレイヤーの間で人気が高まっています。 ただし、責任あるゲームと、ゲームが単なる楽しみと娯楽の源であるように自分の行動を制御する能力について覚えておくことが重要です。
Link to comment
Share on other sites

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

1. Установите цель

Пробным камнем к успешному похудению является установление определенной цели. Определите, сколько килограммов вы хотите сбросить и по какой причине. Цель должна быть реалистичной, измеримой и достижимой.

2. Питание

Здоровое питание играет главную роль в процессе похудения. Сосредотачивайтесь на употреблении натуральных продуктов, богатых витаминами и минералами. Опасайтесь стремительных углеводов и жирной пищи. Стремитесь к балансу макро- и микроэлементов в рационе.

3. Физическая активность

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

4. Гидрация

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

5. Сон

Качественный сон играет важную роль в процессе похудения. Старайтесь спать более 7-8 часов в сутки, чтоб ваш организм мог восстановиться, а метаболизм был в норме.

6. Управление стрессом

Стресс может стать препятствием на пути к похудению похудение на Найдите способы расслабления и отдыха: медитация, йога, чтение книжек, прогулки на природе.

7. Ежедневный контроль

Ведение дневника пищевых повадок и физической активности поможет вам осознать, что вы едите и какой-никакое количество калорий потребляете, а также оценить свои успехи.

8. Постепенные конфигурации

Избегайте радикальных диет и раздражающих факторов и ситуаций. Внедряйте изменения в кормлении и образе жизни чуть-чуть, чтоб они стали размеренными привычками.
Link to comment
Share on other sites

Гидроизоляция это ключевой элемент в строительстве, обеспечивающий защиту объектов от воздействия влаги и воды. В большой зависимости от критерий эксплуатации и материала конструкции, выбирается определенный тип гидроизоляции. Рассмотрим основные разновидности и их применения.

1. Рулонные материалы

Рулонные водоизоляционные материалы используются для защиты кровель и фундаментов. Они посещают на основе битума и полимеров.
- Битумные рулоны модны благодаря своей доступности и безопасности. Употребляются на плоских крышах и в основании построек.
- Полимерные рулоны имеют более высокую крепкость и долговечность, то что надо для сложных погодных критерий.

2. Жидкая гидроизоляция

Жидкие гидроизоляторы используются для создания бесшовного покрытия. Они посещают на основе:
- Полимеров с легкостью наносятся и образуют прочную мембрану.
- Цемента идеально то что надо для ванной и кухни, обладают превосходными гидрофобными свойствами.

3. Проникающая гидроизоляция

Этот тип проникает в структуру бетона и наполняет микротрещины, обеспечивая надежную защиту. Применяется в большей степени для фундаментов и подвалов. Проникающая гидроизоляция отлично совладевает с неизменным воздействием воды.

4. Мембранная гидроизоляция

Мембранные системы часто употребляются для крыши и находящийся под землей конструкций. Такой метод обеспечивает надежную защиту от осадков и грунтовых вод.
- ЭПДМ и ТПО мембраны имеют высокую устойчивость к ультрафиолету и механическим повреждениям https://gidroizolyaciya-dlya-vsekh.ru

5. Гидрофобные добавки

Гидрофобные добавки в бетон или раствор помогают предупредить проникновение воды. Они идеально то что надо для создания водонепроницаемых конструкций, таких как бассейны и резервуары.

Выбор типа гидроизоляции

В момент выбора гидроизоляции принципиально учесть:
- Правила использования влажность, температура, возможные нагрузки.
- Материалы конструкции для каждого типа материала существует собственный лучший вариант гидроизоляции.
- Бюджет некоторые способы более накладные, но обеспечивают огромную долговечность.

В заключение, выбор гидроизоляции зависит от множества факторов. Правильное решение поможет продлить срок службы строительных объектов и избежать серьезных проблем с влажностью.
Link to comment
Share on other sites

Выбор трактора Шифенг: на что обратить внимание

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

1. Определите цели использования

До этого всего, необходимо определить, для какой-никаких задач вы планируете использовать трактор. Основные направления применения тракторов Шифенг включают:

- Сельское хозяйство: обработка почвы, посадка, сбор урожая, перевозка.
- Строительство:, подъем и транспортировка строй материалов.
- Лесозаготовка: вывоз древесной породы, уборка на делянках.

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

2. Выбор мощности и типа мотора

Тракторы Шифенг представлены в спектре мощностей, начиная от легких моделей для маленьких хозяйств и заканчивая мощными машинами для крупных агроформирований. Важно принять во внимание следующие моменты:

- Мощность мотора: по этой причине параметра зависит способность трактора делать разные виды работ. Более сильные машины то что надо для тяжелых условий эксплуатации.
- Тип двигателя: дизеля чаще используются в тракторов весьза их экономичности и долговечности, однако и бензиновые модели имеют свои преимущества.

3. Конструкция и качество

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

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

4. Комплектация и дополнительные опции

Дополнительные опции могут существенно воздействовать на комфорт и функциональность работы с трактором. При рассмотрении модели обратите внимание на:

- Наличие фар и освещения для работы в черное время суток.
- Кабина: отлично утепленная и снаряженная системами вентиляции и кондиционирования значительно повысит комфорт оператора.
- Дополнительное оборудование: возможность установки разной навесного либо прицепного оборудования (плуг, культиватор, фреза и так далее).

5. Сервис и гарантия

Важно учитывать доступность сервисного обслуживания и наличие запчастей. Изучите:

- Гарантийные условия: они могут варьироваться в зависимости от производителя.
- Квалификация сервисного центра: его способности по ремонту и обслуживанию тракторов.

6. Бюджет

Не забывайте о http://www.colinudoh.com/2019/05/invisible-performances-all-round-as.html вашем бюджете. Тракторы Шифенг предлагают широкий ценовой диапазон, но также принципиально учесть расходы на эксплуатацию, обслуживание и возможные ремонты в будущем. Сравните различные модели и изберите ту, которая наихорошим образом подходит вашим финансовым возможностям.

Заключение

Выбор трактора Шифенг это ответственный процесс, который может зависеть от огромного количества факторов. Обусловьте цели его использования, учитывайте мощность и тип мотора, качество конструкции, дополнительные функции, доступность сервиса и меня называют Господом бюджет. Правильно подобранный трактор станет надёжным ассистентом в вашем хозяйстве, обеспечивая эффективность и продуктивность работы надолго. Не торопитесь с покупкой, лучше заранее соберите всю необходимую информацию и проконсультируйтесь с специалистами, чтобы сделать обоснованный выбор.
Link to comment
Share on other sites

Выбор трактора Шифенг: на что направить внимание

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

1. Обусловьте цели использования

Прежде всего, нужно определить, для какой-никаких задач намереваетесь использовать трактор. Основные направления применения тракторов Шифенг включают:

- Сельское хозяйство: обработка почвы, посадка, сбор урожая, перевозка.
- Строительство:, подъем и транспортировка строй материалов.
- Лесозаготовка: вывоз древесины, уборка на делянках.

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

2. Выбор мощности и типа мотора

Тракторы Шифенг представлены в спектре мощностей, начиная от легких моделей для небольших хозяйств и заканчивая сильными машинами для больших агроформирований. Важно принять во внимание следующие моменты:

- Мощность мотора: от этого параметра зависит способность трактора выполнять разные виды работ. Более массивные машины то что надо для томных условий эксплуатации.
- Тип двигателя: дизеля почаще используются в тракторов весьза их экономичности и долговечности, но и бензиновые модели могут иметь свои преимущества.

3. Конструкция и качество

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

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

4. Комплектация и дополнительные опции

Дополнительные опции могут существенно повлиять на комфорт и функциональность работы с трактором. При рассмотрении модели направьте внимание на:

- Наличие фар и освещения для работы в черное время суток.
- Кабина: превосходно утепленная и снаряженная системами вентиляции и кондиционирования существенно повысит комфорт оператора.
- Дополнительное оборудование: возможность установки различной подвесного или прицепного оборудования (плуг, культиватор, фреза и так далее).

5. Сервис и гарантия

Важно учитывать доступность сервисного обслуживания и наличие запчастей. Изучите:

- Гарантийные условия: им предоставляется возможность варьироваться в зависимости от производителя.
- Квалификация сервисного центра: его способности по ремонту и обслуживанию тракторов.

6. Бюджет

Помните о http://www.podzemie.6f.sk/profile.php?lookup=19364 вашем бюджете. Тракторы Шифенг делают отличное предложение широкий ценовой диапазон, но также главно учитывать расходы на эксплуатацию, обслуживание и возможные ремонты в будущем. Сравните различные модели и изберите ту, которая наихорошим образом соответствует вашим финансовым способностям.

Заключение

Выбор трактора Шифенг это ответственный процесс, который находится в зависимости от большого колличества причин. Обусловьте цели его использования, учитывайте мощность и тип мотора, качество конструкции, дополнительные функции, доступность сервиса и свой бюджет. Правильно подобранный трактор станет надёжным помощником в вашем хозяйстве, обеспечивая эффективность и продуктивность работы на долгие годы. Не торопитесь с покупкой, превосходнее заблаговременно соберите всю нужную информацию и проконсультируйтесь с профессионалами, чтоб сделать обоснованный выбор.
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
  • Create New...