# Beschreibung der Scherzprogrammkomponenten

In diesem Dokument werden folgende Klassen beschrieben:

Name |  | Kurzbeschreibung
TCVirus | wichtig | Die Hauptklasse über die alle anderen gesteuert werden (Wrapper für TNVirus). (VCL, aber nicht visuell)
TNVirus | wichtig | Hierüber werden die Funktionen wie Tastenleuchten, oder verstecken aufgerufen (non-VCL)
TNVScreenCanvas | weniger wichtig | Ein Objekt dieses Types wird von TNVirus/TCVirus zur Verfügung gestellt, um damit auf den Bildschirm zu zeichen (je nach compiler Schalter: non-VCL/VCL)

Hinweis: Um TCVirus auszufüh;ren benötigt man den NonVCL-Canvas, der in einer seperaten Zipdatei der Komponente beiligen sollte. Wenn dies nicht der Fall ist, findet man ihn auf meiner Homepage www.benibela.de

## TCVirus (in Unit virus2.pas) (Hierarchie: TComponent -> TPersistent -> TObject)

Da TCVirus eine Wrapperklasse zu TNVirus ist, sind sämtliche Methoden und Eigenschaften bis auf die geerbten identisch.
TCVirus hat den Vorteil, dass es als Komponente auf das Formular gezogen werden kann, so dass das, für Anfänger schwieriges, erzeugen einer Klasse gespart bleibt.

### Methoden:

(siehe TNVirus)

### Eigenschaften

#### property DirectVirus:TNVirus read nVirus;

Dient dem Zugriff auf die TNVirus-Klasse ohne die Wrapperkomponente TCVirus.

(für weitere: siehe TNVirus, oder Delphihilfe)

## TNVirus (in Unit VirusNV.pas) (Hierarchie: TObject)

# Methoden

#### procedure SetKeyBoardLEDs(const numlock, caps, scroll: Boolean);

Schaltet die Tastatur LEDs (Das sind die kleinen Lämpchen oben rechts) auf die angegebenen Werte. Wird für eine LED true übergeben, wird sie eingeschaltet, ansonsten aus. Die Reihenfolge der Parameter entspricht der Reihenfolge der LEDs auf der Tastatur.

#### function GetShellWindow:HWND;
function GetStartButton:HWND;
function GetTNA:HWND;
function GetTNAClock:HWND;
function GetReBar:HWND;
function GetTaskList:HWND;
function GetIconDesktop:HWND;

Liefert ein Windows-Fenster-Handle zu einem der folgenden Fenster:

#### procedure HideFromTaskManager;
procedure ShowToTaskManager;

Versteckt bzw. zeigt die Anwendung dem mit STRG+ALT+ENTF zu öffnenden Taskmanager. Dies funktioniert nur unter W9x, führt aber auf höheren Windows zu keinem Fehler.

#### procedure Hide(handle: THandle);

Versteckt das Fenster dessen Handle übergeben wurde, und dessen Besitzter.
Durch das Verstecken des Besitzters verschwindet die Anwendung aus der Taskleiste wenn der Handle des letztens Formulars übergeben wird.
Das Aufrufen unter der VCL sieht so aus: virus.Hide(formname.handle);

#### procedure openCDTray

Öffnet die Schublade des CD-Rom Laufwerkes.

#### procedure closeCDTray

Schließt die Schublade des CD-Rom Laufwerkes.

### Eigenschaften

#### property Canvas: TNVScreenCanvas read GetCanvas;

Liefert einen Canvas zurück, über den auf den Bildschirm gezeichnet werden kann. Nähere Informationen gibt es bei der Beschreibung der ScreenCanvasKlasse.

#### property IsHidden:Boolean read GetHidden;

Gibt an, ob ein Fenster aktuell im Taskmanager sichtbar ist.

#### property ShellWindow:HWND read GetShellWindow;
property StartButton:HWND read GetStartButton;
property TNAHandle:HWND read GetTNA;
property TNAClock:HWND read GetTNAClock;
property ReBar:HWND read GetReBar;
property TaskList:HWND read GetTaskList;
property IconDesktop:HWND read GetIconDesktop;

Liefert das Handle eines der Fenster zurück. Nähere Informationen sind bei der Beschreibung der jeweiligen Methoden.

#### property XMouseTest: integer read x write x default 0;
property YMouseTest: integer read y write y default 0;

Wenn der Mauszeiger an der angegebenen Position ist, wird das Ereignis OnMousePos ausgelöst.

#### property MouseTestIntervall: cardinal read TimerInterval write setTimerInterval default 0;

Gibt an, nach wievielen Millisekunden jeweils, die Mauszeigerposition überprüft werden muss

### Ereignisse

#### property OnMousePos: TNVNotifyEvent read MousePos write MousePos default nil; //(TNVirus)
property OnMousePos: TNotifyEvent read MousePos write MousePos default nil; //(TCVirus)

TNVNotifyEvent=procedure of object;
TNotifyEvent=procedure (sender:TObject) of object;
Bestimmt das Ereignis, dass ausgelöst wird, wenn die Maus an der richtigen Position ist.

## TNVScreenCanvas (in Unit NVScreenCanvas.pas) (Hierachie: {TCanvas | TNVCanvas} -> TObject)

Mit dieser Klasse kann auf den Bildschirm gezeichnet werden.
Je nach Compilerschalter ist TNVScreenCanvas, entweder von der Delphiklasse TCanvas, oder meiner Non-Vcl-Klasse TNVCanvas abgeleitet, welche allerdings die selben Funktionen haben.

### Methoden

(Siehe die Canvas-Dokumentation)

#### procedure MirrowVertical;
procedure MirrowHorizontal;

Spiegelt den Bildschirm Vertikal bzw. Horizontal.

### Eigenschaften

(Siehe die Canvas-Dokumentation)