Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-05-2003
ChristianS ChristianS is offline
Miembro
 
Registrado: may 2003
Ubicación: uruguay
Posts: 12
Poder: 0
ChristianS Va por buen camino
Form, Memo Y Mas...

Que tal?
Bueno, hay tres cosas que queria saber...
1) Como se puede hacer para que un Form sea transparente?
O sea, a lo que me refiero es que si se vea un boton o una imagen que hay encima, pero el fondo se vea transparente.

2) Si tengo un Memo con N lineas y quiero que al apretar un boton me vaya a la linea "i", como puedo hacer esto?
Intente con SelStart y con el scrollby y no me funciono.

3) Alguien sabe si hay algun libro de programacion en delphi 3 o mayor para bajar (preferentemente en español???)

Gracias.

SAlu2
ChristianS
Responder Con Cita
  #2  
Antiguo 31-05-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
En cuanto a lo del formulario transparente prueba con este código de ejemplo:

Código:
procedure TForm1.Button1Click(Sender: TObject);
var
  frmRegion, tempRegion: HRGN;
  i: Integer;
  Arect: TRect;
begin
  frmRegion := 0;
  for I := 0 to ControlCount - 1 do begin
    { create a region for the control }
    aRect := Controls[i].BoundsRect;
    { coordinates have to be window-relative, not client area relative }
    OffsetRect( aRect, clientorigin.x - left, clientorigin.y - top );
    tempRegion := CreateRectRgnIndirect( aRect );
    { merge the region with the "summary" region we are building }
    if frmRegion = 0 then
      frmRegion := tempRegion
    else
    begin
      CombineRgn( frmRegion, frmRegion, tempRegion, RGN_OR );
      DeleteObject( tempRegion );
    end;
  end;
  { create a region for the caption and menu bar and add it to the summary }
  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;
Libros descargables La Cara Oculta de Delphi 4

No tengo ahora la dirección a mano, sino lo encuentras me lo comunicas.

Un Saludo.
Responder Con Cita
  #3  
Antiguo 31-05-2003
ChristianS ChristianS is offline
Miembro
 
Registrado: may 2003
Ubicación: uruguay
Posts: 12
Poder: 0
ChristianS Va por buen camino
EL codigo que me pasaste funciona,pero nome oculta la barra con los iconos de cerrar y minimizar. Incluso Poniendo el Borderstyle = none;

Alguna sugerencia?
Responder Con Cita
  #4  
Antiguo 01-06-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Es muy fácil anula la parte que pinta el caption.

Código:
procedure TForm1.Button1Click(Sender: TObject);
var
  frmRegion, tempRegion: HRGN;
  i: Integer;
  Arect: TRect;
begin
  frmRegion := 0;
  for I := 0 to ControlCount - 1 do begin
    { create a region for the control }
    aRect := Controls[i].BoundsRect;
    { coordinates have to be window-relative, not client area relative }
    OffsetRect( aRect, clientorigin.x - left, clientorigin.y - top );
    tempRegion := CreateRectRgnIndirect( aRect );
    { merge the region with the "summary" region we are building }
    if frmRegion = 0 then
      frmRegion := tempRegion
    else
    begin
      CombineRgn( frmRegion, frmRegion, tempRegion, RGN_OR );
      DeleteObject( tempRegion );
    end;
  end;

  SetWindowRgn( handle, frmRegion, true );
end;
Un Saludo.

Última edición por marcoszorrilla fecha: 01-06-2003 a las 10:49:13.
Responder Con Cita
  #5  
Antiguo 04-06-2003
ChristianS ChristianS is offline
Miembro
 
Registrado: may 2003
Ubicación: uruguay
Posts: 12
Poder: 0
ChristianS Va por buen camino
Que tal?
El procedimiento que me pasate funciona a la perfeccion.
Ahora... si en vez de quitar el form, simplemente lo quiero de color "transparente"...
En la ayuda de delphi 3 encontre lo siguiente...


procedure WMEraseBkgnd(var m: TWMEraseBkgnd); message WM_ERASEBKGND;

Muestra este cabezal de procedimiento el cual ponen bajos los "private".
Con esto queda el Form "transparente" cuando se ejecuta el programa (aunque en este procedimiento no haya codigo escrito)
La cosa es que no se como hacer para volver a invocar esto para qe me vuelta a borrar el form.

Bueno, espero que me hayan entendido.

SAlu2
ChristianS
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


La franja horaria es GMT +2. Ahora son las 08:35:23.


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