AGB  ·  Datenschutz  ·  Impressum  







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

ADS - Fullname

Ein Thema von MarLe · begonnen am 24. Jan 2007 · letzter Beitrag vom 2. Feb 2007
Antwort Antwort
Seite 2 von 3     12 3      
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#11

Re: ADS - Fullname

  Alt 1. Feb 2007, 13:42
Ah, ein direkter Cast von Widestring von PWideChar ist das Geheimnis, obskure Array of WideChar zu vermeiden! Schön zu wissen.

Aber was ist mit dieser Zugriffsschutzverletzung? Hast du eine Ahnung, warum sie in der ursprünglichen Variante auftritt?

Cu,
Udontknow
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: ADS - Fullname

  Alt 1. Feb 2007, 18:28
Hallo,

nicht wirklich. Ich weiß ja nicht einmal, ob mein Code fehlerfrei läuft. Hast du das testen können?

Was mir beim Vergleich auffällt ist, dass im Beitrag #1 nicht die IID übergeben wird, sondern ein Interface.

Freundliche Grüße
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#13

Re: ADS - Fullname

  Alt 1. Feb 2007, 18:29
HI,

für Verwirrung wollte ich nciht sorgen. Es ist ein 'Versuch' einer Erklärung mit 'einfachen' Worten.

@Udontknow

Dein Beispiel verwendet ein TEdit mit der Text-Eigenschaft, dh. wenn Text := usr.FullName; gesetzt wird,
wird eine Windowsbotschaft an das Steuerelement gesendet, in diesem WM_SETTEXT.
Damit wird der Inhalt von usr.FullName nach Edit_Name.Text kopiert.
Bei der Zuweisung 'S := usr.FullName' passiert das ebend nicht und bei der Zuweisung von 'Result := S;'
kracht es ebend, das liegt an der Bedeutung von Result für den Compiler und dem lösen der Bindung von usr.

Wie gesagt/geschrieben mit 'einfachen' Worten.

Bei WideString greift ein anderer Mechanismus(auch ein kopieren der Inhalte von Source nach Dest), deshalb
auch keine Exception. Aus diesem Grund kommt es auch zur keiner Exception beim Aufruf einer Callback-Funktion.

Gruss

Alter Mann
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#14

Re: ADS - Fullname

  Alt 1. Feb 2007, 18:48
Hallo,

Zitat von Alter Mann:
... Damit wird der Inhalt von usr.FullName nach Edit_Name.Text kopiert.
Bei der Zuweisung 'S := usr.FullName' passiert das ebend nicht ...
bist du da sicher? Copy-On-Demand in Verbindung mit dem Result einer access method?

Nachdenkliche Grüße von einem noch älteren Mann
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#15

Re: ADS - Fullname

  Alt 1. Feb 2007, 19:06
Ja, siehe Anhang.
Miniaturansicht angehängter Grafiken
usermanager_144.jpg  
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#16

Re: ADS - Fullname

  Alt 1. Feb 2007, 19:59
Hallo,

der markierte Assembler-Code sagt für meine Begriffe nichts zum Thema aus: Es wird geprüft, ob der auf dem Stack obenauf liegende Zeiger 0 ist. Copy-On-Demand bei String-Variablen findet nach meiner Auffassung de facto nur bei direkten Zuweisungen statt.

Zweifelnde Grüße
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#17

Re: ADS - Fullname

  Alt 1. Feb 2007, 20:59
Hallo marabu,

wie Du meinst.

Ich bezog mich auf zwar auf TControl.SetText, aber ich möchte Dir da nicht (...) reinreden.

Bis zu nächsten Mal/Thema/Thread usw:

Gruss

Alter Mann
  Mit Zitat antworten Zitat
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#18

Re: ADS - Fullname

  Alt 1. Feb 2007, 21:10
Hallo!

Ich habe auf der Arbeit auch noch mal die Funktion ausgelagert, sodaß eben eine Result-Variable vom Typ String mit dem Inhalt Usr.FullName gefüllt wird. Keine Exception. Ausserdem findet doch dieser Referenz-Zähl-Mechanismus nur bei Strings statt, aber Usr.FullName ist ein Widestring...

Na wer weiss, vielleicht habe ich da auch wieder irgendwas anders gemacht, ich poste sie morgen mal.

Cu,
Udontknow
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#19

Re: ADS - Fullname

  Alt 1. Feb 2007, 21:23
Hallo Alter Mann,

hier gibt es kein "Reinreden" - wir diskutieren hier ein Problem und sollte ich mich irren, dann nicht zum ersten Mal. In Beitrag #14 habe ich doch deine Aussage zitiert, die ich für überdenkenswert hielt. Das von dir bereit gestellte CPU-Fenster zeigt genau zu diesem Sachverhalt nichts. Dass TControl.SetText für die Zuweisung per property setter aufgerufen wird war unstrittig.

@Udontknow: Danke für die Rückmeldung.

Freundliche Grüße
  Mit Zitat antworten Zitat
MarLe

Registriert seit: 13. Jan 2005
83 Beiträge
 
Delphi XE2 Professional
 
#20

Re: ADS - Fullname

  Alt 2. Feb 2007, 09:17
Erstmals Danke für Eure Mühe.
Hab mal die Variante von marabu probiert.
Leider kracht's genau an der gleiche Stelle?!?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 14:43 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