Entradas etiquetadas con function
Calcular el factorial de un número
4 abr
Bueno, aclararles que no soy para nada un fan de VB, y tampoco es que me la lleve muy bien con él, pero en fin…Cuando toca hacer trabajos o actividades en determinado lenguaje no queda más alternativa ¿no?.
Esta función hace poco la expuse aquí en ObjectPascal, ahora hice una traducción a Visual Basic, un poco tosca pero es lo que hay, xD.
' --------------------------------------- '|---------- Función Factorial ----------| '|-- Calcula el factorial de un número --| '|--------- Autor: .:WindHack:. ---------| '|-- Sitio Web: http://daw-labs.com ---| ' --------------------------------------- Public Function Factorial(Num As Double) As String Dim I As Integer If Num >= 170 Then Factorial = "Numero Infinito..." Else For I = 1 To Num - 1 Num = Num * I Factorial = Num Next End If End Function
Con “recursividad”:
Public Function FactorialR(Num As Double) As Currency If (Num > 0) Then FactorialR = Num * FactorialR(Num - 1) Else FactorialR = 1 End If End Function
Saludos,
Obtener nombre de ventana activa [VB]
4 abr
Esta es otra función muy parecida a la anteriormente mostrada en Delphi -> La pueden ver aquí. Programada por mi amigo y compañero The Swash.
'----------------------------------------------------------- ' Function : [GetTitleActiveApp] ' Type : [SNIPPET] ' Autor : [The Swash] ' DateTime : [31/03/2010] '----------------------------------------------------------- Option Explicit 'User32 Lib Apis Private Declare Function GetForegroundWindow Lib "user32" () As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long 'SendMessage Constants Const WM_GETTEXT = &HD Const WM_GETTEXTLENGTH = &HE Public Function GetTitleActiveApp() As String Dim hRet As Long Dim hSpace As Long Dim sBuffer As String hRet = GetForegroundWindow If hRet <> 0 Then hSpace = SendMessage(hRet, WM_GETTEXTLENGTH, 0&, 0&) + 1 If hSpace > 0 Then sBuffer = Space$(hSpace) Call SendMessage(hRet, WM_GETTEXT, hSpace, sBuffer) End If End If GetTitleActiveApp = Trim(sBuffer) End Function
Un ejemplo de llamada puede ser:
MsgBox GetTitleActiveApp
Mostrar propiedades de un archivo
31 mar
Bueno, esta función lo que hace es usar la Shell API (ShellExecuteInfo) para mostrarnos las propiedades del archivo.
Es realmente sencilla, pero aclaro que no la he programado yo, tampoco recuerdo el nombre del autor así que disculpen.
function ShowProperties(hWndOwner: HWND; const FileName:string): boolean; var Info: TShellExecuteInfo; Handle : THandle; begin { Fill in the SHELLEXECUTEINFO structure } with Info do begin cbSize := SizeOf(Info) ; fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_INVOKEIDLIST or SEE_MASK_FLAG_NO_UI; wnd := hWndOwner; lpVerb := 'properties'; lpFile := pChar(FileName) ; lpParameters := nil; lpDirectory := nil; nShow := 0; hInstApp := 0; lpIDList := nil; end; Result := ShellExecuteEx(@Info) ; end;
Les dejo la descarga de un ejemplo un poco más explícito.
Para descargar hacer click aquí
Funciones sencillas y simples
31 mar
Aquí dejaré algunas funciones sencillas que me han sacado de varios apuros.
1º – Calcular múltiplo. Función para calcular los múltiplos en un rango determinado.
function CalcularMultiplo(Desde,Hasta,Multiplo:Integer):String; var I:Integer; begin for I:=Desde to Hasta do begin if I mod Multiplo = 0 then Result := Result + IntToStr(I) +',' end; end;
2º – Factorial. Función para calcular el factorial de un número.
function Factorial(Num:Integer):String; var I:Integer; B:Extended; begin B := Num; For I:=1 to Num - 1 do B := B * I; Result := FloatToStr(B); if Num > 170 then Result := 'Numero Infinito...' end;
3º – Par o Impar. Función para saber si un número es par o impar.
function ParOImpar(Num:Integer):String; begin if Num mod 2 = 0 then Result := IntToStr(Num)+' Es un número par' else Result := IntToStr(Num)+' Es un número impar' end;
4º – Es divisible. FUnción para saber si un número es divisible por otro.
function EsDivisible(Num1,Num2:Integer):String; begin if (Num1 mod Num2 = 0) then Result := 'Es divisible.' else Result := 'NO es divisible.'; End;
Espero les sea de ayuda.
Saludos,
Kryptix v1.0
30 mar
Kryptix es una aplicación que permite encriptar o desencriptar una cadena de texto usando algunos cifrados como el Caesar (César), Vigenère, XOR y un simple Reverser (mejor conocido como StringReverse).
Desarrollé dos nuevas funciones: la primera es una función que realiza exactamente lo mismo que la “ReverseString” encontrada en la unidad “StrUtils.pas“, pero esta es un poco más rápida.
ReverseStringM
function ReverseStringM(const AText:String):String; var I:Integer; Tmp:String; begin for I:= Length(AText) downto 0 do Tmp := Tmp + AText[I]; Result := Tmp; end;
Y la segunda, es una que genera una contraseña (Key) aleatoria con el número de caracteres deseados (Count).
function GenerateRandomString(Count:Integer):String; const Alphabet: Array [0..25] of Char = ('a','b','c','d','e','f','g','h','i','j', 'k','l','m','n','o','p','q','r','s','t', 'u','v','w','x','y','z'); var I:Integer; iTmp:String; begin Result := ''; Randomize; for I:=1 to Count do begin iTmp := iTmp + Alphabet[Random(25)]; Result := iTmp end; end;
Por último, les dejo algunas capturas del Kryptix…
Descargar
Obtener el nombre de la ventana activa
30 mar
¿Alguna vez han querido obtener el nombre de la ventana activa?, pues si es así, les servirá ésta función, la cual emplea algunas API’s para obtener el título de la ventana que se está ejecutando.
Primero creemos nuestro proyecto y en él agregamos:
1 TTimer 1 TListBox 1 TLabel
Nos quedará algo como ésto:
Ahora vamos a la parte buena, programar.
Vamos a declarar una función que la llamaremos “GetActiveCaption” y pondremos el siguiente código…
function GetActiveCaption: string; var Handle: THandle; Len: LongInt; Title: String; begin Result := ''; Handle := GetForegroundWindow; if Handle <> 0 then begin Len := GetWindowTextLength(Handle) + 1; SetLength(Title, Len); GetWindowText(Handle, PChar(Title), Len); ActiveCaption := TrimRight(Title); end; end;
Con ésta función obtenemos el nombre de la ventana. Para obtener el nombre de la que está activa pues simplemente agregamos en el evento OnTimer del TTimer éste código.
procedure TForm1.Timer1Timer(Sender: TObject); begin ListBox1.AddItem(ActiveCaption,nil); end;
Listo, eso es todo.
Saludos,

