Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   2 Proceduren vereinen (https://www.delphipraxis.net/167692-2-proceduren-vereinen.html)

Aphton 13. Apr 2012 11:37

AW: 2 Proceduren vereinen
 
Das ist ja grauslich; deshalb macht man soetwas:
Delphi-Quellcode:
procedure THaupt_Form. Druckbefehl;
begin
  {...}
end;

procedure THaupt_Form.BtnPrintClick(Sender: TObject);
begin
  Druckbefehl;
end;

procedure THaupt_Form.Drucken1Click(Sender: TObject);
var rec : TRect;
begin
if PrintDialog1.Execute then
  begin
    Druckbefehl;
  end;
end;

m-werk 13. Apr 2012 11:45

AW: 2 Proceduren vereinen
 
Spitze, genau sowas hab ich gesucht.

Hab es zwar etwas ändern müssen, aber es funktioniert prima.

DANKE nochmals

guinnes 13. Apr 2012 12:17

AW: 2 Proceduren vereinen
 
Zitat:

Zitat von m-werk (Beitrag 1161720)
Spitze, genau sowas hab ich gesucht.

Hattest du das nicht selber im 1. Beitrag so geschrieben ??

DeddyH 13. Apr 2012 12:21

AW: 2 Proceduren vereinen
 
Ja eben, ich dachte, genau das will er nicht :gruebel:

RWarnecke 13. Apr 2012 12:43

AW: 2 Proceduren vereinen
 
Der Unterschied zwischen Beitrag #1 und Beitrag #11 ist, dass er nur einmal die Funktion Druckbefehl pflegen muss.

DeddyH 13. Apr 2012 12:46

AW: 2 Proceduren vereinen
 
Das kommt aber darauf an, was man sich hinter dem Kommentar in #1 vorstellen muss. So etwas kommt halt dabei heraus, wenn man mit Informationen geizt.

himitsu 13. Apr 2012 13:24

AW: 2 Proceduren vereinen
 
Wobei Viele auch gerne sowas machen:
Delphi-Quellcode:
procedure THaupt_Form.BtnPrintClick(Sender: TObject);
begin
  //Druckbefehl
end;

procedure THaupt_Form.Drucken1Click(Sender: TObject);
begin
  if PrintDialog1.Execute then
    BtnPrintClick(nil);
end;
Und das mit dem Button in der Prozedur.
Das ist gäniger Alltag ... schließlich ist der Sender ja dafür da, also daß man ihn verwenden und/oder vergleichen kann.

Man könnte aber auch das Property Tag nutzten, also das Property für den Programmierer, welches man z.B. bei Drucken1 auf 1 setzt und dann abprüft.
Delphi-Quellcode:
procedure THaupt_Form.Drucken1Click(Sender: TObject);
begin
  if ((Sender as TComponent).Tag <> 1) or PrintDialog1.Execute then
  begin
    //Druckbefehl
  end;
end;
Wobei der Vergleich über die Variable aber einfacher, übersichtlicher, verständlicher und vorallem fehlerunanfälliger ist, gegenüber dem Tag.


Aber wenn man die Variante mit
Delphi-Quellcode:
procedure THaupt_Form.Druckbefehl;
OOP-mäßig noch weiter fortführt, dann landet am Ende der komplette Funktions-Code in mindestens einer eigenen Klasse.

guinnes 13. Apr 2012 14:01

AW: 2 Proceduren vereinen
 
Zitat:

Zitat von RWarnecke (Beitrag 1161732)
Der Unterschied zwischen Beitrag #1 und Beitrag #11 ist, dass er nur einmal die Funktion Druckbefehl pflegen muss.

Das ist mir schon klar. Aber, was ist im Beitrag 1 "Druckbefehl" ? Ein einfaches print ? Dann wäre eine eigene Methode eher überflüssig.
Zitat:

Zitat von m-werk (Beitrag 1161690)
Delphi-Quellcode:
procedure THaupt_Form.BtnPrintClick(Sender: TObject);
var rec : TRect;
begin
 //druckbefehl
end;
Delphi-Quellcode:
procedure THaupt_Form.Drucken1Click(Sender: TObject);
var rec : TRect;
begin
if PrintDialog1.Execute then
  begin
    //druckbefehl
  end;
end;


RWarnecke 13. Apr 2012 14:08

AW: 2 Proceduren vereinen
 
Unter "Druckbefehl" habe ich jetzt einfach mal interpretiert, dass er hier noch den Druck irgendwie aufbereitet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 Uhr.
Seite 2 von 2     12   

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