Einzelnen Beitrag anzeigen

Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Zugriffsverletzung ??? Ich kappiers nicht!

  Alt 13. Mai 2004, 19:13
Delphi-Quellcode:
unit Unit2;

interface

uses SysUtils, AgentObjects_TLB;

const
  LMax = 2;

type
  TCommandAction = (ccTrue, ccFalse, ccNoCommand);

function Inizialize(const Command: String; AgentItem: IAgentCtlCharacterEx): TCommandAction;
function ActCommand(Commands: Array of String; AgentItem: IAgentCtlCharacterEx): TCommandAction;

implementation

function Inizialize(const Command: String; AgentItem: IAgentCtlCharacterEx): TCommandAction;
var
  Commands: Array[1..LMax] of String;
  i, j: Integer;
begin
  j := 0; //Hier ist EIN Fehler, weil der Array bei 1 beginnt, aber der ist anscheiden egal..
  if Length(Command) > 0 then
  begin
    for i := 0 to Length(Command) - 1 do //ARG!! der index eines strings beginnt bei 1 und nicht bei 0!!! aber wieso gibz da keine exception?
      if Command[i] <> ' then
        Commands[j] := Commands[j] + Command[i] //hier, j ist 0 und er schreibt aber anstandslos auf den array, wie das?
      else
        if j < Lmax then
          inc(j)
        else
          break;
    Result := ActCommand(Commands, AgentItem);
  end
  else
    Result := ccFalse;
end;

function ActCommand(Commands: Array of String; AgentItem: IAgentCtlCharacterEx): TCommandAction;
begin
  if Commands[1][1] = ':then //Hier tritt sie auf.... hm....
  begin
    result := ccTrue;
  end
  else
    result := ccNoCommand;
end;

end.
hab das ausgebessert. jetzt weiß ich wieso die zugriffsverletzung auftritt, der array ist leer... *gg*
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat