PREGUNTAS CONTESTADAS - Delphi≤nguaje=

 Hay un total de 680 Preguntas.<<  >> 

    Pregunta:  1754 - FORMULARIO TRANSPARENTE
Autor:  Jaime Ramirez
Ncesito insertar un componente ActiveX en una pagina WEB. Mi pregunta es:
¿ como hago para que el formalario sea transparente y solo me aprezca el boton?
  Respuesta:  edwin colon
ahi te mando todo el codigo de poner el formulario transparente

**************************************************************************************
var
frmRegion, tempRegion: HRGN;
i: Integer;
Arect: TRect;
begin
frmRegion := 0;
for I:= 0 to ControlCount - 1 do begin
aRect := Controls[i].BoundsRect;
OffsetRect( aRect, clientorigin.x - left, clientorigin.y - top );
tempRegion := CreateRectRgnIndirect( aRect );
if frmRegion = 0 then
frmRegion := tempRegion
else begin
CombineRgn( frmRegion, frmRegion, tempRegion, RGN_OR );
DeleteObject( tempRegion );
end;
end;
tempregion :=
CreateRectRgn( 0, 0, Width,
GetSystemMetrics( SM_CYCAPTION )+
GetSystemMetrics( SM_CYSIZEFRAME )+
GetSystemMetrics( SM_CYMENU ) * Ord(Menu <> Nil));

CombineRgn( frmRegion, frmRegion, tempRegion, RGN_OR );
DeleteObject( tempRegion );
SetWindowRgn( handle, frmRegion, true );

end;

***************************************************************************
espero te funcione este codigo, creeme es sumamente efectivo.
  Respuesta:  Kiem
te dare lo fundamental ok.

Pon tu Form estas propiedades:

Color := clLime;
TransparenColor := True;
TransparenColor := clLime;

Modifica estas propiedes y ejecuta y veras...
Nota: Me avisas si Pincha

Saludos Kiem
  Respuesta:  Mariano
Una forma rapida es no barrar el background atrapando el mensaje con una funcion del tipo

Procedure WMEraseBkgnd (Var Msg:TWMEraseBkGnd); Message WM_eraseBkGnd;

Procedure TForm1.WMEraseBkgnd (Var Msg:TWMEraseBkGnd);
begin
Msg.Result := 1;
end;

    Pregunta:  1776 - COMO PUEDO IMPRIMIR UN DOCUMENTO DE WORD COMO PLANTILLA
Autor:  Carlos Gutiérrez Rodriguez
Hola;
Estoy desarrollando una aplicación de facturación y había pensado en utilizar todas las posibilidades del Word para que el usuario se pueda configurar la impresión de cualquier forma.
Se que tiene que haber por ahí metodos para ejecutar un documento en Word, incluso pasarle determinados parametros para que el Word ni se vea (ocultarlo).
Si alguien lo ha desarrollado anteriormente se lo agradecería muchisimo.

Gracias de antemano...
  Respuesta:  Julian|
Carlos yo tengo un componente super que te permite crear una plantilla en word como tu quieras y luego mediante delphi le pasas los parametros que quieras, incluso consultas sql, tablas, variables. Funciona perfecto. Si te interesa escribeme un mail y con mucho gusto te lo envio a tu correo.
  Respuesta:  Carlos García
Te envío un trozo de código:

//Creo el objeto wordApplication
if varisempty(palabra) then
begin
palabra:= CreateOleObject(´Word.Application´);
end else
if palabra.activate = False then
Application.Messagebox(´Word ya está abierto´,´Abrir´,mb_ok+mb_iconinformation);

//Utilizo una plantilla. Con la siguiente senténcia relleno una celda de una tabla.
palabra.Activedocument.tables.item(NTabla).cell(Fila ,Columna).range.text:= Dato;

//Esta es la forma de cargar la plantilla
palabra.documents.add(´C:\Mis documentos\plantilla.DOT´,False);

    Pregunta:  1777 - APLICACION CLIENTE Y BD EN OTRO EQUIPO (SERVIDOR)
Autor:  Carlos Gutierrez Rodriguez
Hola;
Tengo la version 4.0 cliente/Servidor y estoy empezando con aplicaciones cliente-servidor;
mi problema:
que tipos de objeto necesito introducir en mi formulario para crear una aplicación (cliente) que correrá en un pc y que obtenga las tablas de otro pc (servidor). A ser posible me gustariá que el Pc cliente no tubiera que tener instalado el BDE.

Muchisimas gracias.
  Respuesta:  Juanlu Juanlu
Si no quieres que en los clientes hay que instalar el BDE, tendrás que hacer una aplicación en tres capas, usando MIDAS. Mira en la documentacion de delphi.

Si si quieres usar el bde, basta con usar los objetos normales (TTable y demás), usando un alias, que puede apuntar a los datos de la maquina global, o a un servidor remoto.

    Pregunta:  1837 - ACCESS EN DELPHI
Autor:  Antonio Hernandez
Por que Delphi no puede manejar una tabla Ms-Access97 con más de 41 campos. Al hacer Table1.Post da el siguiente error (key violation Consulta demasiado compleja).
  Respuesta:  jab -
Yo que sepa ese tipo de error te da solo cuando intentas introducir un registro con el mismo valor de uno ya existente en su llave.
  Respuesta:  Antonio Hernández González
Manejar tablas Ms-Access 97 en Delphi mediante ODBC, da problemas con el acceso a los datos (sobre todo si has instalado Acceso a datos de Office 97) y es bastante lento. La solución está en utilizar Microsoft ADO 2.1 ó superior y los componentes Borland Delphi ADO Express ó los
de algún otro ,ej. por http://www.cybermagic.co.nz/winsoft/adonis.htm

Esta respuesta es del mismo autor que la pregunta
Gracias ...
  Respuesta:  Ismael (Ifer) Flores
Si te ocurre este error, comprueba de que no estes tratando de introducir dos veces el mismo valor clave en un campo declarado como tal, no creo que el problema sea la capacidad del Access (aunque siempre hay que dudar del software Microsoft),Bye.

    Pregunta:  1848 - RESIDENTE EN MEMORIA
Autor:  Ismael (Ifer) Flores
Por fa, tengo la necesidad de hacer que mi aplic. Delphi se encuentre residente en memoria (en VB usaba el Systray.ocx)
  Respuesta:  Jose Luis Trujillo
Si lo que pretendes es colocar un icono en la parte derecha de la barra de tareas y desde este acceder a tu programa, lo puedes conseguir con un componente de las librerias RXLIB.
Puedes conseguirlas en www.clubdelphi.com.
Tambien se puede hacer mediante codigo, si esta es la forma que te interesa mandame e_mail.
  Respuesta:  Dairo Osorio Gonzalez
Hola:

En windows no existe el concepto de resindeen memoria, lo que pasa es que se queda ejecutando en un segundo plano.

Con un metodo que se llama Hide, puedes ocultar tu aplicacion y son uno que se llama show, la vuelves a mostrar.

Te puedo enviar un ejemplo.

Suerte...

    Pregunta:  1849 - REGISTRO DEL SISTEMA
Autor:  Ismael (Ifer) Flores
Por fa, no se como o qué elementos del Delphi puedo usar para escribir, borrar, adicionar y eliminar Keys y subkeys del registro del Windows 9x, Se que debo utilizar los Apis, pero su manejo es bastante complicado, no existe una otra forma de hacerlo ? (códigos de ejemplos please).
  Respuesta:  Dario Alvarez Aranda
Hola...

Existen varios componentes que hacen ese trabajo por ti, solo le das el valor y el se encarga de almacenarlo y hasta encriptarlo. Escribeme y te lo envio.
  Respuesta:  Dairo Osorio Gonzalez
Yo uso Delphi 3.0 Cliente/Servidor y en los ejemplos hay uno que se llama reginid y tiene lo que buscas

Te digo que hay un objeto que se llama Treginid que esta contenido en la unidad Registry, con eso puedes ir empezando, si quieres te mando un ejemplo.

Suerte...

    Pregunta:  1920 - CUADROS DE DIALOGO WIN95
Autor:  Alberto Osuna Núñez
Necesito hacer que mi aplicación permita formatear un disco, pero sin salir de la misma aplicación.

¿Como es que puedo ejecutar cuadros de diálogo de Windows desde una aplicación Delphi que no están soportados por los componentes que se incluyen con Deplhi como lo es el cuadro de diálogo de formateo de discos?

Espero que alguien pueda ayudarme y de antemano muchas gracias.
  Respuesta:  Dario Alvarez Aranda
Hola...

Tengo un componente (no lo hice yo), que permite llamar casi cualquier cuadro de dialogo de Windows, tales como: ejecutyar, buscar, formatear, etc. Si los necesitas escribeme y te los envio.
  Respuesta:  Jairo Espinal
Bien amigo esto se hace aciendo una llamada a la api de windows así:
Define las siguientes constantes en la seccion de implementacion de tu unit

implementation
const
SHFMT_DRV_A = 0; //drive a
SHFMT_DRV_B = 1; //drive b
SHFMT_ID_DEFAULT = $FFFF; //tamaño de disco por defecto
SHFMT_OPT_QUICKFORMAT = 0; //formato rapido
SHFMT_OPT_FULLFORMAT = 1; //formato completo
SHFMT_OPT_SYSONLY = 2; //solo archivos de sistema
SHFMT_ERROR = -1; //valor que devuelve si se produce un error
SHFMT_CANCEL = -2; //valor si se cancela
SHFMT_NOFORMAT = -3; //valor si el disco se formateo

seguidamente en la misma seccion declara la funcion de formateo

function SHFormatDrive(hWnd : HWND; Drive : Word;
fmtID : Word;
Options : Word) : Longint
stdcall; external ´Shell32.dll´ name ´SHFormatDrive´;

despues debes hacer la llamada a la funcion

procedure TFormato.Button1Click(Sender: TObject);
var
FmtRes : longint;
begin
try
FmtRes:= ShFormatDrive(Handle, SHFMT_DRV_A,SHFMT_ID_DEFAULT, SHFMT_OPT_FULLFORMAT);
case FmtRes of
SHFMT_ERROR :
ShowMessage(´Error formatiando el drive´);
SHFMT_CANCEL :
ShowMessage(´Formateo cancelado por el usuario´);
SHFMT_NOFORMAT :
ShowMessage(´No se pudo formatear el disco´)
else
ShowMessage(´El disco ha sido formateado´);
end;
except
end;
end;


Espero te sirva saludos

    Pregunta:  1927 - MANEJO DE BASE DE DATOS POR LA WEB
Autor:  Juan Mamani Ch.
Me estoy iniciando en la programación web con delphi como puedo hacer una aplicación que resida en un servidor web y ejecutar desde cualquier página html, para consultar una base de datos?
Tengo entendido que se puede hacer mediante
CGI
DLL
Alguién podría enviar un breve ejemplo?
Necesito tener otros conocimientos, cuáles son?

Gracias mundo
  Respuesta:  Heriberto Ledesma
Para eso necesitas el Personal Web Server, que te permite poner tu pc como servidor, y tienes razon con respecto a los CGIs, si gustas te puedo enviar un documento que tengo dobre como hacerlo, que por cierto tambien baje de internet (pero no me preguntes de donde porque no recuerdo:)), Escribeme y con gusto te lo enviare...
  Respuesta:  Xavi
Yo utilizo ASP para servidores Windows NT.
Atraves de ASP, y programando con VBScipt o JavaScript, puedes gestionar bases de datos atraves de ODBC.
Si te interesa el tema, en el apartado de cursos encontraras información sobre ASP.

Espero que te sirva.

    Pregunta:  1949 - COMO PUEDO, EN RUN TIME,SELECCIONAR "RENGLONES" DE UN GRID?
Autor:  Cesar Ruiz
Cuando yo selecciono algunos renglones o registros de un Grid, la forma de acceder a ellos desde programa es coun DBGrid.SelectedRows.Count, y utilizar una variable TBookMark para posicionarme de uno por uno. La pregunta es: ¿Como puedo yo en tiempo de ejecucion y por programa, posicionarme en un registro en particular y marcarlo como "seleccionado"?

Agradecere mucho su ayuda. Gracias!!
  Respuesta:  José Oronas
Yo hace tiempo que no uso la tDBGrid, por lo que no recuerdo si tienen los métodos que te voy a sugerir, la he reemplazado por la tRXDBGrid y alli si con seguridad tenes los métodos

ToggleRowSelection (para cambiar el estado de seleccion de una fila) y

GotoSelection(I) (para recuperar cada una de las filas seleccionadas)

SelectedRows.Count (de da el nro de Filas Seleccionadas)

SelectAll ( Selecciona Todo)

UnSelectAll ( Deselecciona Todo)

Por si no las estas usando las RXLIB es una coleccion de herramientas desarrolladas por unos Rusos, de exelente calidad freeware y con código Fuente incluido)
estan en http://www.rxlib.com

Espero que te sea útil.
Saludos

    Pregunta:  1994 - CREAR UN ACCESO DIRECTO EN EL ESCRITORIO
Autor:  Federico Gordillo
necesito crear un acceso directo en el escritorio, pero no se cual es el formato de un archivo *.LNK y conque funciones puedo crearlo.
Desde ya muchas gracias.
Saludos Atte
Federico G.
  Respuesta:  rafa chardi
Hola te emvio unidad para que te la instales en los componentes y la puedas utilizar para la creacion de accesos directo . esta basada en la contestacion anterior.
Espero que te sirva de algo.

Por el tamaño de la respuesta, está en el archivo resp1994.txt
  Respuesta:  José Oronas
Antes que nada aclaro que el código que transcribo a continuación, no es mio no lo he probado y ni siquiera recuerdo como llego a mis manos, de todos modos la intención del autor es ayudar y bien lo está haciendo

Saludos .....

procedure TForm1.Button1Click(Sender: TObject);

procedure CreaLnk( Exe,Argumentos,DirTrabajo,NombreLnk,DirDestino:string);
var
Objeto: IUnknown;
UnSlink: IShellLink;
FicheroP: IPersistFile;
WFichero: WideString;
begin
Objeto := CreateComObject(CLSID_ShellLink);
UnSlink := Objeto as IShellLink;
FicheroP := Objeto as IPersistFile;
with UnSlink do
begin
SetArguments( PChar(Argumentos) );
SetPath( PChar(Exe) );
SetWorkingDirectory( PChar(DirTrabajo) );
end;
WFichero := DirDestino + ´\´ + NombreLnk;
FicheroP.Save(PWChar(WFichero),False);
end;

begin
CreaLnk( ´c:\windows\Notepad.exe´, {Ejecutable}
´c:\Autoexec.bat´, {Argumentos}
´c:\´, {Diretorio de trabajo}
´Editar Autoexec.lnk´, {Nombre del Acceso Directo}
´c:\windows\escritorio´ {Donde hay que crearlo}
);
end;

|<  <<  2 3 4 5 6 7 8 9 10 11 12  >>  >|