AGB  ·  Datenschutz  ·  Impressum  







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

procedure an Mutter Klasse übergeben

Ein Thema von Christian18 · begonnen am 11. Aug 2007 · letzter Beitrag vom 11. Aug 2007
Antwort Antwort
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#1

Re: procedure an Mutter Klasse übergeben

  Alt 11. Aug 2007, 16:25
Zitat von Christian18:
Hallo,

hier mal was ich eigentlich machen will. Ich habe ein Projekt mit 25 Forms. Alle dieser Forms soll auf die ESC Taste(27), Enter Taste(13), Einfg Taste(45) und Entf(46) reagieren können. Das zu programmieren ist nicht schwer. Nur habe ich nun auf jeder Form folgende procedure:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if shift = [] then
    begin
      case Key of
        13 : Edit(Sender);
        27 : Exit(Sender);
        45 : New(Sender);
        46 : Delete(Sender);
      end;
    end;
end;
Die einzelnen proceduren machen auf jeder Form etwas anderes. Nun habe ich mir gedacht erzeuge ich eine Mutter Klasse TProgramm, damit ich das nur einmal machen muss. An die Klasse TProgramm übergebe ich nun immer die proceduren die dann ausgeführt werden.

Übergeben würde ich die proceduren so:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  FProcedure1:=Edit(Sender);
  FProcedure2:=Exit(Sender);
  FProcedure3:=New(Sender);
  FProcedure4:=Delete(Sender);

  Form1.OnKeyDown:=KeyDown;
end;
Ist sowas möglich wie ich vorhabe??? Das ganze soll kein weiteren sinn haben. Sondern nur ein bisschen Quellcode einsparen.

MFG Christian18
Hallo, da gibt es eine ganze Reihe von Möglichkeiten, die OO-gerechteste ist meiner Meinung nach die verwendung virtueller Methoden: du definierst Edit bereits in TProgram, aber virtuell, und überschreibst sie in allen Abkömmlingen. Das Übergeben von prozeduralen Parametern ist dabei völlig überflüssig.

Nur macht das Ganze so oder so keinen Sinn: wenn du 25 verschiedene Versionen hast, dann musst du 25 Prozeduren schreiben, ganz egal, wo du sie unterbringst. Alles was du dir bisher überlegt hast, ist sinnlose Mehrarbeit. Die in Handbüchern erläuterte Verwendung virtueller Methoden dient auch nicht der Ersparnis, sondern der Einheitlichkeit - Draw zeichnet beim Typ TRectangle eben ein Rechteck und bei TCircle einen Kreis, der Befehl ist einheitlich, was dem Programmierer das Gedächtnis schont, aber schreiben muss er natürlich 2 Methoden.

Gruss Reinhard
  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 09:22 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