Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 16-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
Saludos, bueno me voy a calmar haaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, no encuentro absolutamente nadaaaaaaa de editar las cadenas a binario, solo he encontrado esto:

Código Delphi [-]
Ayuda delphi:
 
reg.ReadBinaryData(const Name: String; var Buffer; BufSize: Integer): Integer;
 
reg.WriteBinaryData(const Name: String; var Buffer; BufSize: Integer);


pero no entiendo que parametros son los que me piden....he planteado asi el codigo:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);
var reg: TRegistry;
begin
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\Control \SessionManager\MemoryManagement\', True);
  if reg.ReadBinaryData('EnablePrefetcher') = '3' [No se como va esta linea de codigo, por que no se los parametros] then
    Begin
      reg.WriteBinaryData('EnablePrefetcher',5);
      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
    end
  else   MessageDlg('Su Menu ya estaba optimizado',mtWarning,[mbOK],0);
         reg.CloseKey;
end;

Lo que voy a hacer es cambiar la siguiente clave asi :

Cita:
[FONT='Book Antiqua','serif']HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \SessionManager\MemoryManagement\PrefetchParameters[/font][FONT='Book Antiqua','serif'].
Una vez alli aumentaremos el contenido del valor EnablePrefetcher del predeterminado "3" al recomendado "5".[/font]
Se que escribi bestialidades, pero no tengo ni ideaaaaaa como va esos parametros, por favor alguien que me de un buen ejemplo....por que ni ejemplos hay que es lo peor....gracias a todos por ayudarmen....
Responder Con Cita
  #22  
Antiguo 16-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola BuRtOn,

Primero te agradecería que editaras el mensaje, que te salió bastante horizontal.

Si puedes borrar esas [ FONT ] que aparecen sería mejor ya que hace dificil su lectura.

Para guardar el dato, debes tener una variable auxiliar del tipo string y almacenar el valor temporalmente en ella. Por ejemplo digamos que la variable string se llama "valor" y que queremos modificar una clave (es un ejemplo) GrabarAqui (el directorio es lo de menos)

Lo que hacemos es:
1. Guardar en "valor" lo que deseamos guardar en el registro.
2. Guardar valor como un dato binario.

en código:
Código Delphi [-]
valor := '3'; // un ejemplo
Reg.WriteBinaryData('GrabarAqui',PChar(valor)^,Length(valor));

PChar()^ nos permite tener acceso al buffer directo de los datos, Length() nos obtendrá el tamaño del buffer. Si te fijas, la función espera un Buffer o el puntero de la dirección de memoria donde están los datos. No me mires a mi, asi es como funciona y está implementado el método.

Espero que se entienda

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #23  
Antiguo 16-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
Saludos Delphius, haber si te entiendo, seria algo asi:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);var reg: TRegistry;var Valor : String;begin  reg:= TRegistry.Create;  reg.RootKey := HKEY_LOCAL_MACHINE;  reg.OpenKey('SYSTEM\CurrentControlSet\Control \SessionManager\MemoryManagement\', True);  if reg.ReadBinaryData('EnablePrefetcher'PChar('3')^,length('3')) = '3'then    Begin      reg.WriteBinaryData('EnablePrefetcher'PChar('5')^,length('5'));     MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);    end  else   MessageDlg('Su Menu ya estaba optimizado',mtWarning,[mbOK],0);         reg.CloseKey;end;Lo que esta en negrita azul son los valores que tiene por defecto el registro que es 3 y necesito cambiarlo a 5, si estara bien asi el procedimiento ?, teniendo en cuenta que en la linea de ReadBinaryData tengo que hacer un condicional If para verificar que ese registro no este modificado, para proceder a modificarlo....y de nuevo gracias Delphius, y te agradeceria saber de donde aprendiste tanto de registros en delphi....
Responder Con Cita
  #24  
Antiguo 16-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
haaa, no se por que me salen los codigos de lado ????...perdon, pero no es mi culpa...
Responder Con Cita
  #25  
Antiguo 16-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Me tienes que enseñar a escribir todo horizontal.

Lo que te sucede es que tal vez no das enter o retorno de carro. Pues la verdad no entiendo como le haces para que te salga así.

Acabo de ver que el registro completo que estás buscando es del tipo REG_DWORD y por lo poco que se, es preferible hacerlo con WriteInteger. Ya que se trata de un decimal de 4 bytes. Que el editor de registros lo muestre de dicha manera es una cosa...

Si fuera REG_BINARY si optaría por WriteBinaryData.

Se aprende tocando y leyendo... si está en inglés... se lee igual. Por algo existen los traductores.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #26  
Antiguo 16-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
, jajajaja, hay Dios esto si cambia, pero bueno que todo sea por el saber, entonces como es la estructura del integer ??, tengo que hacer todo exactamente como el BinaryData, pero con Integer ??, tengo que crear la variable o como tengo que hacer, mira aqui esta el codigo como lo plantee:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);
var reg: TRegistry;
begin
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\Control \SessionManager\MemoryManagement\', True);
  if reg.ReadInteger('EnablePrefetcher',3) = '3' then
    Begin
      reg.WriteInteger('EnablePrefetcher',5);
      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
    end
  else   MessageDlg('Su Menu ya estaba optimizado',mtWarning,[mbOK],0);
         reg.CloseKey;
end;

se hace igual que el string ? tengo que hacer el mismo metodo que el binary ?
Responder Con Cita
  #27  
Antiguo 16-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por BuRtOn Ver Mensaje
, jajajaja, hay Dios esto si cambia, pero bueno que todo sea por el saber, entonces como es la estructura del integer ??, tengo que hacer todo exactamente como el BinaryData, pero con Integer ??, tengo que crear la variable o como tengo que hacer, mira aqui esta el codigo como lo plantee:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject); 
var reg: TRegistry; 
begin
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\Control \SessionManager\MemoryManagement\',True);
  if reg.ReadInteger('EnablePrefetcher',3) = '3'
    then Begin
             reg.WriteInteger('EnablePrefetcher',5);
             MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
           end
    else MessageDlg('Su Menu ya estaba optimizado',mtWarning,[mbOK],0);
  reg.CloseKey;
end;

se hace igual que el string ? tengo que hacer el mismo metodo que el binary ?
Se procede igual que el ReadString y WriteString.
BuRtOn no te enojes, pero presiona F1 y fíjate los parámetros que reciben estos métodos.

El ReadInteger recibe como parámetro la variable o clave a consultar y regresa el valor guardado, mientras que el Write recibe la clave y el valor a guardar.

Código Delphi [-]
algo := Reg.ReadInteger('que se yo');
Reg.WriteInteger('que se yo',3);

Se ve la diferencia. Uno regresa, el otro escribe. Uno tiene un solo parámetro, el otro dos.

Eso está en la ayuda bien explicado.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 16-08-2008 a las 05:55:14.
Responder Con Cita
  #28  
Antiguo 16-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
Ok, ya te voy entendiendo, pero aqui va esto:

1.) "algo" que tipo de variable es ?

no se si quede algo asi :

Código Delphi [-]
var algo : Integer;algo := Reg.ReadInteger('EnablePrefetcher');Reg.WriteInteger('EnablePrefetcher',5);

pero igual se generaria un error por que estoy manejando un condiconal en el ReadInteger , para saber que esa clave no se ha movido para proceder con la aplicacion y si ya se modifico que me envie el mensaje de information diciendo esta clave ya fue modificada...


bueno hice esto, pero me salio un error:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);
var reg: TRegistry;
var valor :integer;
begin
valor := 3;
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\Control \SessionManager\MemoryManagement\', True);
  if reg.ReadInteger('EnablePrefetcher') = valor then
    Begin
      reg.WriteInteger('EnablePrefetcher',5);
      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
    end
  else   MessageDlg('Su Menu ya estaba optimizado',mtWarning,[mbOK],0);
         reg.CloseKey;
end;

El error me dice lo siguiente:

Failed to get data for 'EnablePrefetcher'

no se en donde estoy fallando, y no se como ubicar la variable algo que tu me dijiste...en fin gracias Delphius y perdon por las molestias...
Responder Con Cita
  #29  
Antiguo 17-08-2008
Forest Forest is offline
Miembro
 
Registrado: may 2007
Posts: 30
Poder: 0
Forest Va por buen camino
Bueno, no tengo ni idea la verdad de muchas cosas, pero para mi que es eso de:
Código Delphi [-]
reg.OpenKey('SYSTEM\CurrentControlSet\Control \SessionManager\MemoryManagement\', True);

Si te fijas volviste a dejar un espacio en la ruta, especificamente en 'Control '

Checa, tal vez es eso...
Responder Con Cita
  #30  
Antiguo 17-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
Gracias amigo, pero ya mire y no era ese espacio , Dios esto me va a volver loco, no se que es lo que estoy haciendo mal, bueno por si alguien me quiere hechar una manito, aqui esta el codigo de lo que tengo, y tratare de explicarlo:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);
var reg: TRegistry;
var valor :integer;
begin
valor := 3;
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\', True);
  if reg.ReadInteger('EnablePrefetcher') = valor then
    Begin
      reg.WriteInteger('EnablePrefetcher',5);
      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
    end
  else   MessageDlg('Su Menu ya estaba optimizado',mtWarning,[mbOK],0);
         reg.CloseKey;
end;

Bueno ahora si explico lo que trate de hacer, como se pueden dar cuenta lo que esta en rojo es lo que voy a cambiar y las variables que utilizo...valor lo asigne como un valor entero, por que ?, por que necesito hacer la comparacion que si el valor que esta en el registro de EnablePrefetcher es 3 que a su vez es el valor que trae por defecto es igual a valor que es tambien 3 , procede a cambiar ese valor del registro 3 a 5, entonces el EnablePrefetcher , ya no sera 3 por defecto si no 5. y de lo contratio osea si 3 es diferente, pues emite el mensje diciendo que su registro ya habia sido modificado anteriormente.

Bueno, creo que ya lo explique super bien, lo que hice y lo que trate de hacer, pero me depura bien la aplicacion, pero a la hora de ejecutarla, como mencione anteriormente me sale el siguiente erro:

"Failed to get data for 'EnablePrefetcher' "
No se que pase sinceramente, y ya lo intente de una forma u otra, y mire la ayuda y me dicen la sintaxis, pero no la se interpretar, o a veces no se que valores o que parametros son los que exigen....Bueno en fin si alguien me puede ayudar se lo agradezco, muchas gracias por su tiempo prestado.
Responder Con Cita
  #31  
Antiguo 17-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
Bueno aqui esta otro codigo que equivale a otro intento, tratando de seguir el modelo que me dijo Delphius, pero aun no me sale.

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);
var reg: TRegistry;
var valor :Integer;
begin
  valor:=5;
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\', True);
  valor:=reg.ReadInteger('EnablePrefetcher');
    Begin
      reg.WriteInteger('EnablePrefetcher',valor);
      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
    end;

end;

Bueno aqui segui tu modelo Delphius pero aun me arroja el mismo error....y si es una bobada el erro, aun no me sentiria satisfecho, por que a ese codigo como le agrego mi condiiconal If, para poder averiguar si el registro ya habia sido antes modificado, o si aun esta sin modificar, para que mi aplicacion entre y proceda..Bueno si pueden ayudarmen gracias y si no, pues me tocara seguir buscando....
Responder Con Cita
  #32  
Antiguo 17-08-2008
Forest Forest is offline
Miembro
 
Registrado: may 2007
Posts: 30
Poder: 0
Forest Va por buen camino
(esto es lo que ya habías puesto solo que no se porque no lo pude copiar bien jaja)
Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);
var reg: TRegistry;
var valor :Integer; begin   valor:=5;   reg:= TRegistry.Create;   reg.RootKey := HKEY_LOCAL_MACHINE;   reg.OpenKey('SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\', True);
  valor:=reg.ReadInteger('EnablePrefetcher');     Begin       reg.WriteInteger('EnablePrefetcher',valor);       MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
    end;

end;

Pues primero que nada ahí no tienes ningun IF y si tienes begin y end o_O...
Además ese código no sirve porque si estás intentando guardar el valor del registro a la variable, y después, quieres guardarle el valor de la variable al registro... pues no estas haciendo nada...

La verdad no tengo ni idea como dije antes xD, pero... estás seguro de que EnablePrefetcher es de tipo entero?

Para mi que debe ser algo así:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);
var reg: TRegistry;
begin
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\', True);
if reg.Read[verdadero tipo]('EnablePrefetcher') = 3; // ó '3' si fuese String
    Begin
reg.Write[verdadero tipo]('EnablePrefetcher',5); // ó '5' si fuese String
      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
    end
    else
      MessageDlg('Su Menu ya estaba optimizado ò_ó',mtInformation,[mbOK],0);
end;
Se que no es mucha ayuda, pero es lo que puedo hacer jeje
Responder Con Cita
  #33  
Antiguo 17-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
Tranquilo Forest, pero si notas, mas arriba, tengo este codigo, que es similar al tuyo si es que no es igual:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);var reg: TRegistry;var valor :integer;beginvalor := 3;  reg:= TRegistry.Create;  reg.RootKey := HKEY_LOCAL_MACHINE;  reg.OpenKey('SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\', True);  if reg.ReadInteger('EnablePrefetcher') = valor then    Begin      reg.WriteInteger('EnablePrefetcher',5);      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);    end  else   MessageDlg('Su Menu ya estaba optimizado',mtWarning,[mbOK],0);         reg.CloseKey;end;
Responder Con Cita
  #34  
Antiguo 17-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
BuRtOn,
Tengo entendido que la clave de registro que buscas es esta:

Cita:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
Pero veo en tu código que intentas abrir esta:

Cita:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\
Hay un espacio en el medio, te olvidas de abrir un directorio más y además añades una barra al final que no debe ir.

Te recuerdo que el método OpenKey recibe dos parámetros. El segundo, que es de tipo booleano permite crear el directorio en caso de no existir si el valor que se pasa es TRUE.

Estás creando esa clave de registro! Cuidado!

Debe funcionarte. He podido leer sin problemas el valor de EnablePrefetcher aplicando tu código con una variante:

Código Delphi [-]
reg:= TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey('SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters', False); //false por las dudas.


valor:=reg.ReadInteger('EnablePrefetcher');
ShowMessage(IntToStr(valor));
reg.CloseKey;
reg.Free;

Recuerda que estás creando un objeto Reg al comienzo, por tanto al final debes liberarlo con Free y que una vez que trabajas con la clave debes cerrarla con CloseKey.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #35  
Antiguo 17-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
Saludos Delphius, mira modifique el codigo, con lo que me dijiste y aun me ejecuta ese error, y si tenias mucha razon, mire el regedit, y tenia creados unos registros, pero mira dime que erro vez:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);
var reg: TRegistry;
var valor :integer;
begin
  valor := 3;
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\Control\Session Manager\MemoryManagement\PrefetchParameters ', False);
  if reg.ReadInteger('EnablePrefetcher') = valor then
    Begin
      reg.WriteInteger('EnablePrefetcher',5);
      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
    end
  else   MessageDlg('Su Menu ya estaba optimizado',mtWarning,[mbOK],0);
         reg.CloseKey;
         reg.Free;
end;

Gracias por tu tiempo...
Responder Con Cita
  #36  
Antiguo 17-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
Ok, estoy analizando bien, y pues no se que tipo de variable es valor, como tu lo colocas...yo coloque valor como Integer, para poder colocarlo en mi condicional, para que me determine si lo que hay en esa clave de registro es igual a 3 me ejecute mi aplicacion y la cambie a 5, de lo controraio emite el mensaje...pero estoy aun confundido con tu variable en el ReadInteger, por que si coloco esa variable como me quedaria el condicional??, Y de nuevo mil gracias delphius---
Responder Con Cita
  #37  
Antiguo 17-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
Ha tengo en cuenta que habia dejado un espacio al final de :

Código Delphi [-]
 reg.OpenKey('SYSTEM\CurrentControlSet\Control\Session Manager\MemoryManagement\PrefetchParameters ', False);

ya lo corregi y nada me sigue dando el mismo error....
Responder Con Cita
  #38  
Antiguo 17-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Pues en tu último código veo que te sobre un espacio al final y te falta en otra parte. Por lo demás debería funcionarte.

La variable valor tuya te sobra. Con hacer

if Reg.ReadInteger(...) = 3
then ....

Debería funcionarte, si notas. Valor no lo usas para nada más.

Lo que yo expongo es un ejemplo, y al igual que tu, mi variable valor es integer. El método ReadInteger devuelve un integer. Lo único que hago yo es guardar el resultado en la variable y lo muestro.

Es lo mismo hacer esto:
Código Delphi [-]
valor := Reg.ReadInteger(....); // guardar el valor leído
if valor = 3
   then ...

Que esto:
Código Delphi [-]
if Reg.ReadInteger(...) = 3
  then ....

En el primer caso lo único que hago es previamente guardar el valor. En el segundo directamente leo, no me interesa tener en una variable el valor leído.

¿Se entiende la diferencia?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 17-08-2008 a las 03:57:11.
Responder Con Cita
  #39  
Antiguo 17-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
Jajajajaja, ya Delphius te entendi perfectamente, y ya me salio, sabes que me estaba pasando, jajajaja Dios casi me mato la cabeza por eso, mira el codigo que yo tenia antes.

Este codigo es el que esta mal.
Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);var reg: TRegistry;var valor :integer; ---> Estas variables sobranbegin  valor := 3;  reg:= TRegistry.Create;  reg.RootKey := HKEY_LOCAL_MACHINE;  reg.OpenKey('SYSTEM\CurrentControlSet\Control\Session Manager\MemoryManagement\PrefetchParameters ', False);  if reg.ReadInteger('EnablePrefetcher') = valor then    Begin      reg.WriteInteger('EnablePrefetcher',5);      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);    end  else   MessageDlg('Su Menu ya estaba optimizado',mtWarning,[mbOK],0);         reg.CloseKey;         reg.Free;end;

y ahora mira el que esta bien:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);
var reg: TRegistry;
begin
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters', False);
  if reg.ReadInteger('EnablePrefetcher') = 3 then
    Begin
      reg.WriteInteger('EnablePrefetcher',5);
      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
    end
  else   MessageDlg('Su Menu ya estaba optimizado',mtWarning,[mbOK],0);
         reg.CloseKey;
         reg.Free;
end;

compara el codigo Delphius, y trata de descubrir mi error, jajajaja, Dios...pero enserio que me ayudaste muchisimo....espero que notes cual fue el error, jejeje....Gracias delphius..
Responder Con Cita
  #40  
Antiguo 17-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Pues claro que lo vi. Duerme un poquito, y saca el dedo de la barra espaciadora de vez de cuando y presiona en otras

Te agradecería que antes de copiar aqui, leas de nuevo el código. Asi te evitas mas golpes ¿si?

Por cierto, ¡no escribas horizontal! Cuando copies el código desde Delphi hacia aquí haz esto:

1. Abre notepad, pégalo.
2. Borra todos los espacios demás
3. Usa enter para ir a la siguiente línea.
4. Copiar y pegar en post.

La verdad es que no se como haces para copiar o pegar código de esa manera. ¿usas algún editor en particular? ¿Identas tu código? No es crítica es que... hace más dificil la lectura.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Editar componente por defecto de Delphi 6 kapullok_2006 OOP 3 05-08-2008 15:04:57
Como editar una imagen con delphi 7 kurono Varios 6 02-01-2008 22:23:12
Regedit REHome Windows 6 06-08-2007 18:55:00
Editar imagen en Delphi feico Gráficos 1 03-04-2007 14:36:06
leer una veriable del Regedit de windows con Delphi afarenas Varios 8 26-09-2006 02:01:30


La franja horaria es GMT +2. Ahora son las 08:11:15.


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
Copyright 1996-2007 Club Delphi