![]() |
problem beim erstellen einer Funktion
hallo ich habe ein Problem mit meiner Funktion
ich will eine funkion schreiben damit ich nicht immer bei meinem Taschenrechner bei jeder zeile den quelltext schreiben muss will dort nur noch die funktion auf rufen und dann soll es klappen kann mir jemand dabei vielleicht helfen
Delphi-Quellcode:
hoffe das man so eine Funktion erstellt
function Taste (tas:Tbutton): integer; forward;
var strZahl: string; dblX : double; begin if edtEingabe.Text = '0' then edtEingabe.Text := tas.caption else edt.Eingabe.Text := edtEingabe.Text + tas.Caption; strZahl := edtEingabe.Text; dblX := StrToFloat (StrZahl); end; danke als mal für die hilfe |
Re: Funktion
Gib Deiner Frage bitte einen aussagekräftigen Titel. "Funktion" sagt nichts zu Deinem Problem aus :roll:
...:cat:... P.S.: Auch mehr als ein Wort sind im Titel erlaubt. |
Re: problem beim erstellen einer Funktion
Ja, so sieht im Allgemeinen eine Funktion aus. :)
Warum setzt du den Rückgabewert nicht? Wenn du keinen Rückgabewert brauchst, nimm am Besten eine Prozedur.
Delphi-Quellcode:
procedure Name(Param: ParamType);
|
Re: problem beim erstellen einer Funktion
mit prozeduren kenn ich mich auch nicht aus
und bei meiner Funktion bekomme ich sau viele fehlermeldung zum beispiel [Fehler] Unit2.pas(37): Anweisungen sind im Interface-Abschnitt nicht erlaubt [Fehler] Unit2.pas(39): Undefinierter Bezeichner: 'edtEingabe' [Fehler] Unit2.pas(39): 'THEN' erwartet, aber Bezeichner 'Text' gefunden [Fehler] Unit2.pas(57): 'THEN' erwartet, aber Bezeichner 'Text' gefunden [Fehler] Unit2.pas(67): 'THEN' erwartet, aber Bezeichner 'Text' gefunden [Fehler] Unit2.pas(77): 'THEN' erwartet, aber Bezeichner 'Text' gefunden [Fehler] Unit2.pas(83): Anweisung erwartet, aber Dateiende gefunden |
Re: problem beim erstellen einer Funktion
Du hast warscheinlich in anderen sprachen vorher programmiert. Einfach F1(help) benutzen. ;)
Der einzige unterschied zwischen function und procedure ist das die function nen wert zuruck gibt. Alles andere funtz gleich. ;) |
Re: problem beim erstellen einer Funktion
ja ich hab vorher C++ programmiert und jetzt soll ich delphi lernen
hab aber meine Proleme wie man sieht |
Re: problem beim erstellen einer Funktion
Das Problem bei dir ist das proceduren und funktionen die vom programm erstellt werden von jedem element des programms verwendet werden koennen. auch koennen alle komponenten von diesen procedure genutzt werden. also entweder schreibst du vor jeder komponente Form1.
Delphi-Quellcode:
oder aber du machst das bei deiner funktion. wobei ich tatsaechlich eher sagen wuerde das das eine procedur ist.
-> Form1.edtEingabe.Text;
-> Form1.tas.Caption; das wuerde dann so aussehen :
Delphi-Quellcode:
hier darf man aber nicht vergessen die funktion oben bei tform reinzuschreiben
procedure TForm1.Taste (tas:Tbutton);
Delphi-Quellcode:
folglich wuerde deine procedure so aussehen
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,buttons, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure Taste (tas:Tbutton); // das ist gemeint private { Private declarations } //darf aber auch hier stehen public { Public declarations } //oder hier end;
Delphi-Quellcode:
procedure TForm1.Taste (tas:Tbutton);
var strZahl: string; dblX : double; begin if edtEingabe.Text = '0' then edtEingabe.Text := tas.caption else edtEingabe.Text := edtEingabe.Text + tas.Caption; strZahl := edtEingabe.Text; dblX := StrToFloat (StrZahl); end; |
Re: problem beim erstellen einer Funktion
Zitat:
das ganze kannst Du auch ohne eine Funktion lösen. Das "Geheimniss" ist: Du erzeugst nicht für jeden Button eine eigene OnClick Methode sondern verwendest für alle Buttons die selbe. Über den Parameter Sender erfährst Du dann welcher Button das OnClick-Egeigniss ausgelöst hat:
Delphi-Quellcode:
Du musst die Zuweisung der Methode nicht im OnCreate der Form machen. Du kannst auch einfach alle Buttonsmarkieren und dann im Objectinspektor allen das selbe OnClick zuweisen.
procedure TDemo_Form.FormCreate(Sender: TObject);
begin Button1.OnClick := AlleButonOnClick; Button2.OnClick := AlleButonOnClick; Button3.OnClick := AlleButonOnClick; Button4.OnClick := AlleButonOnClick; end; procedure TDemo_Form.AlleButonOnClick(Sender: TObject); var zahl : string; begin zahl := (Sender as TButton).Caption; // Der Sender wird ausgewertet und auf ein TButton gecastet. end; |
Re: problem beim erstellen einer Funktion
also ich werde da nicht richtig schlau draus kann mir vielleicht jemand mal ne funktion schreiben damit ich mal sehe wie die aussehen soll
|
Re: problem beim erstellen einer Funktion
Delphi-Quellcode:
Aufruf Beispiel:
function addieren(a,b:integer):integer;
begin result:=a+b; end;
Delphi-Quellcode:
edit:delphitags
procedure TForm1.Button1Click(Sender: TObject);
var zahl1,zahl2,endzahl:integer; begin zahl1 := StrToInt(edit1.Text); zahl2 := StrToInt(edit2.Text); endzahl := addieren(zahl1,zahl2); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 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