MainMenu

micha hunderteins

Grünschnabel
Hallo an Alle!

Ich hab folgendes problem:
Ich möchte gerne das MainMenu für mein Formular benutzen und möchte folgende Funktion haben. Immer dann wenn ich auf einen Button des MainMenu klicke möchte ich, dass eine andere mathematische Formel geladen wird. Wenn ich auf Xray klicke z.B. möchte ich, dass wenn man auf berechne klickt folgende Formel angewand wird: (Hauptritzel/Motorritzel)*2.125 bei ETC (Hauptritzel/Motorritzel)*1.56.

Kann mir vielleicht einer weiterhelfen? Ich bedanke mich schon einmal im Vorraus.(Bin seit 2Wochen bei Delphi also noch Anfänger)

MFG micha hunderteins
 

Anhänge

  • delphi-frage.jpg
    delphi-frage.jpg
    70,9 KB · Aufrufe: 134

Patrick Kamin

Erfahrenes Mitglied
-

Hallo Micha,
du kannst hier sehr gut Prozedur-Zeiger benutzen. Kurzes Beispiel
Code:
type
  TProzedur = procedure;
var ProzedurZeiger : TProzedur;
Code:
procedure EtcBerechnen;
var Ergebnis : Single;
begin
  Ergebnis := (Hauptritzel/Motorritzel)*1.56; //wobei Hauptritzel hier gerade als globale Variable benutzt wird
  ShowMessage(FloatToStr(Ergebnis));
end;
Und im OnClick Ereignis deines Menüs
Code:
procedure TForm1.OnClickMenueEtcBerechnen(bla bla);
begin
  ProzedurZeiger := EtcBerechnen;
end;
Wenn du dann die Berechnung durchführen willst, rufst du einfach nur die Prozedur ProzedurZeiger auf und es wird die jeweilige, zuvor ausgewählte Berechnungs-Prozedur ausgeführt.

Hoffe, das war einigermaßen verständlich, ansonsten einfach nochmal posten.
 

micha hunderteins

Grünschnabel
Danke Patrick , ich werde deinen Vorschlag gleich umsetzen.

Wenn ich fertig bin werde ich berichten ob es geklappt hat.

Danke noch einmal für deine schnelle Antwort.

MFG micha_101
 

micha hunderteins

Grünschnabel
Hallo,

muss ich die beiden Variablen(Motorritzel,Hauptritzel) in procedure EtcBerechnen oder woander deklarieren? Und dann sagt de Compiler noch, dass TProzedur und TMenuItem inkompatible Typen sind. Ich hab deinen Code am Ende des Programmes geschrieben oder hab ich da noch etwas zu beachten?

MFG micha_101
 

Patrick Kamin

Erfahrenes Mitglied
-

Hallo Micha,
Motorritzel und Hauptritzel sollen doch Werte sein, die man auf deiner Benutzeroberfläche eingeben kann, also musst du sie entweder als Parameter an deine Prozedur zur Berechnung von Etc übergeben oder die Prozedur zu einer Methode deines Formulares machen. Und meinen Code einfach an deinen ranzuhängen, bringt dir nichts, da es nur ein Beispiel war, wie man sowas machen kann.
Du kannst ja mal deinen Code hier posten, dann gucke ich mir den an und kann auch besser korrigieren.