Dit lesje gaat over schakelen tussen ontwerp mode en gewoon.
Het leert je het grid te tekenen.
Code:
unit Unit1;
{
LES 1:
Kijk of je dit goed begrijpt. Als dat zo is, zal ik je laten zien
hoe je de rest moet doen.
Thaddy
Nodig:
Form,
Menu, waarvan de eerste Opties1 heet en de tweede
Knop, waar we u nog niets mee doen..... ;)
Ontwerp1
}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
MainMenu1: TMainMenu;
Opties1: TMenuItem;
Ontwerp1: TMenuItem;
procedure Ontwerp1Click(Sender: TObject);
procedure FormPaint(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Ontwerp1Click(Sender: TObject);
begin
// Vinkje aan of uit
Ontwerp1.Checked := not Ontwerp1.checked;
// Zorg dat het fom opnieuw getekend wordt
Form1.Invalidate;
end;
procedure TForm1.FormPaint(Sender: TObject);
var
Waar_zijn_we_op_de_X_as, // Van links naar rechts tellen
Waar_zijn_we_op_de_Y_as, // Van Boven naar onder tellen
StapGrootte:integer; // Hoeveel puntjes tot het volgende
begin
// Als het vinkje aan is, teken dan stipjes
if Ontwerp1.checked = true then
with form1.canvas do
begin
// We beginnen op 0;
Waar_zijn_we_op_de_X_as := 0;
Waar_zijn_we_op_de_Y_as := 0;
// We tellen 8 puntjes uit elkaar
StapGrootte := 8;
// Van boven naar beneden
while Waar_zijn_we_op_de_Y_as < form1.ClientHeight do
begin
// Maar eerst van links naar rechts
// en zolang we niet van het form af gaan...
while Waar_zijn_we_op_de_X_as < form1.ClientWidth do
begin
// Ga naar het aantal puntjes wat we al hebben
// (Dus eerst 0)
form1.Canvas.MoveTo(Waar_zijn_we_op_de_X_as,Waar_zijn_we_op_de_Y_as);
// Teken een lijntje van 1 puntje groot
form1.Canvas.LineTo(Waar_zijn_we_op_de_X_as + 1, Waar_zijn_we_op_de_Y_as + 1);
// Tel er dan de stap grootte bij op (8 dus)
inc( Waar_zijn_we_op_de_X_as, StapGrootte);
// Mag ook: Waar_zijn_we_op_de_X_as := Waar_zijn_we_op_de_X_as + StapGrootte
// dit rondje tekent een lijn met stipjes
end;
// Nu gaan we naar de volgende lijn, dus moeten we Waar_zijn_we_op_de X_as weer 0 maken
Waar_zijn_we_op_de_X_as := 0;
// En dus ook 8 puntjes verticaal er bij tellen!
inc(Waar_zijn_we_op_de_Y_as, StapGrootte);
end;
end;
end;
end.
Bookmarks