Thema: Delphi Kleines Rekursiv-Problem

Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Kleines Rekursiv-Problem

  Alt 8. Mai 2007, 18:28
Hi,

Folgende function soll rekursiv einen x-Wert ausrechnen.. z.B wenn man nen Button auf nem Panel auf nem Panel auf nem Panel auf ner Form hat und dann die Bildschirmposition haben will dann würde man mit meiner Methode so vorgehn:

GlobalX := Button.Left + GetDX(0,PanelAufDemDerButtonIst); oder

GlobalX := GetDX(Button.Left,PanelAufDemDerButtonIst); Das klappt irgendwie.. aber irgendwie auch nicht... wenn ich das ganze mit Breakpoints verfolge dann arbeitet alles wunderbar aber dann ist WC = nil und Result wird gesetzt.. danach die nächste Station ist ja end; und danach wird eigentlich wieder in die Procedure gesprungen die GetDX aufgerufen hat. Komischerweise bleibt der Debugger aber 3 mal hintereinander bei end; stehn und auf einmal ist Result = 45243412 oder so -.-

Delphi-Quellcode:
function GetDX(Ax: Integer; WC: TWinControl): Integer;
begin
 if WC <> nil then
   GetDX(Ax+WC.Left,WC.Parent)
 else
  Result := AX;
end;
Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat