AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Variable ist möglicherweise nicht initialisiert worden

Variable ist möglicherweise nicht initialisiert worden

Ein Thema von Codehunter · begonnen am 5. Feb 2019 · letzter Beitrag vom 6. Feb 2019
Antwort Antwort
Seite 2 von 2     12
Schokohase

Registriert seit: 17. Apr 2018
674 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#11

AW: Variable ist möglicherweise nicht initialisiert worden

  Alt 5. Feb 2019, 11:53
Nichts für ungut, das erinnert mich an diesen Einzeilercode, den es vor 30 Jahren in jeder Computerfachzeitschrift gab. Die erste Version scheint mir wesentlich übersichtlicher.
Das ist kein Einzeiler-Code, denn meiner besteht aus mehreren Zeilen.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
1.767 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#12

AW: Variable ist möglicherweise nicht initialisiert worden

  Alt 5. Feb 2019, 11:57
Ist das Zebra nun schwarz mit weißen Streifen oder weiß mit schwarzen Streifen? ^^

Der Code im Erstpost war ein Beispiel, an dem ich mein Anliegen leicht demonstrieren konnte. Im "richtigen Leben" sind die Dinge ungleich komplexer.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber.
  Mit Zitat antworten Zitat
Schokohase

Registriert seit: 17. Apr 2018
674 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#13

AW: Variable ist möglicherweise nicht initialisiert worden

  Alt 5. Feb 2019, 12:10
Ist das Zebra nun schwarz mit weißen Streifen oder weiß mit schwarzen Streifen? ^^
Es ist weiß und hat schwarze Streifen, denn diese schwarzen Streifen entstehen dadurch dass Pigmente das Fell schwarz färben.
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
141 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#14

AW: Variable ist möglicherweise nicht initialisiert worden

  Alt 5. Feb 2019, 12:36
Ist das Zebra nun schwarz mit weißen Streifen oder weiß mit schwarzen Streifen? ^^
Es ist weiß und hat schwarze Streifen, denn diese schwarzen Streifen entstehen dadurch dass Pigmente das Fell schwarz färben.
Andererseits hat das Zebra schwarze Haut, es könnte also eigentlich eher ein schwarzes Zebra mit weißen Streifen sein


BTT:
Schreibt man den "Einzeiler" von Schokohase etwas anders ist er dennoch übersichtlich:
Delphi-Quellcode:
var
  LEncodings: TStringList;
  lEncoding: TEncoding;
begin
  LEncodings := TStringList.Create;
  try
    for lEncoding in TArray<TEncoding>.Create(TEncoding.ANSI,
                                              TEncoding.ASCII,
                                              TEncoding.BigEndianUnicode,
                                              TEncoding.Unicode,
                                              TEncoding.UTF7,
                                              TEncoding.UTF8) do
      LEncodings.AddObject(lEncoding.EncodingName, lEncoding);

    TOpenTextFileDialog(Sender).Encodings.Assign(LEncodings);
  finally
    LEncodings.Free();
  end;
end;
Es ist oft nur eine Sache des Schreibstils, der die Übersichtlichkeit ändert.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
6.635 Beiträge
 
Delphi 10.3 Rio
 
#15

AW: Variable ist möglicherweise nicht initialisiert worden

  Alt 5. Feb 2019, 12:46
Der Vorteil bei der Schreibweise mit dem generischen Array ist, daß Elemente nur an einer Stelle hinzugefügt bzw. entfernt werden müssen. Auch das Ändern der Reihenfolge ist einfacher. Bei der For-Schleife mit case-Anweisung sind immer zwei Dinge zu beachten. Fügt man nur ein neues case-Label ein und vergisst, die For-Schleife anzupassen, wundert man sich, warum das neue Encoding nicht angezeigt wird. Löscht man eines der case-Label ohne die For-Schleife anzupassen, ergibt die besagte Warnung plötzlich durchaus einen Sinn.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
1.767 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#16

AW: Variable ist möglicherweise nicht initialisiert worden

  Alt 6. Feb 2019, 09:34
Am gezeigten Beispiel habt ihr natürlich recht. Das generische Array kann man glaub ich auch noch per [TEncoding.ANSI, TEncoding.ASCII {...}] abkürzen. Das for-in-[...]-Konstrukt benutze ich inzwischen sogar sehr gerne (schreibe sogar eigene Enumeratoren). Das einzige das mir da fehlt, ist eine Entsprechung zum alten for-a=b-downto-c-Konstrukt.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber.
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
307 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#17

AW: Variable ist möglicherweise nicht initialisiert worden

  Alt 6. Feb 2019, 13:40
Dazu möchte ich das DocWiki zitieren:
Zitat:
Sie können sich nur auf den letzten Wert eines for-Schleifenzählers verlassen, wenn die Schleife mit einer goto- oder exit-Anweisung verlassen wird.
Man könnte den Wert vor dem Schleifendurchlauf initialisieren. Häufig ist es aber effizienter, ein Exit zu verwenden und den Default-Wert erst nach dem durchlaufen zu setzen.
Dennis
  Mit Zitat antworten Zitat
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 11:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf