![]() |
class
Ich habe wiedereinmal ein Problem mit einer Klasse.
Aufgebaut ist die so:
Delphi-Quellcode:
aufgerufen wird die so:
unit usys;
{$mode objfpc}{$H+} interface uses Classes, SysUtils; type { Tsys } TTraymenue= record FFEinfachesuche:Boolean; FFErweitertesuche:Boolean; FFEinstellungen:Boolean; FFSchuelereinwahl:Boolean; end; TSuche= record FFSuchanzeige:string[100]; FFMAX_Suchbegr:integer; end; TTray= record FFTrayanzeigen:Boolean; FFTrayopen:Boolean; Menue:TTraymenue end; TSpeicher= record Suche:TSuche; Tray:TTray; end; TStr100=string[100]; Tsys =class private FSuchanzeige:string[100]; FMAX_Suchbegr:integer; FTrayanzeigen:boolean; FTrayopen: boolean; FEinfachesuche: boolean; FEinstellungen: boolean; FErweiterteSuche: boolean; FSchuelereinwahl: boolean; procedure SetEinfachesuche(const AValue: boolean); procedure SetEinstellungen(const AValue: boolean); procedure SetErweiterteSuche(const AValue: boolean); procedure SetMAX_Suchbegriffe(const AValue: integer); procedure SetSchuelereinwahl(const AValue: boolean); procedure SetSuchanzeige(const AValue: Tstr100); procedure SetTrayanzeigen(const AValue: boolean); procedure SetTrayopen(const AValue: boolean); public constructor Create; procedure saveSettings; published property MAX_Suchbegriffe:integer read FMAX_Suchbegr write SetMAX_Suchbegriffe ; property Suchanzeige:Tstr100 read FSuchanzeige write SetSuchanzeige; property Trayanzeigen:boolean read FTrayanzeigen write SetTrayanzeigen; property Trayopen:boolean read FTrayopen write SetTrayopen; property Einfachesuche:boolean read FEinfachesuche write SetEinfachesuche; property ErweiterteSuche:boolean read FErweiterteSuche write SetErweiterteSuche; property Einstellungen:boolean read FEinstellungen write SetEinstellungen; property Schuelereinwahl:boolean read FSchuelereinwahl write SetSchuelereinwahl; end; implementation { Tsys } procedure Tsys.SetMAX_Suchbegriffe(const AValue: integer); begin if FMAX_Suchbegr=AValue then exit; FMAX_Suchbegr:=AValue; end; //... constructor Tsys.Create; var F: file of TSpeicher; X: TSpeicher; begin try try Assignfile(F,ExtractFilePath(paramstr(0))+'Data'+pathdelim+'sys.bve'); Reset(F); Read(F,X); except raise Exception.Create('Die Classe "TSys" konnte nicht Erstellt werden...'); end; finally Closefile(F); end; try FSchuelereinwahl:=X.Tray.Menue.FFSchuelereinwahl; FEinstellungen:=X.Tray.Menue.FFEinstellungen; FErweitertesuche:=X.Tray.Menue.FFErweitertesuche; FEinfachesuche:=X.Tray.Menue.FFEinfachesuche; FTrayopen:=X.Tray.FFTrayopen; FTrayanzeigen:=X.Tray.FFTrayanzeigen; FMAX_Suchbegr:=X.Suche.FFMAX_Suchbegr; FSuchanzeige:=X.Suche.FFSuchanzeige; except raise Exception.Create('Zuweisung bei class TSys funktionierte nicht in Create.'); end; end;
Delphi-Quellcode:
jetzt bekomme ich aber bei dem Showmessage eine Fehlermeldung:var sys:Tsys; //... sys.Create; Showmessage(inttostr(sys.MAX_Suchbegriffe)); Zitat:
Wenn ich das richtig versteh, meint der ich hab die nicht richtig erzeugt... :( gruß Teekeks |
Re: class
Mal wieder der Standardfehler.
Delphi-Quellcode:
//sys.Create; //falsch!!
sys := TSys.Create; //so! |
Re: class
ahh!
OMG! das ist mir doch schonmal passiert... *peinlich* DANKE!!! |
Re: class
Kein Problem, aber nicht wieder tun, gell? :zwinker:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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