![]() |
Re: EInvalidPointer bei Zerstörung einer Klasse
Den Fehler konnte ich jetzt auch nicht direkt finden, daher hab ich einfachmal den Code teilweise geändert/vereinfacht. Damit gehts.
Delphi-Quellcode:
MfG
unit Flughafen;
interface uses StdCtrls, ExtCtrls, Classes; type TFlughafen = class private vLabel1: TLabel; vSearch: TTimer; vEnabled: Boolean; vInterval: Integer; vText: String; procedure SetEnabled(Status: Boolean); procedure SetInterval(Value: Integer); procedure SetText(Value: String); function GetStart(Character: Char): Char; procedure SearchTimer(Sender: TObject); public constructor Create(aLabel: TLabel); destructor Destroy; override; property Output: TLabel read vLabel1 write vLabel1; property Enabled: Boolean read vEnabled write SetEnabled; property Interval: Integer read vInterval write SetInterval; property Text: String read vText write SetText; end; implementation constructor TFlughafen.Create(aLabel: TLabel); begin vSearch := TTimer.Create(nil); vSearch.OnTimer := SearchTimer; vSearch.Enabled := False; vSearch.Interval := 21; vLabel1:=aLabel; end; destructor TFlughafen.Destroy; begin vSearch.Free; end; procedure TFlughafen.SetEnabled(Status: Boolean); begin vEnabled := (Status) and Length(vText)>0; vSearch.Enabled := vEnabled; end; procedure TFlughafen.SetInterval(Value: Integer); begin vInterval := Value; vSearch.Interval := Value; end; procedure TFlughafen.SetText(Value: String); begin vText := Value; vLabel1.Caption:=''; end; function TFlughafen.GetStart(Character: Char): Char; begin case Character of #0..#9: result := #0; #10: result := #10; #11..#31: result := #0; #32: result := #32; #33..#47: result := #33; #48..#57: result := #48; #58..#64: result := #33; #65..#90: result := #65; #91..#96: result := #91; #97..#122: result := #97; else result := #123; end; end; procedure TFlughafen.SearchTimer(Sender: TObject); var capt: String; len: Integer; begin capt:=vLabel1.Caption; len:=Length(capt); if (len=0) or (capt[len]=vText[len]) then begin if len=Length(vText) then vSearch.Enabled:=False else capt:=capt+GetStart(vText[len+1]); end else Inc(capt[len]); vLabel1.Caption:=capt; end; end. Phantom1 |
Re: EInvalidPointer bei Zerstörung einer Klasse
Moin!
Und wenn ihr Destroy schon überschreibt, dann seit wenigstens so nett am Ende der überschriebenen Methode noch ein Inherited aufzurufen - das habe ich bisher bei noch keinem von euch gesehen... MfG Muetze1 |
Re: EInvalidPointer bei Zerstörung einer Klasse
Zitat:
mfg Phantom1 |
Re: EInvalidPointer bei Zerstörung einer Klasse
Moin!
Zitat:
2. Ich habe nicht geschrieben das es zwingend ist, aber der vollständigkeitshalber könnte man es ja mal einfügen - weil so merkt sich jeder eine Sonderbehandlung das es nicht braucht und vergisst es später mal woanders. Auch wenn man den Vorfahren mal schnell ändert, hat man ein Problem. MfG Muetze1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz