Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Access Violation (https://www.clubdelphi.com/foros/showthread.php?t=70750)

Alejo15x 09-11-2010 02:16:54

Access Violation
 
Hola!

Tengo un problema con un codigo, el cual solo aparecé al ser llamado directamente desde un TTimer.

Mi codigó se vé así:

TTimer:
Código Delphi [-]
    // Mana Train 1
    if (Mana >= StrToInt(Edit8.Text)) then
    begin
      SendString(Edit9.Text);
      Delay(5000);
    end;

SendString:
Código Delphi [-]
procedure SendString(FVal:String);
var I:Integer;
begin
  for I := 0 to Length(FVal) do
  begin
    SendMessage(FMemory.Hwnd, WM_CHAR, Ord(FVal[i]), 0);
    Delay(VTypeWaitTime);
  end;
  PostMessage(TibiaHwnd, WM_KEYDOWN, VK_RETURN, 0);
end;

En rojo puse el area del error, donde me da una intrución como "Access Violation Error".

Puedo llamar al SendString normalmente y sin ningun problema desde un boton, o cualquier cosa, pero menos del TTimer.

Sabén que sucede?. Que eh echo mal?.

Saludos!

roman 09-11-2010 02:22:38

Lo curioso es que eso debería fallar aún fuera del timer. Para recorrer una cadena debes hacerlo desde 1:

Código Delphi [-]
for I := 1 to Length(FVal) do
begin
  ...
end;

// Saludos

Alejo15x 09-11-2010 02:36:04

Cita:

Empezado por roman (Mensaje 381755)
Lo curioso es que eso debería fallar aún fuera del timer. Para recorrer una cadena debes hacerlo desde 1:

Código Delphi [-]for I := 1 to Length(FVal) do begin ... end;


// Saludos

Estando en 1, no me produce ningun resultado...Y no, cuando está en 0 no produce error, es más funcióna perfectamente.


La franja horaria es GMT +2. Ahora son las 12:37:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi