AGB  ·  Datenschutz  ·  Impressum  







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

with.....

Ein Thema von Frickler · begonnen am 3. Aug 2018 · letzter Beitrag vom 12. Aug 2018
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: with.....

  Alt 3. Aug 2018, 15:55
Ich weiß nicht was ihr habt?

Es ist alles ganz eindeutig, also immer das Letzte wird zuerst genommen.
Und bei mehrfachen Angaben im WITH können die auch aufeinander aufbauen, was auffällt, wenn man weiß, dass
Delphi-Quellcode:
with DIB, dsbm, dsbmih do

// entspricht

with DIB do
  with dsbm do
    with dsbmih do

Aber so kann das doch keiner mehr lesen.
Delphi-Quellcode:
if (DIB.dsbmih.biSize <> 0) and ((DIB.dsbmih.biWidth = 0) or (DIB.dsbmih.biHeight = 0)) then Exit;
if (DIB.dsbmih.biSize = 0) and ((DIB.dsbm.bmWidth = 0) or (DIB.dsbm.bmHeight = 0)) then Exit;
Zum Glück haben die Felder der WinAPI-Records hier zur Abwechslung mal keine Typ-Prefixe (Type des Feldes), sondern Klassen-Prefixe (Name des Parent-Records),
womit man sofort erkennt, was von dsbm/BITMAP > bm und was vom dsbmih/BITMAPINFOHEADER > bi kommt.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 3. Aug 2018 um 15:58 Uhr)
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
492 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: with.....

  Alt 12. Aug 2018, 00:31
Ich weiß nicht was ihr habt?

Es ist alles ganz eindeutig, also immer das Letzte wird zuerst genommen.
Und bei mehrfachen Angaben im WITH können die auch aufeinander aufbauen, was auffällt, wenn man weiß, dass
Delphi-Quellcode:
with DIB, dsbm, dsbmih do

// entspricht

with DIB do
  with dsbm do
    with dsbmih do
...was ja auch niemand je bestritten hat. Nur ist es nunmal auch kein Geheimnis, dass der Debugger das manchmal anders sieht, und dir dann andere Werte anzeigt, als die, die eigentlich in den Variablen drin stehen. Das kann es schwer bis unmöglich machen, einen Fehler zu finden. Für mich persönlich der Hauptgrund, kein WITH zu verwenden. Neben dem Fakt, dass keiner mehr Weiß, welcher Bezeichner zu welchem Namensraum gehört. Besonders wenn die Variablen der verschachtelten Namespaces den selben, einen ähnlichen, oder einen verwandten Typen besitzen.
Dennis

Geändert von Dennis07 (12. Aug 2018 um 00:34 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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:23 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