AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Compilerfehler bei with do Anweisung?
Thema durchsuchen
Ansicht
Themen-Optionen

Compilerfehler bei with do Anweisung?

Ein Thema von robvs · begonnen am 26. Mär 2007 · letzter Beitrag vom 26. Mär 2007
Antwort Antwort
Seite 2 von 2     12   
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Compilerfehler bei with do Anweisung?

  Alt 26. Mär 2007, 13:28
Zitat von Robert Marquardt:
Nenn doch mal den Parameter der Methode von canEdit zu ACanEdit um.
Riesengroß unterschreib!
Zitat von Hawkeye219:
die WITH-Anweisung bezieht sich auch die Eigenschaft Owner. Könnte das der Fehler sein?
Ebenso groß unterschreib!
  Mit Zitat antworten Zitat
robvs

Registriert seit: 3. Jul 2006
30 Beiträge
 
#12

Re: Compilerfehler bei with do Anweisung?

  Alt 26. Mär 2007, 14:01
Wie gesagt, ich hab das Ganze schon mit einer anderen Variable, die lokal in der Funktion deklariert war, versucht. bInternalCanEdit an gleicher Stelle, 1 Zeile drunter, unter dem original CanEdit, mit dem gleichen Ergebnis. Es gibt definitiv keine andere Var die CanEdit heißt.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#13

Re: Compilerfehler bei with do Anweisung?

  Alt 26. Mär 2007, 14:06
Versuch mal Testweise den Ausdruck (ohne CanEdit) direkt im If zu evaluieren. Was passiert dann?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#14

Re: Compilerfehler bei with do Anweisung?

  Alt 26. Mär 2007, 14:37
Ist dir eigentlich klar worueber wir reden?

Wir vermuten das FDM.IBQ_Main sowohl eine Property CanEdit als auch Owner hat.
Der with-Block erzeugt einen neuen Scope, in dem die Namen von FDM.IBQ_Main natuerlich Vorrang vor den Parametern von TfrmLieferscheinVerarbeite.setAuData als auch der Namen von frmLieferscheinVerarbeite haben.
Es werden also vermutlich der Parameter CanEdit und die Property Owner von frmLieferscheinVerarbeite verdeckt.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#15

Re: Compilerfehler bei with do Anweisung?

  Alt 26. Mär 2007, 14:43
Ich hatte sowas auch schonmal, und da wurde ein längerer If-Ausdruck, den ich zur Übersichtlichkeit in eine lokale Variable evaluiert habe, auch falsch ausgewertet. Als ich die Evaluation direkt in der If-Bedingungen eingesetzt habe gings seltsamerweise. Es könnte also tatsächlich ein Problem mit dem With-Block geben.

Wobei eine Überdeckung freilich nicht ausgeschlossen ist, aber nicht zwingend die einzige Möglichkeit für die Fehlerursache ist
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#16

Re: Compilerfehler bei with do Anweisung?

  Alt 26. Mär 2007, 14:57
Ich wuerde trotzdem auf TfrmWSLieferscheinDruck(Owner) tippen. Vom Namen her ist bestimmt Owner von frmLieferscheinVerarbeite, aber FDM.IBQ_Main hat bestimmt eine Owner-Property, die natuerlich Vorrang hat. Da TfrmWSLieferscheinDruck(Owner).LSMode vermutlich in den Wald greift, kommt mit hoher Wahrscheinlichkeit False fuer den Gesamtausdruck heraus.
Die beiden Massnahmen zur Korrektur sind den Parameter CanEdit zu ACanEdit umzunennen (plus alle Stellen wo derParameter gemeint ist) und TfrmWSLieferscheinDruck(Owner).LSMode in TfrmWSLieferscheinDruck(Self.Owner).LSMode zu aendern.
  Mit Zitat antworten Zitat
robvs

Registriert seit: 3. Jul 2006
30 Beiträge
 
#17

Re: Compilerfehler bei with do Anweisung?

  Alt 26. Mär 2007, 15:44
FDM.IBQ_Main hat keine Property CanEdit, aber Owner. Von daher natürlich! MUSS es das wohl sein.
Der Laufzeitauswerter berücksichtigt ja keine With-Blöcke, deswegen war auch die Überprüfung immer positiv.

VIELEN DANK!
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#18

Re: Compilerfehler bei with do Anweisung?

  Alt 26. Mär 2007, 16:32
Mach mal (Self.Owner as TfrmWSLieferscheinDruck).LSMode und gewoehn dir das statt harter Umtypungen an. as ueberprueft die Abstammung von Onwer ob sie TfrmWSLieferscheinDruck ist. Damit waere der Fehler aufgefallen.
  Mit Zitat antworten Zitat
robvs

Registriert seit: 3. Jul 2006
30 Beiträge
 
#19

Re: Compilerfehler bei with do Anweisung?

  Alt 26. Mär 2007, 16:39
Ja, kommt dann ein konkreter Fehler, dass die Klasse nicht passt oÄ?

Und noch mal danke.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#20

Re: Compilerfehler bei with do Anweisung?

  Alt 26. Mär 2007, 16:52
Genau. Der as Operator klettert die RTTI-Informationen der klassen entlang und schmeisst eine Exception wenns nicht passt.
Das kostet natuerlich Performance, aber ist zumindest bei der Entwicklung sehr hilfreich. Eine harte Umtypung kann man spaeter ja immer noch reinmachen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 03:35 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