Guten Abend Programmierer,
ich bin ein Programmier Neuling ( Verstehe nur die Grundlagen) und habe deswegen eine Frage.
Ich habe mir zu dem Thema auch ein Buch gekauft und einige pdfs mir durchgelesen, aber werde aus den Dingern auch nicht schlauer für meine Problematik.
Ich habe eine Basisklasse
Delphi-Quelltext
1:
| Type TFileSemAuto = class(TObject) |
und eine abgeleitete Klasse
Delphi-Quelltext
1:
| type TDigitImageProcess = class(TFileSemAuto) |
Nun habe ich in meine TFileSemAuto eine Methode um Fehler zu überprüfen, wie Bsp.: ob die Datei existiert etc. In dieser Function soll dann ein MessageBox aus einer Case Anweisung aufgerufen werden.
Delphi-Quelltext
1:
| function DefectReportCheck( const Value:ShortInt):Integer; virtual; |
Es können aber auch in meiner TDigitImageProcess Klasse Fehler entstehen.
Aus diesem Grund habe ich die Funktion virtual erstellt und sie dann nochmals in meiner TDigitImageProcess aufgerufen
function DefectReportCheck( const Value:ShortInt):Integer; override;
In der Basisklasse habe ich einen ganz einfachen Code geschrieben (Case, if then else). Den identischen Code habe benötige ich auch in meiner abgeleiteten Klasse, plus das inherited damit er auch nach den anderen Fehlern überprüft.
und so sieht der Code aus in der
abgeleiteten Klasse:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| var Temp:Boolean; begin begin Case Value of 4: begin Case Application.MessageBox(PChar(Failur4+#13+Information2), PChar(Failur4),17) of IDOK: result:=1; IDCANCEL: result:=0; end; end; 5: begin Case Application.MessageBox(PChar(Failur5+#13+Information2), PChar(Failur5),17) of IDOK: result:=1; IDCANCEL: result:=0; end; end; else inherited DefectReportCheck(Value); end; end; |
Identisch sieht auch der Code in der
Basisklasse aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| begin Case Value of 1: begin Case Application.MessageBox(PChar(Failur1+#13+Information1), PChar(Failur1), 17) of IDOK: FErrorHandel:=1; IDCANCEL: FErrorHandel:=0; end; end; 2: begin Case Application.MessageBox(PChar(Failur2+#13+Information1), PChar(Failur2), 17) of IDOK: FErrorHandel:=1; IDCANCEL: FErrorHandel:=0; end; end; 3: begin Case Application.MessageBox(PChar(Failur3+#13+Information1), PChar(Failur3), 17) of IDOK: FErrorHandel:=1; IDCANCEL: FErrorHandel:=0; end; end; end; end; |
Das sind die Codes, jetzt mein Problem:
Nun will ich den Code aus meiner Basisklasse aufrufen und mir den Wert Rückgeben lassen,
aber dieser wird ja durch die abgeleitete Klasse wieder überschrieben. Weil er am Ende der Bearbeitung nochmals in die abgeleitete Klasse anfängt und mir dann kein Wert übergibt.
Kann mir jemand da Helfen?
gruß Bienenelf
Moderiert von
Martok: Code- durch Delphi-Tags ersetzt