AGB  ·  Datenschutz  ·  Impressum  







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

access violation

Ein Thema von ford42 · begonnen am 2. Okt 2015 · letzter Beitrag vom 9. Okt 2015
 
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: access violation

  Alt 2. Okt 2015, 13:02
Edit: Naja, den Beitrag bearbeiten während ich meinen schreibe (kannst du zwar nicht wissen) ist nicht so klug, da meine Hinweise jetzt falsch verstanden werden könnten.

Also das was hier jetzt in deiner Haupt Pas-Datei steht sieht schonmal soweit richtig aus. Das was noch fehlt, ist die Instanziierung des m_ControllerAdd Feldes. Um dies noch zu erledigen, solltest du dir einen EventHandler für das FormCreate und das FormDestroy Ereignis erstellen und dann folgendes noch eintragen. Bitte beachte auch noch den Hinweis von nuclearping und benenne deine Klassen noch um und stelle ein T vor den Namen. Typen werden in Delphi laut Konvention immer mit einem T gekennzeichnet. Also sollte aus deiner CalcController Klasse ein TCalcController werden.

Delphi-Quellcode:
procedure TFrmCalculator.FormCreate(Sender: TObject);
begin
  m_ControllerAdd := CalcController.Create;
end;
Delphi-Quellcode:
procedure TFrmCalculator.FormDestroy(Sender: TObject);
begin
  m_ControllerAdd.Free;
end;

In deiner Controller.pas solltest du dir in der CalcController (später TCalcController) Klasse noch einen constructor und einen destructor im Public Abschnitt anlegen. Im Constructor solltest du folgendes reinschreiben:

Delphi-Quellcode:
constructor CalcController.Create;
begin
  m_AddZahl := TBerechnung.Create;
end;
Im Destructor folgendes:

Delphi-Quellcode:
destructor CalcController.Destroy;
begin
  m_AddZahl.Free;
end;
Aus deiner Notify Procedure kannst du dann die Erzeugung des Objektes wieder entfernen, da dies ja dann im Constructor schon gemacht wird.

Delphi-Quellcode:
procedure CalcController.Notify(p_Action: String; p_Param: String);
begin
  if (p_Action = 'Zahl') then
  begin
    m_AddZahl := TBerechnung.Create; // <---- Das hier wieder entfernen, da im Constructor bereits erledigt
    m_AddZahl.AddZahl(p_Param);
    //m_AddZahl.Free;
  end
  else
  if (p_Action = 'Ergebnis') then
  begin

  end;
end;
Wenn du das alles gemacht hast, dann sollte dein Programm eigentlich funktionieren.
  Mit Zitat antworten Zitat
 


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 09: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