AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language TPoint wird als (0,0) übergeben, abhängig vom Variablennamen
Thema durchsuchen
Ansicht
Themen-Optionen

TPoint wird als (0,0) übergeben, abhängig vom Variablennamen

Ein Thema von Redeemer · begonnen am 23. Jul 2018 · letzter Beitrag vom 23. Jul 2018
 
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.108 Beiträge
 
Delphi 2009 Professional
 
#1

TPoint wird als (0,0) übergeben, abhängig vom Variablennamen

  Alt 23. Jul 2018, 10:33
Delphi-Version: 2010
Also ich habe das Problem, dass ein TPoint als (0,0) übergeben wird, wenn die Variable, die als Parameter übergeben wird, einen bestimmten Namen hat. Die aufgerufene Prozedur ist in einer anderen Unit wie folgt deklariert:
procedure SetzeGroesse2(X1, X2: TPoint);
Das Ändern der Namen der aufgerufenen Prozedur und ihrer Parameter oder eine komplett neue Erzeugung brachten keine Lösung. In der aufrufenden Unit ist kein anderer Bezeichner namens P1 vorhanden. Ich war nicht in der Lage, ein Minimalbeispiel zu erstellen.

Vielleicht steh ich auf dem Schlauch - oder ich hab einen Bug im Compiler gefunden...

Delphi-Quellcode:
procedure TFrameKonstruktion.ZeichnenSetzeEndpunkt(P: TPoint);
var
  P1: TPoint;
begin
  P1 := ZeichenpunktStart;
  // hier sollen später noch einige weitere Transformationen mit P1 durchgeführt werden
  with TLinie.Create(Fenster.Zeichenobjekte, AktuellesZeichenformat) do
  SetzeGroesse2(P1, P); // übergibt (0,0), (P.X, P.Y)
end;
Ich weiß aus dem Debugger, dass P1 in der aufrufenden Prozedur nicht (0,0) ist, aber in der aufgerufenen Prozedur ist er (0,0).

Folgende Syntaxen funktionieren hingegen:
Delphi-Quellcode:
procedure TFrameKonstruktion.ZeichnenSetzeEndpunkt(P: TPoint);
var
  P0: TPoint;
begin
  P0 := ZeichenpunktStart;
  // hier sollen später noch einige weitere Transformationen mit P0 durchgeführt werden
  with TLinie.Create(Fenster.Zeichenobjekte, AktuellesZeichenformat) do
  SetzeGroesse2(P0, P); // übergibt (P0.X, P0.Y), (P.X, P.Y)
end;
Delphi-Quellcode:
procedure TFrameKonstruktion.ZeichnenSetzeEndpunkt(P: TPoint);
begin
  with TLinie.Create(Fenster.Zeichenobjekte, AktuellesZeichenformat) do
  SetzeGroesse2(ZeichenpunktStart, P); // übergibt (ZeichenpunktStart.X, ZeichenpunktStart.Y), (P.X, P.Y)
end;
Janni
2005 PE, 2009 PA, XE2 PA

Geändert von Redeemer (23. Jul 2018 um 10:37 Uhr)
  Mit Zitat antworten Zitat
 


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 02:48 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 by Thomas Breitkreuz