Einzelnen Beitrag anzeigen

Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Procedure Ausführen...

  Alt 4. Mär 2005, 15:58
Zitat von Mitchl55:
Wenn ich mehr Ahnung hätte, dann würde ich es evtl. anders machen! Habe ich
aber leider momentan nicht. Aber vieleicht ist es für dich ja eine Leichtigkeit zu
erklären wie ich eine Funktion einbinde!? Ich komme nicht so ganz klar damit,
wo ich die Variablen deklarieren muss und ob die Variablen aus der Funktion
in der ganzen Form abrufbar sind? Möchte keine Parameter mit der Funktion
übergeben, sondern nur die Befehlsreihenfolge abarbeiten lassen.
Bin zwar nicht Luckie, kann dir aber vielleicht doch was zu sagen.

Also als erstes mal solltest du mal deinen Cursor auf das Wort Procedure oder function in Delphi setzen und die magische Taste F1 drücken. Dann erhältst du schon mal viel Infos zu Prozeduren und Funktionen.

Wenn du aber auf einem Form arbeitest, wird in Delphi Quellcode automatisch eine Klasse definiert, die von TForm abgeleitet ist. Das heisst nix anderes, daß du dir ein neues Objekt erstellst, was alles aus TForm erbt, und das du mit eigenen Dingen zusätzlich füllen kannst, ums mal laienhaft auszudrücken. Hinter Klassenvererbung steckt noch mehr, aber das würd hier nun zu weit führen.

Die Dinge, wie ich sie nannte, sind in Delphi Eigenschaften (Stichwort property) und Methoden. Eigenschaften sind Attribute, die dein Objekt beschreiben, und können aber selbst auch wieder Objekte sein. Legst du einen Button auf deine Form, so wird in deiner Klassendefinition ein Objekt button1 im Quellcode hinterlegt.

Methoden ist der Oberbegriff für Prozeduren und Funktionen, die sich im Wesentlichen nicht unterscheiden, ausser daß Funktionen dir einen Rückgabewert liefern können.

Soweit klar?

Willst du jetzt eine eigene Prozedur in der Klasse definieren, so musst du das an 2 Stellen. Erstens oben, in der Klassendefinition selbst. Da gibt es für dich erst mal 2 Bereiche: private und public. Spricht für sich, denk ich. Private heisst, daß du nur innerhalb der Klasse auf diese Methoden zugreifen kannst. Public heisst, dass du auch in abgeleiteten Klassen drauf zugreifen kannst.
Das Definieren der Methode alleine reicht jedoch nicht aus. Du musst sie auch implementieren. Dazu drückst du am besten im Editor selbst innerhalb deiner Klassendefinition die Tastenkombination STRG-SHIFT-C, und die IDE erstellt dir ein Grundgerüst im Implementierungsteil. Da kannst du jetzt reinschreiben, was du willstund brauchst, und kannst die definierte Methode überall innerhalb deiner Klasse durch Angeben des Namens mit den notwendigen Parameters aufrufen.

Hier mal ein einfaches Bsp, mit einem Button und einem edit auf der Form, und einer public procedure ZeigeInhalt welches dir einfach den Inhalt des Edit Feldes in einer Messagebox anzeigt. Aufrufen von ZeigeInhalt machst du im OnClick Ereignis des Buttons.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    procedure ZeigeInhalt;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
     ZeigeInhalt ;
end;

procedure TForm1.ZeigeInhalt ;
begin
     MessageDlg(edit1.text, mtInformation, [mbOK], 0);
end ;

end.
VORSICHT:
Das ist eine Möglichkeit, Methoden in die Klasse zu implementieren. Aber Luckie hats bereits geschildert, damit sind Design und Funktionalität des Programms nicht strikt getrennt. Aber für den Anfang erst mal ganz brauchbar für dich.

Aber wichtig ist, dir mal im Klaren zu werden, wie man in Delphi programmiert. Durch diese Doppelklicks auf Ereignisse innerhalb der IDE erreicht man zwar schon sehr viel, aber was sich dabei im Wesentlich abspielt bleibt dir verborgen.
  Mit Zitat antworten Zitat