Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   "Der linken Seite kann nichts zugwiesen werden." (https://www.delphipraxis.net/146600-der-linken-seite-kann-nichts-zugwiesen-werden.html)

Webo 23. Jan 2010 13:56


"Der linken Seite kann nichts zugwiesen werden."
 
Schönen guten Nachmittag,

ich wollte mich mal ein wenig mit Grafik und Andorra 2D beschäftigen. Um mal einen allgemeinen Einblick zu erhalten, wollte ich erstmal die Beispielprojekte durchgehen, aber leider scheitert es da beim Compilieren. Soweit sind alle benötigten Units vorhanden (davon gehe ich zumindestens aus).

Bei folgendem Punkt erscheint die Fehlermeldung (siehe Topic-Name) (ich habe die Bounce-Demo grade gehabt, ist aber auch bei anderen der Demos so)
Delphi-Quellcode:
with FDraw.Display do
        DisplayMode := dmWindowed;
Die Fehlermeldung besagt ja eigentlich, dass die linke Seite überhaupt gar nicht dafür gedacht ist, ihr etwas zuzuweisen, wie etwa
Delphi-Quellcode:
(9 div 10) := b;
.
Nur verstehe ich nicht, warum er jetzt meckert, es sind ja nicht meine Codezeilen und eigentlich laufen sie (sonst würde es ja die Demo nicht als .exe geben) ?! Der Fehler tritt in der AdSetupDlg auf ...
Ich nutze im Moment Delphi 2010 Pro, welches ich grade noch mal auf den neusten Stand gepatcht habe. Mit einem anderen Delphi kann ich es grade nicht testen, weil ich zur Zeit keinen Zugriff auf meinen Desktop-PC habe.

Wäre schön, wenn mir jemand weiterhelfen könnte.


MfG

Webo

Edit: CP

Uwe Raabe 23. Jan 2010 16:29

Re: "Der linken Seite kann nichts zugwiesen werden.&
 
Unter D2010 kann man den Feldern eines Record-Properties nichts mehr zuweisen. Man muss dazu eine temporäre Record-Variable bemühen.

Webo 23. Jan 2010 17:11

Re: "Der linken Seite kann nichts zugwiesen werden.&
 
Könntest du mir dazu vllt ein kleines Beispiel geben, wie du das meinst ?

wicht 23. Jan 2010 17:44

Re: "Der linken Seite kann nichts zugwiesen werden.&
 
Ich schätze, das müsste nach Uwe so sein, mein Source ist absolut ungetestet:

Delphi-Quellcode:
var
  TempDisplay: TAdDisplay; // kA ob der Name des Typs so TAdDisplay ist und ob es wirklich ein Record ist
begin
  TempDisplay := FDraw.Display;
  TempDisplay.DisplayMode := dmWindowed;
  // alles andere setzen
  FDraw.Display := TempDisplay;
end;
HTH

Neutral General 23. Jan 2010 17:51

Re: "Der linken Seite kann nichts zugwiesen werden.&
 
Würde überlegen ob du nicht ggf. besser eine Klasse benutzt.
Und noch eine Anmerkung: Das ist nicht erst seit Delphi2010 so. Das war schon immer so ;)

SirThornberry 23. Jan 2010 17:52

Re: "Der linken Seite kann nichts zugwiesen werden.&
 
das ganze ist nicht erst seit Delphi6 so. Auch im BDS2006 war das schon so und ich meine mich erinnern zu können das es auch unter Delphi7 bereits so war.
[Edit]
Ich würde sogar behaupten das es in allen zukünftigen Versionen so sein wird da es gar keine andere Vernünftige Variante gibt sobald eine Get- und Set-Methode für das Property existiert.
Denn wenn man Object.RecordProperty.Value setzt wird ja indirekt folgendes aufgerufen
Delphi-Quellcode:
Object.GetRecordProperty().value = neue Wert
Und das macht einfach keinen Sinn weil der neu gesetzte Wert nicht verwendet werden würde.

Webo 23. Jan 2010 17:53

Re: "Der linken Seite kann nichts zugwiesen werden.&
 
Mmh, jetzt habe auch ich verstanden, was grade gemeint war ...
Nur versteh ich nich, warum man erst wieder den Umweg über was temporäres machen muss, wenn man es doch auch direkt machen könnte (?)

@ wicht : Funktioniert leider nicht ganz so, wie es soll, zum Schluss bei
Delphi-Quellcode:
FDraw.Display := TempDisplay;
kommt :
Zitat:

[DCC Fehler] AdSetupDlg.pas(796): E2129 Einer Nur-Lesen Eigenschaft kann kein Wert zugewiesen werden

himitsu 23. Jan 2010 18:23

Re: "Der linken Seite kann nichts zugwiesen werden.&
 
für .Display gibt es wohl einfach keinen Setter und somit geht es nicht, da es eben nur ein READONLY-Property ist.

Webo 25. Jan 2010 16:29

Re: "Der linken Seite kann nichts zugwiesen werden.&
 
Und, kann man da jetzt irgendwas machen, um das so ans Laufen zu bringen (außer den entsprechenden Teil auszuklammern, denn dann funktioniert es, man kann halt nur nich mehr einstellen, wie sich das Fenster verhalten soll) ?

himitsu 25. Jan 2010 16:49

Re: "Der linken Seite kann nichts zugwiesen werden.&
 
Ja, indem man diesem Property innerhalb der Klasse oder einem Nachfahren einen Setter verpaßt.
Code:
property DisplayMode ... [b]write ...[/b];


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr.
Seite 1 von 2  1 2      

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