Programación Y Desarrollo Web
:: 
 
Apache ASP C/C++ C++ Builder


CSS Delphi HTML Java


JavaScript MySQL PHP


SQL Server Visual C++ W3C  
 
 
 
.: Inicio  ::  Código  ::  Delphi :.
 
 
 
 
  Manuales
  Código
  Trucos Windows
  Descargas
  Vínculos
 
 
 
.:: Código Delphi ::.

• Apagar PC 
• Filtro 
 

 
• Validar Edits

• Aceptar Números

Copiar el siguiente código, en el evento OnKeyPress del edit

  //la última condición, es para permitir borrar lo que se escriba
  if ((Key<'0') or (Key>'9')) and (Key<>#8) then
    Key:=#0;

• Aceptar Letras (Mayúsculas y Minúsculas)

Copiar el siguiente código, en el evento OnKeyPress del edit

  if ((Key<'A') or ((Key>'Z') and (Key<'a')) or (Key>'z')) and (Key<>#8) then
    Key:=#0;

 

 
• Apagar PC

Estas funciones, sirven para los Windows de 32 bits (Windows anteriores a xp). En Windows XP, no funcionan como deberían

Se recomienda que no se ejecute desde Delphi porque puede que solo lo cierre, sino que abran el ejecutable (.exe) que crea Delphi

• Salir y entrar como otro usuario distinto
  ExitWindows(0, 0);

• Salir y apagar
  ExitWindowsEx(EWX_SHUTDOWN, 0);

• Salir y reiniciar
  ExitWindowsEx(EWX_REBOOT, 0);

• Salir-Cerrar Sesion-Entrar como usuario distinto
  ExitWindowsEx(EWX_LOGOFF, 0);

• Forzar a la pc a que se apague
  ExitWindowsEx(EWX_FORCE,0);

• Termina todas las aplicaciones y apaga la PC
  ExitWindowsEx(EWX_POWEROFF,0);

 

 
• Simulador de Base de Datos

Se utilizan 3 Edits, un Botón, un Memo (paleta standard) y un UpDown (paleta win32)

En el evento OnClick del botón, copiar el siguiente código:

  Memo1.Lines.Add(Edit1.Text+','+Edit2.Text+','+Edit3.Text+'@');
  Edit1.Clear;
  Edit2.Clear;
  Edit3.Clear;
  Edit1.SetFocus;

Se declara una variable de tipo string, en el evento OnChangingEx del UpDown

var
  reg : string;

Y en ese mismo evento, copiar el siguiente código:

  reg:=Memo1.Lines.Strings[UpDown1.Position];
  Edit1.Text:=Copy(reg,1,Pos(',',reg)-1);
  Delete(reg,1,Pos(',',reg));
  Edit2.Text:=Copy(reg,1,Pos(',',reg)-1);
  Delete(reg,1,Pos(',',reg));
  Edit3.Text:=Copy(reg,1,Pos('@',reg)-1);
  UpDown1.Min:=Memo1.Lines.Count-1;

Por último, copiar el siguiente código dentro del evento OnCreate de la forma

  //a Min, le asigno un número mayor que Max, para invertir el UpDown
  UpDown1.Min:=1;
  UpDown1.Max:=0;

<< Nota: >> Puedes utilizar un "OpenDialog" y un "SaveDialog" (pestaña Dialog), para cargar y/o guardar la información del Memo

 

 
• Filtro

Solo tienes que copiar el siguiente código en el evento OnChange de un edit

  if not (Edit1.Text='') or (Edit1.Text=' ') then begin
    Table1.FilterOptions := [foCaseInsensitive];
    Table1.Filter:='Nombre='''+Edit1.Text+'*''';
    Table1.Filtered:=true;
  end
  else
    Table1.Filtered:=false;

 

 
• Agregar campos a ComboBox

Tan fácil como esto:

//yo lo utilicé en el evento OnCreate de la forma
var
  i : integer;
begin // begin del evento
  //por si no se encuentra en el primer registro
  Table1.First;
  for i := 0 to Table1.RecordCount-1 do begin
    //el valor entre corchetes, es el de la posicion del campo
    //ejemplo: [0] es del código; [1] es del nombre...
    //y ocupo indicarle de que tipo es el campo "AsString"
    ComboBox1.Items.Add(Table1.Fields.Fields[1].AsString);
    Table1.Next;
  end;
end; //end del evento

Si existen campos que se repiten, me los agregaría todos.
Si no queremos que se repitan, tenemos que buscar si no existe el campo en el ComboBox:

var
  i, i2, cont : integer;
begin //begin del evento
  cont:=0;
  Table1.First;
  //este for se moverá registro por registro
  for i := 0 to Table1.RecordCount-1 do begin
    //este for es para buscar si el campo ya existe en el combobox
    for i2 := 0 to ComboBox1.Items.Count-1 do
      //si es igual incrementa mi contador
      if Table1.Fields.Fields[1].AsString = ComboBox1.Items.Strings[i2] then
        inc(cont);
    //si cont=0, indica que no se encontró el registro por lo que procede a agregar el campo al combobox
    if cont=0 then
      ComboBox1.Items.Add(Table1.Fields.Fields[1].AsString);
    cont:=0;
    Table1.Next;
  end;
end; //end del evento

 
 
 
[  Inicio  ¦  Mapa del Sitio  ¦  Contacto  ]
 
 
 
Página diseñada por: TSUI Jorge Alejandro Mendoza Torres.
Sitio optimizado para ie5+/Firefox 2.0; res 800 x 600.
 
Hosted by www.Geocities.ws

1