AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Variable.Create;

Ein Thema von himitsu · begonnen am 5. Mär 2014 · letzter Beitrag vom 10. Mär 2014
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#1

AW: Variable.Create;

  Alt 6. Mär 2014, 13:59
Ich weiß gar nicht, was ihr habt, im Beispiel oben kommt:
W1036 Variable 'Reg' might not have been initialized
Eine Warnung, ja, aber es compiliert trotzdem. Ich habe einen Fehler verlangt (der dazu führt, dass der Compiler seine Arbeit ohne Ergebnis beendet).

@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.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.355 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Variable.Create;

  Alt 6. Mär 2014, 14:09
Mir gefällt die Syntax mit dem new().

Man weiß einfach, "das Objekt wird hier neu erzeugt" und muss das nicht umständlich über eine Zuweisung und den TClass.Create erledigen (vergisst man in der Eile ja auch nach Jahren nochmal ab und zu).
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

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

AW: Variable.Create;

  Alt 8. Mär 2014, 01: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.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

AW: Variable.Create;

  Alt 8. Mär 2014, 01: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
Benutzerbild von himitsu
himitsu

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

AW: Variable.Create;

  Alt 8. Mär 2014, 08: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.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 8. Mär 2014 um 09:09 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: Variable.Create;

  Alt 8. Mär 2014, 07: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 07:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Variable.Create;

  Alt 9. Mär 2014, 17: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
 
#8

AW: Variable.Create;

  Alt 9. Mär 2014, 18: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.660 Beiträge
 
Delphi 12 Athens
 
#9

AW: Variable.Create;

  Alt 10. Mär 2014, 07: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.749 Beiträge
 
Delphi 2007 Professional
 
#10

AW: Variable.Create;

  Alt 10. Mär 2014, 08: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
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:25 Uhr.
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