AGB  ·  Datenschutz  ·  Impressum  







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

Variable.Create;

Ein Thema von himitsu · begonnen am 5. Mär 2014 · letzter Beitrag vom 10. Mär 2014
Antwort Antwort
Seite 3 von 5     123 45      
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#21

AW: Variable.Create;

  Alt 8. Mär 2014, 02:04
Warnung ok, ich denke jeder hat schonmal ausversehen die Zuweisung vergessen. Fehler aber definitiv nicht!

Konstrukte wie:
Delphi-Quellcode:
with TBitmap.Create do
try
  LoadFromFile('');
finally
  Free;
end;
würden dann wohl auch nicht mehr funktionieren.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.019 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#22

AW: Variable.Create;

  Alt 8. Mär 2014, 02:09
Gibt imho wichtigeres, als die Sprache idiotensicher zu machen...
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#23

AW: Variable.Create;

  Alt 8. Mär 2014, 08:32
@Furtbichler: Bitte, werde kein Designer von Programmiersprachen. Soweit ich sehen kann, würdest du mehrfache Konstruktoraufrufe weiterhin zulassen? Und die fehlende Variablenzuweisung macht den Code unintuitiv.
Ich gebe den Tipp, kein Designer von Programmiersprachen zu werden, gerne an Herrn Wirth weiter. In Pascal schreibt man nun einmal: new(a) und nicht a:=new()
Und bezüglich der Vermeidung eines mehrfachen Konstruktoraufrufes könnte man ja im 'new' prüfen, die Referenz 'a' nil ist und ggf (Compilerswitch) eine Exception werfen ('Possible overwrite of an instantiated object'). Wäre auch nicht doof.
Gibt imho wichtigeres, als die Sprache idiotensicher zu machen...
Z.B.? Exotische Blödsinnsfeatures, die keine Sau braucht und eh verbuggt umgesetzt werden? Ich dachte immer, Pascal ist eine Lehrsprache und man könnte sich auch mal darüber unterhalten, wie man Sprachen verbessert.

Geändert von Furtbichler ( 8. Mär 2014 um 08:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#24

AW: Variable.Create;

  Alt 8. Mär 2014, 09:59
Warnung ok, ich denke jeder hat schonmal ausversehen die Zuweisung vergessen. Fehler aber definitiv nicht!

Konstrukte wie:
Delphi-Quellcode:
with TBitmap.Create do
try
  LoadFromFile('');
finally
  Free;
end;
würden dann wohl auch nicht mehr funktionieren.
Wieso denn nicht?

Der Compiler macht intern doch sowas draus:
Delphi-Quellcode:
AutomatischGenerierteLokaleVariable1 := TBitmap.Create;
try
  AutomatischGenerierteLokaleVariable1.LoadFromFile('');
finally
  AutomatischGenerierteLokaleVariable1.Free;
end;

[edit]
Upss, du meinst den String?

Joar, das wird schwieriger.

Es gibt doch jetzt diese Attribute.
Darüber könnte man auch Anweisungen für den Compiler generieren, aber das wäre nur "halb" sinnvoll,
da der dann nur Konstanten und keine Variablen auswerten könnte.

Wenn, dann wäre es besser, wenn man, so wie bei der Index- oder Bereichsprüfung eine Codegenerierung aktivieren könnte, welche beim Programmablauf eine Parameterprüfung entsprechend der Attribute durchführen würde.
Allerdings wäre es wohl besser, wenn solche Sachen endlich mal standardmäßig aktiv sind, im Debug-Profil, und man sie geziehlt deaktivieren muß, wenn man Diese nicht will.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 8. Mär 2014 um 10:09 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#25

AW: Variable.Create;

  Alt 8. Mär 2014, 10:18
@Furtbichler: Bitte, werde kein Designer von Programmiersprachen. Soweit ich sehen kann, würdest du mehrfache Konstruktoraufrufe weiterhin zulassen? Und die fehlende Variablenzuweisung macht den Code unintuitiv.
Die Extended Syntax von New und Dispose funktioniert nunmal so ähnlich... wenn auch nur für object :

Delphi-Quellcode:
program tobjectcstr;

type
  TTest = object
    constructor Create(a, b: Integer);
    constructor Create(s: String);
    destructor Destroy;
  end;
  PTest = ^TTest;

constructor TTest.Create(a, b: Integer);
begin
  Writeln('Called constructor with ', a, ' & ', b);
end;

constructor TTest.Create(s: String);
begin
  Writeln('Called constructor with ', s);
end;

destructor TTest.Destroy;
begin
  Writeln('Called destructor');
end;

var
  t: PTest;
begin
  t := New(PTest, Create(42, 12));
  Dispose(t, Destroy);
  New(t, Create('Hello World'));
  Dispose(t, Destroy);
end.
Code:
$ fpc tobjectcstr.pas
Free Pascal Compiler version 2.6.2 [2013/02/16] for i386
Copyright (c) 1993-2012 by Florian Klaempfl and others
Target OS: Linux for i386
Compiling tobjectcstr.pas
Linking tobjectcstr
/usr/bin/ld: warning: testoutput/link.res contains output sections; did you forget -T?
33 lines compiled, 0.2 sec
$ ./tobjectcstr
Called constructor with 42 & 12
Called destructor
Called constructor with Hello World
Called destructor
(Ich habe jedoch nicht getestet, ob Delphi das auch ohne Probleme schluckt...)

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.019 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#26

AW: Variable.Create;

  Alt 9. Mär 2014, 18:40
Gibt imho wichtigeres, als die Sprache idiotensicher zu machen...
Z.B.? Exotische Blödsinnsfeatures, die keine Sau braucht und eh verbuggt umgesetzt werden? Ich dachte immer, Pascal ist eine Lehrsprache und man könnte sich auch mal darüber unterhalten, wie man Sprachen verbessert.
Ich dachte, du wärst einer von denen, die auch mal über den Tellerrand von Delphi hinausgeblickt haben und in den Genuss von sinnvollen Language Features in anderen Sprachen gekommen sind, die sie in Delphi schmerzlich vermissen.
Und Pascal (bzw Delphi) ist schon lang keine Lehrsprache mehr.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#27

AW: Variable.Create;

  Alt 9. Mär 2014, 19:45
Und Pascal (bzw Delphi) ist schon lang keine Lehrsprache mehr.
Da hast Du nun auch wieder recht.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#28

AW: Variable.Create;

  Alt 10. Mär 2014, 08:53
Gerade durch Zufall entdeckt: http://docwiki.embarcadero.com/CodeE...e_%28Delphi%29
Zitat:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  regex: TRegEx;
  input: string;
  myEval: TMatchEvaluator;
begin
  i := 0;
  input := Edit1.Text;
  regex.Create('cc'); //<-- Nanu?
  myEval := ReplaceCC;
  Edit2.Text := regex.Replace(input, myEval);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#29

AW: Variable.Create;

  Alt 10. Mär 2014, 09:01
Gerade durch Zufall entdeckt: http://docwiki.embarcadero.com/CodeE...e_%28Delphi%29
Zitat:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  regex: TRegEx;
  input: string;
  myEval: TMatchEvaluator;
begin
  i := 0;
  input := Edit1.Text;
  regex.Create('cc'); //<-- Nanu?
  myEval := ReplaceCC;
  Edit2.Text := regex.Replace(input, myEval);
end;
TRegEx ist ein record - da geht das.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#30

AW: Variable.Create;

  Alt 10. Mär 2014, 09:54
Stimmt, hab ich dann auch gemerkt, verwirrend sieht es aber allemal aus.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 5     123 45      


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 02:01 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