Важно понять различие между процедурами и методами. Процедуры (и функции) -- самостоятельные элементы, а методы -- это процедуры (или функции), включённые в состав классов.
- Код: Выделить всё
type
MyClass = class
procedure Sum(A, B: Integer); // это метод
end;
procedure Sum(A, B: Integer); // а это процедура
Кроме методов, в классах могут быть переменные, которые в этом случае называются полями.
- Код: Выделить всё
type
TForm1 = class(TForm)
Label1: TLabel; // это поле класса TForm1
end;
var
Form1: TForm; // а это глобальная переменная
Rastchepkin писал(а):1) Почему когда в процедуре обращаешься к стринггриду, лейблу или еще к чему-нибудь вылетает ошибка типа " Identifier not found *** "? как это исправить?
Потому что стринггрид, лейбл и т.п. -- это поля формы, т.е. они внутри класса формы. Выхода два
1. сделать процедуру методом того же класса, т.е. включить её туда же, где находятся поля.
2. оставить процедуру, и указывать, где находятся стринггрид, лейбл и т.п., например Form1.Label1, как предложил
Иван Шихалев.
Rastchepkin писал(а):2) Объявляю в uses еще 1 unit, в var объявляю вторую форму, но вылетает ошибка "Identifier not found ***"
Модули (юниты) не объявляют, это не переменные. Их создают и используют. Чтобы получить модуль с формой, нужно создать новую форму а модуль для неё Lazarus создаст автоматически. При этом переменная формы уже будет объявлена в новом модуле, и объявлять её где-то ещё уже не нужно. После этого файлы модуля (pas) и формы (lfm) нужно сохранить (например, в папку проекта). Имя, под которым сохранили модуль, можно добавлять в uses других модулей, т.е. использовать новый модуль из других.
Rastchepkin писал(а):3)как правильно объявить процедуру в private или public?
Нужно сделать её методом:
- Код: Выделить всё
TMyClass = class
private
procedure MyPrivateProcedure();
public
procedure MyPublicProcedure();
end;
Чем путаться в понятиях, проще приложить пример и спросить почему не работает. И кстати, было бы полезно для начала почитать какую-нибудь книжку по Lazarus или Delphi, тем более что на этом форуме давали ссылки как минимум на две, обе доступны для свободного скачивания.