AGB  ·  Datenschutz  ·  Impressum  







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

Procedure Ausführen...

Ein Thema von Mitchl55 · begonnen am 4. Mär 2005 · letzter Beitrag vom 4. Mär 2005
Antwort Antwort
Mitchl55

Registriert seit: 20. Feb 2003
Ort: Meppen
159 Beiträge
 
Delphi 7 Enterprise
 
#1

Procedure Ausführen...

  Alt 4. Mär 2005, 11:36
Hallo,

ich möchte nach/in ButtonClick4 den ButtonClick5 ausführen um Quelltext
nicht doppelt zu schreiben. Eine Funktion möchte ich nicht nehmen.

So wie ich das probiere scheint das nicht zu funktionieren!

Delphi-Quellcode:
procedure TfrmMAIN.Button4Click(Sender: TObject);
begin
 Procedure TfrmMAIN.Button4Click;
end;

procedure TfrmMAIN.Button5Click(Sender: TObject);
begin
  showmessage('Test');
end;
Weiß jemand was ich ändern müßte oder ob dieses garnicht möglich ist? Den Thread Beispiel verstehe ich so nicht wirklich!

Danke & Gruß

Mitchl
  Mit Zitat antworten Zitat
Benutzerbild von gothic_mike
gothic_mike

Registriert seit: 2. Okt 2003
Ort: Olbernhau
134 Beiträge
 
Delphi 7 Personal
 
#2

Re: Procedure Ausführen...

  Alt 4. Mär 2005, 11:41
Zitat von Mitchl55:

Delphi-Quellcode:
procedure TfrmMAIN.Button4Click(Sender: TObject);
begin
 Procedure TfrmMAIN.Button4Click;
end;

so müsste es gehen:

Delphi-Quellcode:
procedure TfrmMAIN.Button4Click(Sender: TObject);
begin
  Button5Click(Sender);
end;
bye4now, gothic_mike
. ..: carpe noctem :: coding in the darkness :.. .
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

Registriert seit: 4. Jun 2004
Ort: Nordhausen
2.214 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Procedure Ausführen...

  Alt 4. Mär 2005, 11:42
Oder im Objektinspektor einfach bei dem OnKlick-Event beides mal die gleiche procedure eintragen. Dann klappt, das auch.

André
André
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Procedure Ausführen...

  Alt 4. Mär 2005, 11:43
Zitat von Mitchl55:
Eine Funktion möchte ich nicht nehmen.
Und warum nicht? Warum willst du unbedingt dem Grundsatz zu widerhandlen, dass man GUI und Code von einander trennen sollte?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Mitchl55

Registriert seit: 20. Feb 2003
Ort: Meppen
159 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Procedure Ausführen...

  Alt 4. Mär 2005, 11:58
@ gothic_mike:

Vielen Dank, so gehts...

@Luckie

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.

PS: Ich weiß, neue Frage, neuer Thread.

Danke & Gruß

Mitchl
  Mit Zitat antworten Zitat
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, 16: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
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 10:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz