Мы не поддерживаем больше GraphABC. Он устарел
Не лучшая новость для многих учебных заведений, но понять разработчиков тут можно. В школах учителя ненавидят переписывать сто лет назад составленные ими задания, поэтому вся графика ориентирована на Turbo Pascal / Pascal ABC. В заданиях часто напрямую указано использование этой библиотеки. Да и WinXP еще очень у многих стоит из-за старой аппаратной платформы.
@ibond держите: ResourceCreator.rar
RC.exe принимает 1 аргумент командной строки, имя файла иконки, а в выходной поток выплёвывает массив байт готового ресурса.
В “RC test” я показал как можно использовать RC.exe (и + добавил создание файла test.res, чтоб показать что работает).
Так же там есть “Icon test”, чтоб у “Icon test.exe” была иконка - его нужно откомпилировать после запуска “RC test”.
Ну и + я добавил “GetIcons” которое создаёт залитые разным мусором иконки всех допустимых размеров (готовые иконки уже входят в комплект в архиве).
ага
Если бы)) Я нашёл только эту страницу, но когда я залез в готовый файл ресурсов с иконкой - там ничо не сходится. Совершенно. В итоге я просто взял готовый файл с ресурсом иконкой и заменяю в нём несколько значений (проверил, что меняется если разные иконки подставлять и эти части вырезал).
Чуть позже может ещё разберусь, но для начала с несколькими проектами хочу разобраться, да и без того хватает чем голову забить.
На неделе. Создайте issue, чтоб я нe забыл
Можно ли сделать так чтоб форматирование исправляло регистр?
Чтоб
procedure MyProc := exit;
begin
var MyVar := 0;
mYprOc;
MYvAr := 0;
end.
превращалось в
procedure MyProc := exit;
begin
var MyVar := 0;
MyProc;
MyVar := 0;
end.
Регистр в языке Паскаль незначим. Насильно исправлять его - нарушать принятые в языке соглашения.
Это странное предложение.
Технически у нас это невыполнимо. т.к. форматирование проходит на синтаксическом уровне, а для анализа имен нужна семантика
Даже если бы проходило: на каком основании исправлять имена? Может быть, человек нарочно решил использовать верблюжью нотацию, правила языка это позволяют.
Посмотрите внимательно на пример. Говорится не про исправление типа нотации, а про то - что если переменная объявлена каким то образом - везде где она использует тоже так же делало.
То есть чтоб так же это:
procedure mYprOc:= exit;
begin
var MYvAr := 0;
MyProc;
MyVar := 0;
end.
превращалось в
procedure mYprOc := exit;
begin
var MYvAr := 0;
mYprOc;
MYvAr := 0;
end.
То есть чтоб ориентировалось на описание, то как решил пользователь. Но при этом, к примеру, есть writeln
. Вот его имеет смысл исправлять на Writeln
при форматировании. Потому что разработчики решили что так правильно, и так делает Ctrl+Space.
Я не совсем понял ваше объяснение, но если вызвать переименование - оно меняет регистр. То есть технически - таки возможно (переименование как то но работает ведь). Вопрос только в том - как на практике реализовать не_костылём…
Такое есть в VB/VBA. Нервы расшатывает страшно. Работает по текущему представлению. Объявил aR, где-то набрал AR - ткт же по всему тексту переименовалось в AR. Поправил на ar - везде ar стало. Тупо контекстная замена в реальном времени. Лично меня раздражает страшно.
И еще раз: в Паскале регистр НЕЗНАЧИМ. Понимаете это слово? НЕЗНАЧИМ. Следовательно не должно идти речи ни о каких автоматических переименованиях. Пользователь имеет право писать переменные так, как хочет.
Но главное даже не в этом. Сейчас, чего греха таить, Intellisence местами лагает. Вы хотите, чтобы в результате подобных лагов еще и имена переменных летели в тексте программы? Я - нет.
В паскале так же переносы строки не значими но форматирование же их исправляет))
Кроме того,
procedure p1;
begin
var MyVar := 0;
end;
procedure p2;
begin
var myvar := 0;
end;
begin end.
Вызываем переименование последней переменной в myVar
, получаем:
procedure p1;
begin
var MyVar := 0;
end;
procedure p2;
begin
var myVar := 0;
end;
begin end.
То есть меняет не по всему текста, а смотрит на контекст.
Да, и где-то заодно поменяет amYvar. А чтобы этого не было, как написал @Admin, надо семантику смотреть, чего нет. В общем, пустой это разговор.
Не всегда это хорошо, например, при написании имён в стиле:
MyVaRiAbLe
В этом случае автозамена была бы полезна. С другой стороны, если пользователь таким образом объявил идентификатор, то везде имя будет исправляться на этот неправильный стиль, но следует заметить, что для перехода к верному стилю именования идентификатора потребуется лишь одно изменение - в объявлении. Поддерживаю @Sun_Serega в том, что это полезная фича.
Часть, которую предлагает @Sun_Serega, не относится к Intellisense и может быть реализована как отдельный плагин. Система плагинов PascalABC.NET это позволяет.
Данное предложение не затрагивает основной компилятор, систему Intellisense и вполне может быть реализовано сторонними разработчиками на свой страх и риск. Грамматика языка открыта, и ей можно воспользоваться.
Поэтому моё мнение простое - если это будет сторонняя разработка, оформленная в виде dll-плагина, то мы будем только рады. А то, насколько она нужна, можно будет узнать по количеству её скачиваний.
Главное, чтобы она автоматом не срабатывала при использовании имеющегося форматирования.