Alrighty then.
I could do the simple insert method, but we have to make as many procedures as we can for this subject, and also i am going to develop the function further by adding some conditions.


Why do you have to make as many procedures as you can? If a simple insert statement works, why complicate it? You can always build around the basic insert statement.

Using procedures vs triggers (when button pressed, etc) is a matter of technique. Definitely, if something is going to be used more than once, put it in a procedure. If the action or processing of data is simple, leave it in the trigger. When it starts getting complicated or lengthy, you can convert the trigger to a procedure (copy the code in the trigger, make a new procedure in the program units, comment out the trigger body, add a line at the top that identifies what to do (using a procedure, just type the procedure name, and the form will jump to the procedure).

If you are using a procedure that is complex or has a lot of testing in it, that's when parameters come in handy. You can call a function or another procedure from the calling procedure and pass parameters as needed. Most of the time it is just as convenient to refer to values using :datablock.item, but that is just technique.

So back to your original question, you aren't doing a "create or replace procedure as" in the form. You don't need the "create or replace" part. You create the procedure by making a new procedure (using the green + button) in the program units area. The + button creates a template for you.