Вниз  AMPASIDE / ANPASIDE — IDE для MIDletPascal
- 4.10.2026 / 10:59
GOAR
  Пользователь

GOAR 
Сейчас: Offline
Потестил, полет нормальный,
,редактор откликается норм, тип record те пихай куда хотишь все гуд.
Компиляция мгновенная практически, даже модуль mobs теперь не почем)

Установка на планшет андроид 7 работает, только правда падает производительность, но это скорее дело в планшете, или я с машьабированием что-то намутил :gg:

А так как по мне очень годно! :gg:
Мож выкладывать :)

P.s а когда case будет? :gg:

Изменено GOAR (4.10 / 11:01) (всего 1 раз)
- 4.10.2026 / 15:58
Helltar
  Пользователь

Helltar 
Сейчас: Offline
GOAR, case готов, вышло в 2.5.0:

селектор - integer, char или string. метки - числа, символы, строки и именованные константы (в т.ч. из юнитов), можно списком через запятую и диапазоном. в ветке один оператор или begin..end:

  1. key := getKeyClicked;
  2.  
  3. case key of
  4.   KE_KEY2: y := y - 1;
  5.   KE_KEY8: y := y + 1;
  6.  
  7.   // несколько меток на одну ветку
  8.   KE_KEY4, KE_KEY6: x := x + key - KE_KEY5;
  9.  
  10.   // несколько операторов - через begin..end
  11.   KE_KEY5:
  12.     begin
  13.       drawText('hello', 10, 10);
  14.       repaint;
  15.     end;
  16.  
  17.   // пустая ветка
  18.   KE_STAR: ;
  19.  
  20.   // диапазон, границы включены
  21.   0..31: delay(50);
  22.  
  23. else
  24.   // если ничего не совпало
  25.   x := 0;
  26.   y := 0;
  27. end;

по строкам и символам тоже работает:

  1. case name of
  2.   'left', 'l': dx := -1;
  3.   'right': dx := 1;
  4. end;
  5.  
  6. case c of
  7.   'a', 'e', 'i', 'o', 'u': kind := 1;
  8.   '0'..'9': kind := 2;
  9.   #32: kind := 3;
  10. end;

что нужно знать:

1) метка - только константа, переменную туда нельзя (ошибка E410)
2) в else можно писать сколько угодно операторов до end, без begin..end
3) срабатывает первая совпавшая ветка, в следующую ничего не проваливается. если ничего не совпало и else нет - ничего не происходит
4) повтор метки или пересечение диапазонов - ошибка компиляции E465 duplicate case label
5) вложенные case, break и exit внутри ветки работают. break выходит из цикла, в котором стоит case
6) строки сравниваются с учетом регистра, как и через =

один нюанс с if внутри ветки: else после ; относится к case, а не к if (как в turbo pascal):

  1. case n of
  2.   1: if ok then go;
  3.   else stop; // это else от case, а не от if
  4. end;

в 2.5.0 также вошло все из прошлой тестовой сборки: новый редактор, record в разных модулях, быстрая компиляция больших модулей, apk под android 7

описание case с примерами в доке: https://helltar.com/midletpascal/#statements

Изменено Helltar (4.10 / 16:01) (всего 1 раз)
- 4.10.2026 / 15:58
Helltar
  Пользователь

Helltar 
Сейчас: Offline
- 4.10.2026 / 18:36
GOAR
  Пользователь

GOAR 
Сейчас: Offline
Наконец, ПК версией не думаешь заниматься?)
- 4.10.2026 / 18:39
GOAR
  Пользователь

GOAR 
Сейчас: Offline
Ещё просьба , не горит особо, в следующих обновлениях, добавь возможность устанавливать пробелы в версии сборки чтоб не только целое число , а и "1.05", знаю это не начто не влияет, но было бы не плоха.
  Или что автоматически поднималась версии , при каждой новой сборке в апк то ли мидлета :)
Наверх  Всего сообщений: 595
Фильтровать сообщения
Поиск по теме
Файлы топика (25)