Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Code wird ausgeführt, obwohl das nicht sein sollte (https://www.delphipraxis.net/36302-code-wird-ausgefuehrt-obwohl-das-nicht-sein-sollte.html)

Die Muhkuh 18. Dez 2004 11:49


Code wird ausgeführt, obwohl das nicht sein sollte
 
Hi,


ich hab grad nen komischen Problem :roteyes: .


Also, ich hab eine MDI-Form (Main), ein Child (Doc) und die Optionen Form (Option).


In der Main hab ich den Code:

Delphi-Quellcode:
procedure Tfmain.tbOptionenClick(Sender: TObject);
begin
  fOption.ShowModal;
end;
Option:
Delphi-Quellcode:
procedure TfOption.FormShow(Sender: TObject);
begin
  LoadOption;
end;

procedure TfOption.LoadOption;
begin
  Storage.RestoreFormPlacement;
  Optionen.NewDocAtStart := cbNewDocAtStart.Checked;
  if gbEditor.ItemIndex = 0 then
    Optionen.Editor := etRichText
  else
    Optionen.Editor := etCode;
  Optionen.Font.Name := cbSchriften.Text;
  Optionen.Font.Size := seSize.Value;
end;
Soweit alles klar.

Jetzt wird aber noch der Code ausgeführt:

Delphi-Quellcode:
procedure Tfmain.tbNeuClick(Sender: TObject);
begin
  Application.CreateForm(TfDoc, fDoc);
end;
Daraufhin bekomm ich eine Zugriffsverletzung, weil er auf Optionen.Font zugreifen will, aber zu diesem Zeitpunkt noch nicht definiert ist. Das komische ist nun, ich klicke auf den Button um die Optionen zu öffnen, aber der Code um ein MDIChild zu erstellen wird auch ausgeführt. Liegts vielleicht an der TFormStorage der RxLib?

fkerber 18. Dez 2004 12:13

Re: Code wird ausgeführt, obwohl das nicht sein sollte
 
Hi!

Was steht denn im OnCreate der TfDoc drin?


Ciao Frederic

Die Muhkuh 18. Dez 2004 12:57

Re: Code wird ausgeführt, obwohl das nicht sein sollte
 
Hi,

das hier:

Delphi-Quellcode:
begin  
  Inc(MDICount);
  Caption := 'Unbenanntes Dokument ' + IntToStr(MDICount);

  FModified := false;

  if Optionen.Editor = etRichText then
  begin
    pcPages.ActivePageIndex := 0;
    FEditor := etRichText;
    fmain.cbSchriften.Enabled := true;
  end
  else
  begin
    pcPages.ActivePageIndex := 1;
    FEditor := etCode;
    fmain.cbSchriften.Enabled := false;
  end;

  RichEdit.Font := Optionen.Font;
  fmain.cbSchriften.ItemIndex := fmain.cbSchriften.Items.IndexOf(Optionen.Font.Name);
end;

Die Muhkuh 18. Dez 2004 13:26

Re: Code wird ausgeführt, obwohl das nicht sein sollte
 
Hi,

hab den Fehler gefunden. Hatte vergessen bei Optionen.Font das TFont zu erstellen :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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 by Thomas Breitkreuz