Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Fehler mit DataModul (https://www.delphipraxis.net/158016-fehler-mit-datamodul.html)

Hansa 2. Feb 2011 12:27

Delphi-Version: 5

Fehler mit DataModul
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

habe hier ein Projekt bestehend aus einer Form mit drei Edits und einem (leeren DataModul TestDM). Es geht darum, diese drei Edits auf Tastendruck zu en/disablen. Es geht aber nicht richtig. ComponentCount liefert 3 als Ergebnis. Aber nur solange folgende Zeile im EditKeyPress auskommentiert ist :

Delphi-Quellcode:
//    with TestDM do begin
Was kann das sein ? Siehe Quelltext im Anhang.

DeddyH 2. Feb 2011 12:30

AW: Fehler mit DataModul
 
Lass das with weg. Woher soll Delphi denn wissen, ob der ComponentCount des Forms oder des Datenmoduls gemeint ist?

[edit] Oder wenn Du auf das with nicht verzichten kannst/willst, dann greif auf Self.ComponentCount zu, das ist dann wieder eindeutig. [/edit]

Hansa 2. Feb 2011 12:58

AW: Fehler mit DataModul
 
Thx, mir fiel nicht auf, dass es einen Unterschied macht, ob das :

Delphi-Quellcode:
ShowMessage(IntToStr(ComponentCount - 1));
innerhalb oder ausserhalb des 'with' Blocks steht. Durch 'with TestDM' hat dieses Priorität und weil es leer ist kommt -1 raus. Dadurch funktioniert die Schleife nicht usw. ... :P Das with kommt da jetzt weg und fertig. :mrgreen:

Sherlock 2. Feb 2011 13:11

AW: Fehler mit DataModul
 
Dykstra schreibt gerade an "With considered harmfull"...Obiges Problem ist nur einer der Gründe.

;)

Sherlock

himitsu 2. Feb 2011 13:33

AW: Fehler mit DataModul
 
Zitat:

Zitat von DeddyH (Beitrag 1079063)
Lass das with weg. Woher soll Delphi denn wissen, ob der ComponentCount des Forms oder des Datenmoduls gemeint ist?

Für Delphi ist das schon eindeutig, es geht die Hierarchie zurück und das ComponentCount, welches zuerst gefunden wird, das wird genommen.
Also erst das vom Widh, dann Self, danach die Unit usw.

DeddyH 2. Feb 2011 13:37

AW: Fehler mit DataModul
 
Sicher, aber das ist das, was er geschrieben hat und nicht das, was er gemeint hat. Hier besteht schon ein Unterschied, sonst hätte es ja kein Problem gegeben.

himitsu 2. Feb 2011 13:52

AW: Fehler mit DataModul
 
Schon klar ... war für Delphi eindeutig ist, das muß ja nicht das ergeben, was sich der Entwickler gedacht hat. :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 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