AGB  ·  Datenschutz  ·  Impressum  







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

Einfaches MVC Modell funktioniert nicht!

Ein Thema von mo_greene · begonnen am 10. Jun 2007 · letzter Beitrag vom 10. Jun 2007
 
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Einfaches MVC Modell funktioniert nicht!

  Alt 10. Jun 2007, 17:06
Zitat von mo_greene:
Vielen Dank für deine vielen Hinweise.

Ich bin jedoch noch ziemlicher Anfänger und wie du ersehen konntest, beschäftige ich mich noch mit den Grundlagen!
Könntest du mir sagen, wo ich im uView_Control das Modell richtig einbringen muss!
Ich habe mich vllt spitz ausgedrückt, habe es aber nicht böse gemeint. Also nächstes Mal ein paar "!" weniger, hmm?
Zitat:
Wenn ich die globale Variabel rausnehme, da du gesagt hast, dass sie falsch ist, ist das Programm auf fehlerhaft.
Jupp, es fehlt ja pötzlich der Bezeichner Modell, den du in den Methoden deines Forms benutzt.
Deshalb sagte ich, dass du es als öffentliche Eigenschaft lösen kannst:
Delphi-Quellcode:
TForm1 = class(TForm)
  ...
  private
    fModell : TModell;
  protected
    procedure SetModell(const aValue : TModell);
  public
    ...
    property Modell : TModell
      read fModell
      write SetModell;
  end;
Was passiert da? Nun du hast jetzt eine öffentliche Eigenschaft, die beim Lesen das Feld fModell direkt zurückgibt.
Beim Schreiben wird allerdings die Methode SetModell aufgerufen.
Der Grund ist der, dass du wahrscheinlich die Ansicht aktualisieren wilst, wenn jemand ein Modell reingeworfen hat, richtig?
Und genau das kannst du in SetModell machen.
Du musst mindestens das Feld besetzen...
Delphi-Quellcode:
procedure TForm1.SetModell(const aValue : TModell);
begin
  fModell := aValue;
end;
...Kannst aber natürlich auch die Ansicht aktualisieren...
Delphi-Quellcode:
procedure TForm1.SetModell(const aValue : TModell);
begin
  if fModell = aValue then Exit; // hat sich ja nix geändert....

  fModell := aValue;
  MaskeAktualisieren();
end;
Wer immer die Ansicht erzeugt und anzeigt, kann jetzt einfach so die Daten zuweisen:
Delphi-Quellcode:
var
  ansicht : TForm1;
begin
  ansicht := TForm1.Create(nil);
  ansicht.Modell := deinModell;
  ansicht.ShowModal();
  ....

Zitat:
Ich habe mich auch schon vorher gewundert, warum das Modell dort eine globale Variable ist, aber so habe ich das leider aus dem Unterricht mitgenommen!
Au weia!
Kann ich mir gar nicht vorstellen, dass euer Lehrer euch das Trennen von Daten, Logik und Ansicht beibringen will, aber zugeich solche Totsünden (globale Variablen) begeht...
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  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 10:19 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