Помощь новичкам

Но это не значит, что на них можно “забить” и сказать пользователям “а мне не хочется это делать, мне на них все равно, работают как-то, так пусть и работают”.

Никто не собирался забивать, все ошибки которые я нахожу всё ещё исправляют. Не считая некоторых из IDE, но IDE нужно новую делать, раз никто не знает как эту чинить…

1 лайк

Те две ошибки (с yield), которые я нашел, а ты опубликовал, не исправили. Сколько времени прошло…

Надо… Но на предложение разработчикам “делать новую IDE” - ответ тот же: Кому из разработчиков это надо? Ведь, эта еще работает… Хоть криво, но работает. Так и накопятся ошибки постепенно. Вот недавно - было около 30, сегодня за 40 вышло. Да, их исправили (некоторые из них), за это спасибо, но вопрос теперь в том как их исправили - можно исправлять же по разному. Можно костылями, можно без. Я не сужу разработчиков. Но то как исправляют уже имеющиеся ошибки сильно отражается на том как будут исправлены последующие (если исправляют без костылей, то последующие тоже вероятней всего будут тоже исправлены без костылей, если с костылями, то уж извините…) А если все время делать костыли, то… ну ясно всем чем это в конце концов кончится - будут непонятные ошибки вылазить и будут новые костыли, а первичная причина ошибки так и не будет замечена.

Это не важно, главное что issue никуда не девается, а значит будет исправлено.

Это иллюзия, через некоторое время их станет меньше 20, а потом снова до 40 подпрыгнет. Это всё потому, что свободное время у всех не одинаково распределено…

Это надо всем, особенно тем кто программирует на паскале. К примеру вам. А давайте вы хотя бы попробуете сделать простенькую IDE, не обязательно сделать что то рабочее, но хотя бы что то, чтоб вы увидели что нужно для создания IDE. И дальше 2 варианта - вы перестанете просить разработчиков исправить всё и сразу, или исправите всё что вам надо - сами. Или хотя бы парсер для арифметических выражений. Не поймите меня не правильно, я тоже против костылей и в большей части с вами согласен, но я очень сомневаюсь что давление на разработчиков ускорит что то. Особенно считая что, как ни раз было сказано, проект делается в свободное от работы время. А когда кто то заставляет работать над чем то, на чем работал по фану - работать хочется меньше…

2 лайка

Не знаю, спрашивал ли кто уже - что-то смотрю другие версии Паскалей для NET типа Zonnon или Oxygen вообще своих оболочек не имеют - интегрируются в Visual Studio. Это вообще реалистично для PascalABC.NET? (На всякий случай: (1) IDE писал простенькую на Delphi, для Hope. (2) Как интегрироваться в VS и насколько это трудоёмко не имею ни малейшего представления)

А теперь представьте, что каждый школьный компьютер для занятий информатикой должен иметь установленную лицензионную Visual Studio…

Visual Studio Community бесплатная … но здоровая конечно. Однако, есть же какие-то предыдущие оболочки для установки вот как раз таких решений, которые можно поставить даже на старый нетбук купленный на новогоднюю распродажу.

Это хорошее задание для свободного разработчика :slight_smile:

Можно ли как-то сделать в WindowsForms такие же вкладки, как у Вас в IDE для переключения между файлами кодов? Вы ведь через формы делаете, не через WPF?

Здравствуйте. Пишу программку, которая должна работать с INI файлами. На просторах интернета нашел код для C#:

public class IniFile
{
    public string path;

    [System.Runtime.InteropServices.DllImport("kernel32")]
    private static extern long WritePrivateProfileString(string section,
        string key, string val, string filePath);
    [System.Runtime.InteropServices.DllImport("kernel32")]
    private static extern int GetPrivateProfileString(string section,
             string key, string def, StringBuilder retVal,
        int size, string filePath);

    /// <summary>
    /// INIFile Constructor.
    /// </summary>
    /// <PARAM name="INIPath"></PARAM>
    public IniFile(string INIPath)
    {
        path = INIPath;
    }
    /// <summary>
    /// Write Data to the INI File
    /// </summary>
    /// <PARAM name="Section"></PARAM>
    /// Section name
    /// <PARAM name="Key"></PARAM>
    /// Key Name
    /// <PARAM name="Value"></PARAM>
    /// Value Name
    public void IniWriteValue(string Section, string Key, string Value)
    {
        WritePrivateProfileString(Section, Key, Value, this.path);
    }

    /// <summary>
    /// Read Data Value From the Ini File
    /// </summary>
    /// <PARAM name="Section"></PARAM>
    /// <PARAM name="Key"></PARAM>
    /// <PARAM name="Path"></PARAM>
    /// <returns></returns>
    public string IniReadValue(string Section, string Key, string Default)
    {
        StringBuilder temp = new StringBuilder(255);
        int i = GetPrivateProfileString(Section, Key, Default, temp,
                                        255, this.path);
        return temp.ToString();

    }
}

Если нижняя часть понятная, ничего сложного с ней нет, то вот верхняя где идет импорт функции из DLL вводит меня в ступор. Как на PaslacABC.net можно провернуть импортирование функции из DLL?

Страница справки:

Вызов подпрограмм из неуправляемой dll

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

заголовок функции external 'имя dll' name 'имя функции в dll'; 

Например:

function MessageBox(h: integer; m,c: string; t: integer): integer;
  external 'User32.dll' name 'MessageBox';
...
MessageBox(0,'Hello!','Сообщение',0);
 

 

Такое, наверное, лучше в помощь новичкам писать, а не создавать новые темы…

Ребят, как добавить в основную программу (выводится в графическом окне). Еще одно окно рядом, в котором можно сделать кнопки, поля ввода, и т.д. и как правильно объявлять переменные чтоб читались в программах обоих окон. Что-то не соображу, компилятор ругается. графическое вывожу так:

window.Caption := ‘тра ля ля’;

SetWindowSize(800, 640);

window.IsFixedSize := true;

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

В GraphABC не поддерживается создание нескольких окон. Лучше всего наверное через System.Windows.Forms, но там много чего надо выучить чтоб хоть что то сделать.

А если вообще отдельное внешнее окно запилить? или так тоже нельзя? Т.е. основная прога создает окно графическое и одновременно рядом расположенное обычное… нельзя так?

Ну так через System.Windows.Forms жешь.

А как вставлять правильно? я пробовал тупо вписать код типа

uses System, System.Windows.Forms;

var f : Form;

btn : Button;

procedure ButtonClick(sender: object; e: EventArgs);

begin

MessageBox.Show(‘Hello world!’);

end;

begin

f := new Form; btn := new Button; btn.Text := ‘Click me’; btn.Click += ButtonClick; f.Controls.Add(btn); Application.Run(f);

end.

и пошло поехало, начинает ругаться на старые работающие строки типа t: text; ожидаеться тип

  1. Выделите код нормально, поставив ``` до и после кода (только на отдельных строчках, иначе его глючит).

  2. На text ругается потому что есть text в стандартном модуле паскаля и есть в System.Windows.Forms. В стандартном модуле есть ещё TextFile - его синоним. А ещё не обязательно писать uses System, System.Windows.Forms;, но тогда придётся писать System.Windows.Forms. перед всеми именами из этого пространства имён.

Я что-то не понял, так как тогда текстовую переменную правильно объявить?