Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi try..finally (https://www.delphipraxis.net/41899-try-finally.html)

FAlter 10. Mär 2005 18:30

Re: try..finally
 
[OT]

Stimmt, wenn du es auf ein Papier schreibst, beschwert sich der Compiler auch nicht...

Nun ja, ich nutze begin..end nur da, wo ich es brauche, da ich schreibfaul bin, eine Ausnahme ist sowas:

Delphi-Quellcode:
if a then //wenn a = true
  if b then //und b = true
    Anw1
  else      //und b = false
    Anw2;

  if a then  //wenn a = true
    if b then //und b = true
      Anw1
  else       //wenn a = false, egal, was in b
    Anw2;
Da weiß weder ich noch Delphi ohne begin..end, welche Variante gemeint ist. (Ich möglicherweise doch wegen dem Einrücken.) Delphi meckert beim Compilieren nicht, aber ob es die Variante nimmt, die ich will?

[/ot]

Binärbaum 10. Mär 2005 19:31

Re: try..finally
 
[OT]
@FAlter:
Folgende Variante dürfte dann gemeint sein (unabhängig davon, wie man den Quelltext einrückt):
Delphi-Quellcode:
if a then //wenn a = true
  if b then //und b = true
    Anw1
  else      //und b = false
    Anw2;
Für die andere Variante wird begin..end benötigt:
Delphi-Quellcode:
if a then begin//wenn a = true
  if b then//und b = true
    Anw1;
end
else//wenn a = false
  Anw2;
[/OT]

MfG
Binärbaum

FAlter 10. Mär 2005 19:37

Re: try..finally
 
[ot]

Wie gesagt, ich nehm immer begin und end in solch einem Fall, da ich sonst möglicherweise selber durcheinanderkomme. In allen anderen Fällen versuch ich möglichst wenig zu schreiben also ohne Begin und end.

[/ot]

Manchmal mach ich auch sowas:

Delphi-Quellcode:

  with TBitmap.Create do
  try
    //...

    BitBlt(...); //BitBlt von {DieBitmap.}Canvas.Handle auf
                 //self.Canvas.Handle, also von der Kompo oder voms Form
  finally
    Free;
  end;
Vor allem, wenn ich zu faul bin, hochzuscrollen, um mit erstmal 'ne var Buffer: TBitmap anzulegen.

sECuRE 10. Mär 2005 20:13

Re: try..finally
 
Hi,

@FAlter/Binärbaum: Alternativ geht's auch so:
Delphi-Quellcode:
if (a) then
  if (b) then
    anw1
  else anw2;

// im gegensatz zu:
if (a) then
  if (b) then
    anw1
  else
else anw2;
cu

Speedmaster 10. Mär 2005 21:36

Re: try..finally
 
[OT] (BEGIN & END).SindGedachtfuer := 'Um mehrere Codezeilen auszuführen!'; [/OT]

Ist ja ein unterschied ob man..
Delphi-Quellcode:
if x < y then
DOWAS;
DOAUCHWAS;
..schreibt, oder..
Delphi-Quellcode:
if x < y then begin
  DOWAS;
  DOAUCHWAS;
end;
..schreibt, der compilierte Code dürfte denke ich allerdings nicht länger sein!

P.s.: Sry 4 Off Topic!

mr47 11. Mär 2005 12:42

Re: try..finally
 
Zitat:

Zitat von Speedmaster
[OT] (BEGIN & END).SindGedachtfuer := 'Um mehrere Codezeilen auszuführen!'; [/OT]

Ist ja ein unterschied ob man..
Delphi-Quellcode:
if x < y then
DOWAS;
DOAUCHWAS;
..schreibt, oder..
Delphi-Quellcode:
if x < y then begin
  DOWAS;
  DOAUCHWAS;
end;
..schreibt, der compilierte Code dürfte denke ich allerdings nicht länger sein!

P.s.: Sry 4 Off Topic!

Kein Problem :lol: @ begin..and: ich find's übrigens schlecht, wenn man das begin gleich hinter dem then schreibt. Ich hab mir inzwischen (imo) einen ziemlich guten Programmierstil angewohnt und ich finde sowas macht den Code so unstrukturiert.... Aber jeder muss wissen wie er das macht. (Ich setze auch bei if die Bedinung wenn sie länger als z.B. i=1 ist in Klammern)

mfg

Matze 11. Mär 2005 13:00

Re: try..finally
 
Die ganzen If-Anweisungen hier haben nichts mit der eigentlichen Problematik, die im 1. Beitrag angesprochen wurde, zu tun. Bitte kommt wieder zurück zum Thema, danke.

mr47 11. Mär 2005 13:15

Re: try..finally
 
Zitat:

Zitat von Matze
Die ganzen If-Anweisungen hier haben nichts mit der eigentlichen Problematik, die im 1. Beitrag angesprochen wurde, zu tun. Bitte kommt wieder zurück zum Thema, danke.

Doch. Er hat gefragt, ob das mit begin...end einen Unterschied macht. Und (genau) um das geht's immer noch!

Speedmaster 11. Mär 2005 13:26

Re: try..finally
 
Zitat:

Zitat von mr47
Kein Problem :lol: @ begin..and: ich find's übrigens schlecht, wenn man das begin gleich hinter dem then schreibt. Ich hab mir inzwischen (imo) einen ziemlich guten Programmierstil angewohnt und ich finde sowas macht den Code so unstrukturiert.... Aber jeder muss wissen wie er das macht. (Ich setze auch bei if die Bedinung wenn sie länger als z.B. i=1 ist in Klammern)

mfg

Ist meiner Meinung nach Geschmackssache!
Ich bevorzuge meinen Code so:

Delphi-Quellcode:
if anything > everything then begin
  WriteLn('Na du?');
  WriteLn('Heute abend zeit?');
end;

// Nach einem Leerzeichen weiter quelltext o. Kommentar und dannach der nexte Quelltext
if x > Y then MachNIX;

Und stimme mr47 zu, wir sind eigentlich noch beim Thema, den es geht ja um begin und end!


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

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