Entwickler-Ecke

Programmierwerkzeuge - Delphi 10.1 Berlin


Peter18 - Di 13.03.18 12:36
Titel: Delphi 10.1 Berlin
Ein freundliches Hallo an alle,

und wieder hat der Fehlerteufel zugeschlagen! Nach der Installation von Delphi 10.1 Berlin unter Win10 wollte ich ein Beispiel-Projekt übersetzen, doch Banane! Der Compiler liefert mit konstanter Bosheit eine Fehlermeldung: DOM fehlt.

Klar, er sucht im Ordner "progrann files", den gibt es aber nicht! Auch der Versuch die Umgebungsvariablen zu ändern schlug fehl: Kann ich nicht überschreiben. Auch nicht als Administrator! Eine Konfigurationsdatei konnte ich nicht finden.

Hat jemand einen Tipp, wie das zu reparieren ist?

Grüße von der Nordsee

Peter


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mi 11.07.2018 um 17:23
Moderiert von user profile iconTh69: Frage als beantwortet markiert am Di 17.07.2018 um 8:28


Delete - Di 13.03.18 14:13

- Nachträglich durch die Entwickler-Ecke gelöscht -


Peter18 - Di 13.03.18 14:26

Hallo Frühlingsrolle,

Dank Dir für die Antwort! Das seltsame ist, dass alles im Ordner "Programme" steckt, aber in einer Protokolldatei steht "programm files". Darauf kann ich mir keinen Reim machen. Oder sind vielleicht Programmabbrüche bei der Installation schuld?

Grüße von der Nordsee

Peter


Sinspin - Di 13.03.18 15:54

Hallo,

wann hast Du dir den Installer gezogen?
Wir hatten so einen ähnlichen Fall vor ein paar Wochen. Nach der Installation konnten keine Komponenten installiert werden.
Haben dann den Installer neu runtergeladen und nochmal installiert. Nun geht es endlich.


Peter18 - Di 13.03.18 16:13

Hallo Stefan,

auch Dir meinen Dank! Den habe ich kürzlich heruntergeladen und bei der Installation wurden die Bits einzeln von Hand geholt. Vor längerer Zeit hatte ich schon eine funktionierende Version installiert, aber die Platte hat nun einen Schuss. Ich werde es noch einmal versuchen und dann berichten.

Grüße von der Nordsee

Peter


Delete - Di 13.03.18 16:25

- Nachträglich durch die Entwickler-Ecke gelöscht -


doublecross - Di 13.03.18 17:21

Hi,
user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
Das seltsame ist, dass alles im Ordner "Programme" steckt, aber in einer Protokolldatei steht "programm files". Darauf kann ich mir keinen Reim machen.


das dürftest du der Desktop.ini [http://www.winfaq.de/faq_html/Content/tip2500/onlinefaq.php?h=tip2653.htm] zu verdanken haben. Seit einführung dieser Datei (ich glaube es war mit Windows Vista) werden dir Dateien und Ordner nicht mehr zwingend mit dem Namen angezeigt, den sie besitzen. Sprich man kann über diese z. B. festlegen dass der Ordner "programm files" auf deutschen Systemen als "programme" angezeigt wird und genau das macht Microsoft auch. Sprich der "Programme" Ordner heißt seit dem immer "Program Files" [bzw. "Program Files (x86)] aber im Explorer angezeigt wird er unter einem Lokalisierten Namen.

Wenn du einmal ein Terminal öffnest (Windows-Taste, dann cmd eingeben und Enter drücken) und dann die Befehle:


Quelltext
1:
2:
3:
c:
cd \
dir


Bekommst du die Namen der Verzeichnisse deines Hauptverzeichnens ohne Massierung angezeigt und wahrscheinlich wirst du feststellen, dass es gar kein Verzeichnis Programme gibt (zumindest wenn nicht ein schlechtes Setup ein solches angelegt hat). Du wirst weiterhin feststellen können, dass du mittels cd Programme trotzdem in dieses nicht existierende Verzeichnis wechseln kannst. Und wenn du genauer hinguckst merkst du, dass du mittels cd Programme eigentlich im Ordner "Programm Files" gelandet bist.

Sprich, wenn in der Protokolldatei "Programm Files" steht, dann nur, weil diese den echten Namen des Ordners und nicht sein Pseudonym angibt.


jaenicke - Di 13.03.18 17:43

Noch einfacher ist in den Windows Explorer zu gehen, zu dem Ordner zu wechseln und dort in der Adressleiste in einen freien Bereich (sprich rechts neben dem Pfad) zu klicken. Dann wird der reale nicht übersetzte Pfad angezeigt.


drstar - Mi 14.03.18 17:41

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Noch einfacher ist in den Windows Explorer zu gehen, zu dem Ordner zu wechseln und dort in der Adressleiste in einen freien Bereich (sprich rechts neben dem Pfad) zu klicken. Dann wird der reale nicht übersetzte Pfad angezeigt.


Das wiederum funktioniert unter Windows 7 und 8(.1) nur bedingt - in den Bibliotheken bekommt man auf diesem Wege den Pfad gar nicht angezeigt. Bei Windows 10 kann ich es nicht sagen, die Bananensoftware verweigere ich, solang es geht


Peter18 - Mi 11.07.18 14:31

Ein freundliches Hallo Euch allen,

leider gingen bei meinem Rechner gleich 2 Platten kaput und andere Ereignisse hielten mich davon ab den alten Stand schnell wieder herzustellen. Mit einem Notsystem habe ich mich über Wasser gehalten. Nun aber bin ich erneut in die Falle getappt.

Nach der Neuinstallation von Win10 habe ich Berlin wieder installiert. Es funktionierte auch! Doch Win10 hatte gerade ein Update erhalten (neuer Build) und das System fing an zu spinnen. Da sprang der Mauszeiger wie wild durch die Gegend (Grafiktablett). Dateien hatten plötzlich einen Schrebschutz.

Daraufhin stellte ich den alten Stand wieder her und hatte wieder das "DOM-Problem".

Es scheint also ein Fehler von Win10 zu sein.

Frühlingsrolle, Dank Dir für den Hinweis, aber ein solches Fenster habe ich nicht zu sehen bekommen.
doublecross, Sebastian und drstar, Dank auch Euch, inzwischen konnte ich auch feststellen, das hier anscheinend ein Alias verwendet wird. Das scheint auch nicht das Problem zu sein.

Aber wie komme ich um die Klippe rum und kann kompilieren?? Muß ich dafür nach Tokio reisen?? oder gibt es eine andere Lösung??

In der Hoffnung auf Hilfe grüße ich von der Nordsee

Peter


jaenicke - Do 12.07.18 08:04

user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
das System fing an zu spinnen. Da sprang der Mauszeiger wie wild durch die Gegend (Grafiktablett).
Das dürfte am Treiber liegen, da hilft es normalerweise den noch einmal neu zu installieren.

user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
Dateien hatten plötzlich einen Schrebschutz.
Was für Dateien? War es wirklich ein Schreibschutz oder waren es schlicht Dateien aus dem alten System, die nur für einen bestimmten User zugänglich waren? Da der User des alten Systems nun nicht mehr existiert, muss dort ggf. der Besitzer neu gesetzt werden. Das ist normal.

user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
Daraufhin stellte ich den alten Stand wieder her und hatte wieder das "DOM-Problem".
Wie sieht die Meldung eigentlich genau aus?

Zur Analyse bietet sich der Process Monitor [https://docs.microsoft.com/en-us/sysinternals/downloads/procmon] an, vielleicht ist da genauer zu sehen was los ist.


Sinspin - Do 12.07.18 09:41

Das Win10 Update die letzten Tage hat eindeutig mehr gemacht als nur ein paar Fehlerchen zu beheben. Bei mir hat es den Soundtreiber zerlegt. Neu installieren hat geholfen.

Bei Delphi Projekten ist immer eine *.dsk Datei vorhanden. Die musst Du löschen wenn Du mit deinen Projekten auf ein anderes Laufwerk umziehst.

Installation von Delphi auf Win10 war bei mir nicht so lustig. Irgendwie sind einige meiner zusätzlichen Komponenten Pakete unter einem anderen Nutzer installiert worden und waren dann nicht sichtbar.
Schau mal in der Liste der verfügbaren Packages nach ob da alle aktiviert sind. (Projekt/Optionen../Packages)


Peter18 - Do 12.07.18 11:59

Hallo Sebastian, hallo Stefan,

Dank Euch für Eure Antwort. Wäre es nur der Tablett-Treiber gewesen, hätte ich das natürlich die Neuinstallation versucht, aber Dateien auf dem Server hatten plötzlich einen Schreibschutz, den ich nicht beseitigen konnte. (Etwas Panik) Erst mit XP war das möglich. Daher habe ich den vorigen Stand wieder hergestellt.

Mit der jetzigen Version von Win10 habe ich auch Tokio ausprobiert, aber das Ergebnis blieb das gleiche.

Bin im Moment bei XP um einiges zu erledigen, das mit 10 noch nicht geht. Wenn ich es heute schaffe wechsele ich noch einmal, sonst melde ich mich morgen mit den Ergebnissen.

Grüße von der sonnigen Nordsee

Peter


Sinspin - Do 12.07.18 18:34

user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
Bin im Moment bei XP um einiges zu erledigen, ...

:gruebel: ... und die Geister die ich rief ... Danach sind dann auch die anderen Dateien geschützt. Mit einer Lösegeldforderung?
Dann boote ich doch lieber von einem USB Stick oder einer anderen Platte mit Linux.

Aber wenn es geholfen hat die Win10 Updates zurücksetzen ist das doch schon ein Anfang.


Peter18 - Fr 13.07.18 13:25

Hallo Stefan,

nein, keine Lösegeldforderung! Das hing wohl alles mit dem Update zusammen. Ich achte sehr darauf, welche Mail oder Internetseite ich öffne. Und bisher hat der Virenscanner nur bei SysInternals Alarm geschlagen.

Das Schreibschutzproblem ist mit der Rückkehr zum alten Stand auch behoben, aber dafür ist das Dom-Prroblem da. Die Eigenschaft Schreibgeschützt hatte einen Haken.

Die Packages sind auch alle aktiviert. Eine Suche nach dom*.* auf C:\ hat nichts gebracht.

Hallo Sebastian,

der Process Monitor hat "HKLM\SOFTWARE\Microsoft\CTF\KnownClasses NAME NOT FOUND" erbracht.
Einige Reparse bei "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters REPARSE".

Grüße von der wolkigen Nordsee

Peter


jaenicke - Fr 13.07.18 18:38

user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
Die Packages sind auch alle aktiviert. Eine Suche nach dom*.* auf C:\ hat nichts gebracht.
Wie genau lautet denn die Fehlermeldung? Ein Screenshot wäre z.B. hilfreich.

user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
der Process Monitor hat "HKLM\SOFTWARE\Microsoft\CTF\KnownClasses NAME NOT FOUND" erbracht.
Einige Reparse bei "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters REPARSE".
Das ist normal denke ich.


Peter18 - So 15.07.18 10:11

Hallo Sebastian,

sorry, die Frage ist mir durch die Lappen gegangen.

Die Meldung lautet: "[dcc32 Fataler Fehler] uFritzBox.pas(173): F2613 Unit 'Dom' nicht gefunden."

Grüße von der sonnigen Nordsee

Peter


jaenicke - So 15.07.18 14:57

Ach das soll eine Unit sein. Naja, die gehört nicht zum Lieferumfang von Delphi, sprich die musst du selbst irgendwo haben. Entweder das ist eine eigene Unit oder die gehört zu dem Projekt dazu. Da fehlen dann Bibliothekspfade oder ähnliches.

Im Zweifelsfall kannst du mit Everything [https://www.voidtools.com] überall auf der Festplatte danach suchen, wenn du nicht weißt was das für eine Unit ist.


Peter18 - So 15.07.18 15:52

Hallo Sebastian,

Dank Dir für die Antwort, aber ist es nicht merkwürdig, dass es mal geht und mal nicht, je nach Version von Win10???
Ich hatte ja schon danach gesucht. Aber auch Everything findet keine Unit DOM. Vielleicht kann mir ja jemand diese Unit zur Verfügung stellen???

Grüße von der sonnigen Nordsee

Peter


jaenicke - So 15.07.18 18:05

user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
Vielleicht kann mir ja jemand diese Unit zur Verfügung stellen???
Unwahrscheinlich, es sei denn jemand kennt rein zufällig genau die richtige Unit wie du sie verwendest...

Woher stammt denn die Unit uFritzBox, die diese Unit verwendet?


Peter18 - Mo 16.07.18 10:24

Hallo Sebastian,

Dank Dir nochmals, diese Unit kann nichts mit der Software (uFritzBox) zu tun haben, die ich irgentwo im Internet gefunden hatte. Ich konnte das ganze ja schon übersetzen und damit experementieren. Als die Win10 Platte kaput ging und ich eine neue Platte aufgesetzt hatte, trat das Problen erstmalig auf. Nach einem Update von Win10 war das Problem weg, Trat dann aber wieder auf. Es muß also mit Win10 zu tun haben. Ich vermute, das ein Eintrag in der Registry fehlt, und Dom wird bei der Instalation deshalb nicht kopiert.

Dom ist nicht Teil dieser Software, sondern ein XML-Standard. Fritz antwortet mit XML. Daher denke ich, mit der Unit sollte es wieder möglich sein, das Programm zu übersetzen.

Grüße von der heute wieder sonnigen Nordsee

Peter


doublecross - Mo 16.07.18 14:18

Hi,

user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
Aber auch Everything findet keine Unit DOM. Vielleicht kann mir ja jemand diese Unit zur Verfügung stellen???

Hast du nach DOM.pas und DOM.bpl gesucht?

PS: ist DOM denn in irgendeinem uses Block aufgeführt? Nicht das wir es hier mit einer fehlerhaften Fehlermeldung zu tun haben.


Peter18 - Mo 16.07.18 15:09

Hallo doublecross,

Dank Dir für Deine Antwort. Ich habe nach "DOM.*" gesuchgt! Ergebnis: NIL.

Das Ding steht auch in einer uses.


Delphi-Quelltext
1:
2:
3:
uses
  Classes, SysUtils, Windows, WinSock, Dialogs, ExtCtrls, Forms, StdCtrls, Graphics,
  {$IfDef DELPHI}Jpeg, Messages, XMLIntf, XMLDoc{$Else}Controls, Dom, XMLRead{$EndIf};


Grüße von der heute wieder sonnigen Nordsee

Peter


Th69 - Mo 16.07.18 15:23

Gibt es denn (weitere) Compilerfehler, wenn du DOM aus der uses-Liste mal auskommentierst?

Bzw. eigentlich sollte doch das {$IfDef DELPHI} greifen, also XMLDoc herangezogen werden? Muß evtl. noch dieses Makro gesetzt werden?


doublecross - Mo 16.07.18 15:25

Hi,

da kommen wir der Sache doch schon einmal näher.

Die UNIT DOM soll offensichtlich nur gelagen werden, wenn dein Compiler nicht Delphi ist (also wahrscheinlich FreePascal/Lazarus), denn er steht im ELSE Zweig des IFDEF:


Delphi-Quelltext
1:
{$IfDef DELPHI}Jpeg, Messages, XMLIntf, XMLDoc{$Else}Controls, Dom, XMLRead{$EndIf}                    


Das lustige ist jetzt aber, das es die Compiler Variable DELPHI von Haus aus gar nicht gibt.

Irgendwo im Quelltext muss also die Variable DELPHI definiert werden und ich möchte wetten, das bei dieser Definition die Windows oder Delphi Version mit einfließt und die von dir verwendete nicht berücksichtigt wird (weil es sie wahrscheinlich noch gar nicht gab als der Code geschrieben wurde). Du musst also die entsprechende Stelle finden und so anpassen, dass der Wert DELPHI auch mit der neuen Version gesetzt wird.

PS: Nach {$DEFINE Delphi} in deinem Projekt suchen.


Peter18 - Mo 16.07.18 17:01

Hallo Th69, hallo doublecross,

das war der richtige Tipp! mit "{$Define DELPHI}" ist das Problem behoben!

Eigentlich sollte es funktionieren, denn die Version wird geprüft. Anscheinend hat Berlin eine unten nicht aufgeführte Versionsnummer. Aber wieso hat es mit dem Update funktioniert???


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
{$IfDef VER260}{$Define DELPHI}{$Define DELPHI_XE2_UP}{$EndIf}   {Delphi XE5}
{$IfDef VER250}{$Define DELPHI}{$Define DELPHI_XE2_UP}{$EndIf}   {Delphi XE4}
{$IfDef VER240}{$Define DELPHI}{$Define DELPHI_XE2_UP}{$EndIf}   {Delphi XE3}
{$IfDef VER230}{$Define DELPHI}{$Define DELPHI_XE2_UP}{$EndIf}   {Delphi XE2}
{$IfDef VER220}{$Define DELPHI}{$EndIf}                          {Delphi XE}
{$IfDef VER210}{$Define DELPHI}{$EndIf}                          {Delphi 2010}
{$IfDef VER200}{$Define DELPHI}{$EndIf}                          {Delphi 2009}
{$IfDef VER185}{$Define DELPHI}{$EndIf}                          {Delphi 2007}
{$IfDef VER180}{$Define DELPHI}{$EndIf}                          {Delphi 2006}
{$IfDef VER170}{$Define DELPHI}{$EndIf}                          {Delphi 2005}
{$IfDef VER160}{$Define DELPHI}{$EndIf}                          {Delphi 8}
{$IfDef VER150}{$Define DELPHI}{$EndIf}                          {Delphi 7}
{$IfDef VER140}{$Define DELPHI}{$EndIf}                          {Delphi 6}
{$IfDef VER130}{$Define DELPHI}{$EndIf}                          {Delphi 5}
{$IfDef VER120}{$Define DELPHI}{$EndIf}                          {Delphi 4}
{$IfDef VER100}{$Define DELPHI}{$EndIf}                          {Delphi 3}
{$IfDef VER90}{$Define DELPHI} {$EndIf}                          {Delphi 2}
{$IfDef VER80}{$Define DELPHI} {$EndIf}                          {Delphi 1}


Grüße von der heute wieder sonnigen Nordsee

Peter


doublecross - Mo 16.07.18 17:43

Hi,

nach dieser Liste [http://docwiki.embarcadero.com/RADStudio/Tokyo/de/Compiler-Versionen] verbirgt Berlin sich hinter VER310, es wurde also bisher nicht abgefragt. Ich nehme an, dass du das nachgelegt hast :zustimm:.

Warum es bisher funktionierte kann ich mir auch nicht erklären. Vielleicht hat Delphi nie einen Grund gesehen, diese Unit neu zu kompilieren und hat immer eine alte Version verwendet :nixweiss:.

Aber schön dass es jetzt klappt.

Schöne Grüße aus dem nicht minder sonnigen Münster.