Author Topic: All about custom debug appearances  (Read 471 times)

Offline CX gamer

  • Jr. Member
  • **
  • Posts: 85
  • Rep: 0
    • View Profile
All about custom debug appearances
« on: July 20, 2010, 01:22:40 pm »
All about custom debug appearances
by CX gamer

Difficulty: Intermediate
Scar version: 3.2.2


An example of a custom debug appearance is this;

I will be teaching you how you can customise your debug box yourself.

Basics
First we need to declare a variable to store your personalised appearance in.
We will call this myDebugParam.
[scar]program CustomDebug;
var
  myDebugParam : TDebugParams

begin
end.[/scar]
Now we need to assign some properties to the variable we have just created, the properties are;
* backColor: The background color
* color: The text-color
* name: The name of the font you're using
* style: The text style saved in a TfontStyle (more on this later)

We declare some of these properties;
[scar]program CustomDebug;
var
  myDebugParam : TDebugParams

begin
  myDebugParam.backColor := clBlack;
  myDebugParam.color := clGreen;
  myDebugParam.name := 'Times New Roman';
end.[/scar]
Note: I'm using clBlack and clGreen as easy reference, but you can just as well use an integer color.

Now we have our custom appearance declared, we need to tell SCAR to use it.
We do this with the setDebugParams(myDebugParam); command.
[scar]program CustomDebug;
var
  myDebugParam : TDebugParams;

begin
  myDebugParam.backColor := clBlack;
  myDebugParam.color := clGreen;
  myDebugParam.name := 'Times New Roman';
  setDebugParams(myDebugParam);
end.[/scar]
And ofcourse, we need to 'use' our new appearance, so we use a writeln command.
[scar]program CustomDebug;
var
  myDebugParam : TDebugParams;

begin
  myDebugParam.backColor := clBlack;
  myDebugParam.color := clGreen;
  myDebugParam.name := 'Times New Roman';
  setDebugParams(myDebugParam);
  writeln('Hello, world!');
end.[/scar]
If you run this script, it should output something like .
Please note that the setDebugParams-command will only use your appearance for the next writeln.

Using styles
Using a style (bold, italic, underlined or strike-through) is very easy.
You will just need add another property.
[scar]myDebugParam.style :=[/scar]
This is followed by one or more of the following, placed between square brackets.
Code: [Select]
fsBold
fsItalic
fsUnderline
fsStrikeOut
Example;
[scar]program CustomDebug;
var
  myDebugParam : TDebugParams;

begin
  myDebugParam.backColor := clBlack;
  myDebugParam.color := clGreen;
  myDebugParam.name := 'Times New Roman';
  myDebugParam.style := [fsItalic, fsUnderline];
  
  setDebugParams(myDebugParam);
  writeln('Hello, world!');
end.[/scar]
This will output .

You may also create a variable;
[scar]myTfontStyles : TfontStyles[/scar]
which can store the same values.

Multiple appearances per line
It is currently possible to use more than one appearance on a single line.
For this, we will need to create 2 debug parameters. You should be able to make those now.
Then we will need to declare a string, and we save the first part of our message to that string.
[scar]program CustomDebug;
var
  myDebugParam1, myDebugParam2 : TDebugParams;
  s : string;

begin
  myDebugParam1.backColor := clBlack;
  myDebugParam1.color := clGreen;
  myDebugParam1.name := 'Times New Roman';
  
  myDebugParam2.backColor := clBlack;
  myDebugParam2.color := clRed;
  myDebugParam2.name := 'Times New Roman';
  
  setDebugParams(myDebugParam1);
  s := 'Hello, ';
end.[/scar]
Now here comes the tricky part;
we are going to use 2 writeln's, but we want them to output on the same line.
For that to happen, we make the string a bit longer, but we won't declare the added characters.
This will cause the writeln to skip the new-line, so the next writeln will continue after the last, on the same line.
'Hello, ' has 7 characters, so we will make string s 8 characters long.
Note that any length equal or longer than 8 will work.
[scar]setDebugParams(myDebugParam1);
s := 'Hello, ';
setLength(s, 8);
writeln(s);[/scar]
And now we will just set the new debug parameters and write the last part of our message;
[scar]setDebugParams(myDebugParam2);
writeln('world!');[/scar]
If done right, you should have this code now;
[scar]program CustomDebug;
var
  myDebugParam1, myDebugParam2 : TDebugParams;
  s : string;

begin
  myDebugParam1.backColor := clBlack;
  myDebugParam1.color := clGreen;
  myDebugParam1.name := 'Times New Roman';
  
  myDebugParam2.backColor := clBlack;
  myDebugParam2.color := clRed;
  myDebugParam2.name := 'Times New Roman';
  
  setDebugParams(myDebugParam1);
  s := 'Hello, ';
  setLength(s, 8);
  writeln(s);
  
  setDebugParams(myDebugParam2);
  writeln('world!');
end.[/scar]
Which should look something like .

This concludes my brief tutorial. I hope you understood most of it. :)
If you have any questions, please ask. ;)
« Last Edit: July 21, 2010, 03:58:13 am by CX gamer »

Freddy1990.com

All about custom debug appearances
« on: July 20, 2010, 01:22:40 pm »

Offline Freddy

  • Owner
  • *****
  • Posts: 2616
  • Rep: 19
    • MSN Messenger - freddy1990@gmail.com
    • AOL Instant Messenger - Freddy199O
    • View Profile
    • Email
Re: All about custom debug appearances
« Reply #1 on: July 21, 2010, 03:24:43 am »
Nice work :)

Freddy1990.com

Re: All about custom debug appearances
« Reply #1 on: July 21, 2010, 03:24:43 am »