![]() |
Werte in Edits übergeben..
Hab mir auch dafür eine kleine Prozedur schreiben wollen, nur bekomme ich auch hier eine Zeugriffsverletzung, wenn ich auf den HaupNode "projekt" zugreifen will.. :wall:
[EDIT] Änderungen siehe nächsten Thread [/EDIT] Aufbau meiner XML..
XML-Code:
<projekt>
<projektname>gfhgfh</projektname> ... </projekt> |
Re: Werte in Edits übergeben..
Hab grad mal noch etwas versucht, eigentlich würd ich es mir ja so vorstellen..
Delphi-Quellcode:
procedure OpenProject(xml_file: string);
var curNode: IXMLDOMNode; begin frm_main.opened_xmlDoc.load(frm_main.OpenDialog1.FileName); // Nur bekommt er hier eiene Zugriffsverletzung curNode := frm_main.opened_xmlDoc.documentElement.selectSingleNode('/projekt'); with frm_main do begin ed_edit_projektname.Text:=curNode.selectSingleNode('projektname').text; ... end; frm_main.pnl_edit.BringToFront; end; |
Re: Werte in Edits übergeben..
<projekt> ist deine Root-Node? In dem Fall wird deine erste Abfrage auf projekt failen, entsprechend fliegt der Zeiger ins Leere. Du musst auf <projektname> matchen lassen. Und immer brav auf Gültigkeit überprüfen!
BTW: WITH ist sowas von verpönt... CU aps |
Re: Werte in Edits übergeben..
Hi aps,
ich glaube nicht, das es am root liegt, dat hätte aber später zu´n Problem werden können von daher danke für den Hinweis. Er muss irgend n Problem mit dem OpenDialog haben, da da die Fehlermeldung kommt. :gruebel: |
Re: Werte in Edits übergeben..
Jud okay, so funzt es!!
Delphi-Quellcode:
procedure OpenProject(xml_file: string);
var curNode: IXMLDOMNode; begin frm_main.xmlDoc.load(frm_main.OpenDialog1.FileName); with frm_main do begin ed_edit_projektname.Text:=frm_main.xmlDoc.documentElement.selectSingleNode('projektname').text; ... end; frm_main.pnl_edit.BringToFront; end; |
Re: Werte in Edits übergeben..
Zitat:
Nur in dem speziellen Fall ist die Angabe von "frm_main" nicht erforderlich, wenn es sich um eine Form-bezogene Variable (private oder public) handelt. Wenn du, @Akut-Programming, "xmldoc" allerdings von einer anderen Form aufrufst, dann solltest du dir mal Gedanken über den Stil machen. Das hat mir nämlich bei Chakotays MovieOrganizer auch nicht gefallen, darum habe ich bspw. den Code beim Hinzufügen eines Films in die Hauptform gezogen. Ich glaube, die Dialogform für die Eingabe dieser Daten enthält außer der Kontrolle (is´ was eingetragen, dann aktiviere Button) nichts mehr. ;) |
Re: Werte in Edits übergeben..
Zitat:
Delphi-Quellcode:
besser
with Objekt do begin
a := 1; b := 2; c := 3; end;
Delphi-Quellcode:
schreiben. Hintergrund: Wenn Methoden oder Variablen in verschiedenen Objekten oder Objekttypen den gleichen Namen haben, weiß man mit WITH irgendwann vielleicht nicht mehr, welche Instanz bzw. welches Objekt gemeint ist. Mit der Punktnotation ist das immer eindeutig. Dieses kürzt zum einen die Dokumentation und zum anderen die Fehleranfälligkeit von Projekten ungemein.
Objekt.a := 1;
Objekt.b := 2; Objekt.c := 3; Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 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