AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

class

Ein Thema von Teekeks · begonnen am 20. Jan 2009 · letzter Beitrag vom 20. Jan 2009
Antwort Antwort
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#1

class

  Alt 20. Jan 2009, 20:02
Ich habe wiedereinmal ein Problem mit einer Klasse.
Aufgebaut ist die so:
Delphi-Quellcode:
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;
aufgerufen wird die so:
Delphi-Quellcode:
 
var sys:Tsys;
//...
 sys.Create;
  Showmessage(inttostr(sys.MAX_Suchbegriffe));
jetzt bekomme ich aber bei dem Showmessage eine Fehlermeldung:
Zitat von Lazarus:
Project raised exception class 'External: SIGSEGV'.
Was mach ich falsch?
Wenn ich das richtig versteh, meint der ich hab die nicht richtig erzeugt...

gruß Teekeks
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: class

  Alt 20. Jan 2009, 20:03
Mal wieder der Standardfehler.
Delphi-Quellcode:
//sys.Create; //falsch!!
sys := TSys.Create; //so!
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#3

Re: class

  Alt 20. Jan 2009, 20:09
ahh!
OMG! das ist mir doch schonmal passiert... *peinlich* DANKE!!!
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: class

  Alt 20. Jan 2009, 20:15
Kein Problem, aber nicht wieder tun, gell?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz