Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-05-2011
FENIXadr FENIXadr is offline
Miembro
 
Registrado: may 2010
Ubicación: Córdoba - Cba. - Argentina
Posts: 104
Poder: 17
FENIXadr Va por buen camino
ok.. gracias...

pregunto... si yo tengo asignado en el evento OnClick de un TTreeView un procedimiento del Form1 (definido por el usuario) y en tiempo de ejecucion cambio este procedimiento (en el constructor del componente), como hago para no perder el anterior?? o sea yo quiero recalcular las carpetas al presionar el boton sobre el TTreeView pero quiero que el usuario no pierda el procedimiento que definió en el IDE.. me explico??...

he probado definiendo una variable del tipo procedure pero cuando la llamo me da una excepción.. seguramente le asigno mal la direccion de memoria..

desde ya muchas gracias

(perdón si no está totalmente dentro del hilo la pregunta...)
Responder Con Cita
  #2  
Antiguo 09-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
(perdón si no está totalmente dentro del hilo la pregunta...)
En realidad lo que corresponde es que habras un nuevo hilo para una nueva pregunta, está claramente expuesto en el punto 8 de la guía de estilo .



No entiendo muy bién la situación, pero una posible solución es crear una variable privada al form de tipo TNotifyEvent, a la que asígnes el evento que querés recuperar luego, asignes el nuevo envento y luego al salir del form lo restaures:
Código Delphi [-]
...
type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    procedure FormShow(Sender: TObject);
    procedure TreeView1Click(Sender: TObject);
  private
    FNotifyEvent: TNotifyEvent;
  public
  end;
...
implementation
...
procedure TForm1.FormShow(Sender: TObject);
begin
  FNotifyEvent:= TreeView1Click;  // guarda el evento
end;

procedure TForm1.TreeView1Click(Sender: TObject);
begin
   // Evento definido en el form
end;

...
// Creación del objeto que cambia el evento
...

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  TreeView1.OnClick:= FNotifyEvent; // restaura el evento
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 09-05-2011 a las 13:59:27.
Responder Con Cita
  #3  
Antiguo 09-05-2011
FENIXadr FENIXadr is offline
Miembro
 
Registrado: may 2010
Ubicación: Córdoba - Cba. - Argentina
Posts: 104
Poder: 17
FENIXadr Va por buen camino
sisisisi.. mil disculps por lo del nuevo hilo... supuse que la respuesta era rapida y por eso lo pregunté... se que no es lo debido.. mil disculpas...

Con respecto a la respuesta.. está clarísimo.. yo definía una variable como procedure por eso me daba error .. tenía que definirla comoTNotifyEvent.. ahora si funciona...
Cuando se hace click en el TreeView para cambiar de carpeta, primero se actualiza y después llama al evento OnClick que definió el usuario... (en este caso es para mostrar la ruta completa en un TLabel.)

Muchísimas gracias...

PD: se que existe el componente ShellTreeView que hace todo esto y mejor que yo.. pero necesito hacerlo de esata manera en este caso...

saludos..
Responder Con Cita
  #4  
Antiguo 28-06-2011
Avatar de Chichero
Chichero Chichero is offline
Miembro
 
Registrado: dic 2007
Ubicación: Venezuela
Posts: 22
Poder: 0
Chichero Va por buen camino
CASE de "tal" strings en combobox da ciertas varibles reales

Mi problema es que no he visto soluciones para casos de strings en combobox...Tengo varias ciudades las cuales tienen valores diferentes para unas variables, ejemplo:

Caracas A=20, B=25, C=38

Valencia A=39, B=50, C=60

Maracaibo A=42, B= 28, C=55

que con esas variables luego hare ciertas operaciones y presentare resultados, se que debo trabajar con la selectiva multiple CASE y bueno creo que debo definir una variable string que proceda de la opcion seleccionada en el combobox...quisiera que me ayudaran con la codificacion; más o menos esquematizando lo que quiero y la codificación que hize (pero el programa no corre, no sé cuál es el error:
Código Delphi [-]
procedure

TForm1.BitBtn1Click(Sender:TObject);

Var A,B,C:real;
City:String

begin
City:=String(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
CASE City OF
'Caracas': A:=20;
B:=25;
C:=38;
'Valencia': A:=39;
B:=50;
C:=60;
'Maracaibo': A:=42;
B:=28;
C:=55;
ELSE
Showmessage('No Seleccionó Ciudad');
end;
.
.Hago las lineas de operaciones
.

end;

Última edición por ecfisa fecha: 28-06-2011 a las 15:43:42. Razón: ETIQUETAS [DELPHI] [/DELPHI]
Responder Con Cita
  #5  
Antiguo 28-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Chichero.

Por favor abrí un nuevo tema para esta pregunta y cuando lo hagas utiliza las etiquetas [delphi] [/delphi] para encerrar el código Delphi que incluyas.
Te aconsejo también leer la guía de estilo .

Saludos y gracias por tu colaboración.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 06-02-2014
Avatar de cl2raul
cl2raul cl2raul is offline
Miembro
 
Registrado: sep 2008
Ubicación: La Habana, Cuba
Posts: 88
Poder: 18
cl2raul Va por buen camino
hola este componente lo estoy usando para cargar las nacionalidades en mi programa, pero antes lo hacia manual...
les explico utilizaba un TImageList donde se alojaba todas las banderas del mundo desde una carpeta y al itemsEx agregaba cada país según su bandera y todo ok...
pero migre muchas cosas a SQLite, para que sea menos pesado y me sirva para futuros proyectos...

mi pregunta es como asigno el nombre del pais y la bandera al TComboBoxEx.
Responder Con Cita
  #7  
Antiguo 07-02-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola cl2raul.

Si las imágenes guardadas en tu base de datos son de tipo Windows bitmap podes hacer:
Código Delphi [-]
...

procedure ResizeBitmap(Bitmap: TBitmap; Width, Height: Integer; Background: TColor);
var
  R: TRect;
  B: TBitmap;
  X, Y: Integer;
begin
  if assigned(Bitmap) then
  begin
    B:= TBitmap.Create;
    try
      if Bitmap.Width > Bitmap.Height then
      begin
        R.Right:= Width;
        R.Bottom:= ((Width * Bitmap.Height) div Bitmap.Width);
        X:= 0;
        Y:= (Height div 2) - (R.Bottom div 2);
      end
      else
      begin
        R.Right:= ((Height * Bitmap.Width) div Bitmap.Height);
        R.Bottom:= Height;
        X:= (Width div 2) - (R.Right div 2);
        Y:= 0;
      end;
      R.Left:= 0;
      R.Top:= 0;
      B.PixelFormat:= Bitmap.PixelFormat;
      B.Width:= Width;
      B.Height:= Height;
      B.Canvas.Brush.Color:= Background;
      B.Canvas.FillRect(B.Canvas.ClipRect);
      B.Canvas.StretchDraw(R, Bitmap);
      Bitmap.Width:= Width;
      Bitmap.Height:= Height;
      Bitmap.Canvas.Brush.Color:= Background;
      Bitmap.Canvas.FillRect(Bitmap.Canvas.ClipRect);
      Bitmap.Canvas.Draw(X, Y, B);
    finally
      B.Free;
    end;
  end;
end;

// Agregar imágenes a ImageList e incorporarlas al ComboBoxEx
procedure TForm1.FormCreate(Sender: TObject);
const
   IMG_X = 64;
   IMG_Y = 32;
var
  BM: TBitmap;
  cc: Integer;
begin
  ImageList1.Width := IMG_X;
  ImageList1.Height:= IMG_Y;
  cc:= 0;
  while not DataSet.Eof do
  begin
    BM:= TBitmap.Create;
    try
      BM.Assign(DataSet.FieldByName('CAMPO_IMAGEN')); 
      ResizeBitmap(BM, IMG_X, IMG_Y, clBtnFace);
      ImageList1.Add(BM, nil);
    finally
      BM.Free;
    end;
    ComboBoxEx1.ItemsEx.AddItem(DataSet.FieldByName('CAMPO_STRING').AsString,cc,0,0,0,nil);
    DataSet.Next;
    Inc(cc);
  end;
  ComboBoxEx1.Images:= ImageList1;
  ComboBoxEx1.ItemIndex := 0;
end;
Si guardaste las imágenes en un tamaño adecuado para ser mostradas en el combo, podes prescindir de la función ResizeBitmap.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
imagelist con Timage??? manueles OOP 3 28-02-2012 13:58:14
Abrir un ComboBoxEx automáticamente afxe Gráficos 4 03-03-2010 20:59:04
Ayuda ComboBoxEx Ge0Ks C++ Builder 11 27-02-2007 05:13:46
Gif con imagelist Ivan_25 .NET 0 24-10-2006 12:44:44
jpg con ImageList??? Patricio Varios 3 06-02-2006 16:51:27


La franja horaria es GMT +2. Ahora son las 12:18:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi