# Premade Form

{% hint style="success" %}
This form already contains login, register and redeem tokens pages and will automatically grab variables after login and run security checks.
{% endhint %}

#### InitializeForm should be called as soon as the first form loads, I recommend setting your forms properties so that visible is false and opacity is 0%

{% code title="C#" %}

```csharp
using TrinitySeal;

public Form1() {
InitializeComponent();
SealCheck.HashChecks();

if (SealCheck.isValidDLL) {
//new Form2() can be changed to the form that you want to show after login
//SealColours.Red can be changed to any colour that you like
//The form will automatically carry out all tasks such as grabbing variables and showing then next form is login is successful, or if freemode is enabled
TrinitySeal.Seal.InitializeForm("Your program secret", "Your version", "Your variable key", this, new Form2(), SealColours.Red)
}

}
```

{% endcode %}

{% code title="VB" %}

```
Public Sub Main()
    SealCheck.HashChecks()

    If SealCheck.isValidDLL Then
        TrinitySeal.Seal.InitializeForm("Your program secret", "Your version", "Your variable key", Me, New Form2(), SealColours.Red)
    End If
End Sub
```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://trinityseal.gitbook.io/trinityseal/main/premade-form.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
