Beim folgenden Quelltext bricht das Programm einfach ab.
Es gibt nicht einmal eine Fehlermeldung.
Delphi-Quellcode:
procedure WriteOnScreen(Text: string = ''; Linefeeds: Word = 0);
var i:Byte;
begin
with Consscreen^ do begin
Canvas.Font.Color := Consprops.Text;
Canvas.Font.Name := Consprops.Fontname;
Canvas.Font.Size := Consprops.Fontsize;
Canvas.Font.Style := Consprops.Fontstyle;
Canvas.Brush.Color := Consprops.Textbackground;
Canvas.TextOut(Consprops.PenLine*(Consprops.Fontsize+3),Consprops.PenPos,Text);
for i := 0 to Linefeeds do begin
Consprops.PenPos := 0;
Inc(Consprops.PenLine);
end;
end;
end;
Es sei noch folgendes gesagt:
Delphi-Quellcode:
type
TConsProps = record
Fontname: string;
Fontsize: Integer;
Text, Textbackground: TColor;
Fontstyle: TFontstyles;
PenLine: Word;
PenPos: Word;
end;
TConsScreen = type TForm;
PConsScreen = ^TConsScreen;
var ConsProps: TConsProps;
var ConsScreen: PConsScreen;
Consscreen wurde längst mit New(Consscreen) erstellt.
Der Aufruf:
1. WriteOnScreen(Text);
2. WriteOnScreen('',1);
Ergebnis der Haltepunkte:
- das Programm läuft ... bis zum ersten Vorkommen von Consscreen^.Canvas
- wenn man alles mit Consprops^.Canvas in Kommentare setzt, bricht das Programm nicht ab.
Wo könnte das Problem liegen