Einzelnen Beitrag anzeigen

Temi00

Registriert seit: 1. Aug 2004
9 Beiträge
 
#8

AW: Delphi 6 -> Delphi 10.2

  Alt 5. Apr 2018, 13:50
Hallo Forum,
nein als Zielplattform ist weiter 32bit eingestellt.

Ich habe ja in den Zeos sourcen überhaupt nichts geändert.

Kenne leider die Objectorientierte Programmierung nicht (Hab bisher meist PHP funktionale Programmierung - allerhöchstens objectbasiert aber nicht objectorientiert programmiert)

Delphi-Quellcode:
function TZSymbolNode.FindChildWithChar(Value: Char): TZSymbolNode;
var
  I: Integer;
  Current: TZSymbolNode;
begin
  Result := nil;
  for I := 0 to 255 do
  begin
    Current := Children[I]; <-------
    if (Current = nil) or (Current.Character = Value) then
    begin
      Result := Current;
      Break;
    end;
  end;
end;
Woher kommt den die Variable Children? Ist das eine globale Variable? Ich denke nicht muß wohl was wie Childs vom Objekt TZSymbolNode sein?
Ja laut Debugger sind da 256 member(?) von Children nil

Ich suche jetzt also wie vorgeschlagen nach

TZSymbolNode.Create

Delphi-Quellcode:

// also finde ich hier

constructor TZSymbolNode.Create(Parent: TZSymbolNode; Character: Char);
begin
  FParent := Parent;
  FCharacter := Character;
  FValid := False;
  SetLength(FChildren, 256);
end;

// und hier


constructor TZSymbolRootNode.Create;
var
  I: Integer;
begin
  inherited Create(nil, #0);

  for I := 0 to 255 do
  begin
    FChildren[I] := TZSymbolNode.Create(Self, Chr(I));
    FChildren[I].Valid := True;
  end;
end;
wenn man den Aufrufstack anschaut (siehe Anhang) kann man vieleicht das ganze verkürzen? den wie gesagt am Quellcode der Zeos Komponenten habe ich nichts geändert.

sorry für die blutigen Anfängerfragen.
Miniaturansicht angehängter Grafiken
2018-04-05-14_42_34-azshop-delphi-10.2-ztokenizer-%5Bstopped-thread-8704%5D-%5Bbuilt%5D.png  

Geändert von Temi00 ( 5. Apr 2018 um 13:54 Uhr) Grund: Anhang vergessen ;)
  Mit Zitat antworten Zitat