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 23-09-2008
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 22
droguerman Va por buen camino
puedes asignar un mismo evento a todos los paneles y usar la propiedad tag para saber que panel fue el que pulsaste algo así:
Código Delphi [-]
procedure TPanel_Click(sender : TObject);
var
  nro : integer;
begin
  nro := TPanel(sender).tag;
end;
__________________
self.free;
Responder Con Cita
  #2  
Antiguo 23-09-2008
Avatar de DarkMan
DarkMan DarkMan is offline
Miembro
 
Registrado: jul 2006
Posts: 102
Poder: 21
DarkMan Va por buen camino
Puedes usar el parámetro sender para acceder al panel sobre el que se hace el click. Todos los paneles pueden tener asociado el mismo evento:
Código Delphi [-]
 
Procedure TPanelclick( Sender: TObject );
begin
 (Sender as TPanel).Caption := 'Seleccionado';
end;
__________________
"La recompensa de una buena acción está en haberla hecho"
Responder Con Cita
  #3  
Antiguo 24-09-2008
Nebli
 
Posts: n/a
Os agradezco a los dos vuestra ayuda, gracias a ello he podido continuar con lo que estoy programando.

Un saludo y muchas gracias de nuevo.
Responder Con Cita
  #4  
Antiguo 24-09-2008
Nebli
 
Posts: n/a
Lo que voy a hacer es lo siguiente:

// con esto se el nombre del Tpanel sobre el que se ha hecho click
textop := (Sender As Tpanel).Name;

Le quito al contenido de 'textop' la palabra 'Panel' ya que cada Tpanel se llama Panel1, Panel2, ect. con lo que sólo me quedará el número del Tpanel seleccionado, que irá desde el 1 al 120.

Una vez tengo el número del Tpanel selccionado, podré saber la columna y la fila en la que está en la ficha, ya que he puesto 12 Tpanel por fila y tengo 10 filas.

Gracias.

- por si hay curiosidad por saber de qué va la historia:
Hace varios años me propuse crear un programa para jugar a las 4 en raya contra el ordenador, con la salvedad de que el ordenador no sabrá casi nada cuando haga la primera partida y tendrá que ir aprendiendo conforme vaya juando. La idea creo que es demasiado ambiciosa, sobre todo porque no tengo tiempo ni de rascarme, pero me he propuesto los fines de semana dedicarle unas horas, y así hasta que lo termine. No tiene fecha de término de momento.
Responder Con Cita
  #5  
Antiguo 24-09-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Ya que te has explicado mejor, te recomiendo usar Frames, es como si crearas un panel pero con las propiedades que tu quieras, en este caso, puedes añadirle dos propiedades Fila y columna, de esa forma no tienes que hacer virguerías para averiguarlo, solo tienes que consultar esas 2 propiedades (que obviamente habrás asignado cuando creas el frame).

Como ejemplo didáctico, este calendario con frames dinámico

En lugar de 120 paneles, tendrás 120 frames.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 24-09-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
Cita:
Empezado por Nebli Ver Mensaje
Lo que voy a hacer es lo siguiente:

// con esto se el nombre del Tpanel sobre el que se ha hecho click
textop := (Sender As Tpanel).Name;

Le quito al contenido de 'textop' la palabra 'Panel' ya que cada Tpanel se llama Panel1, Panel2, ect. con lo que sólo me quedará el número del Tpanel seleccionado, que irá desde el 1 al 120.
¿para que tanto relajo con editar el nombre, quitarle el inicio, convertir el final a entero, etc, etc, cuando puedes utilizar la propiedad TAG como te recomendaron al principio?

Número := (Sender As Tpanel).Tag;
__________________

Responder Con Cita
  #7  
Antiguo 24-09-2008
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 835
Poder: 24
gatosoft Va camino a la fama
Hola a todos...

Estaba pensando que tan correcto era manejar 120 paneles o frames en una pantalla... es obvio que la situación amerita que existan, pero cual de los dos es mas eficiente en cuanto al manejo de memoria...

Podríamos decir que las maquinas de hoy lo aguantan todo... pero ese es un pensamiento muy "Gates"... Consumir todos los recursos porque para eso hay suficiente....

Que tal por ejemplo un TSahpe ? cual consume mas recursos? como medirlo?

Que tal una Grilla?

Por que 120 TButons? (jejejeje)

Que tal dibujar la cuadricula en el canvas del form y (con mas codigo) evaluar las posiciones del raton y sus eventos...?

Lo digo por que yo he tenido que enfrentar esta situacion mas de una vez y siempre me queda la inquietud de si he utilizado la mejor estrategia....

Por comodidad he termindao usando un TStringrid para manejar este tipo de situaciones (mientras se pueda)...

Saludos,
Responder Con Cita
  #8  
Antiguo 25-09-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
lo mismo dije una vez cuando alguien estaba utilizando creo eran 130 TEdits en un solo formulario... lo que dije fue: "Cuando utilizas más de 20 controles del mismo en un solo formulario, entonces tienes un problema muy grande de diseño..."

pero creo que mi comentario les molestó o algo, por eso ya no lo quise volver a decir...

en fin, 120 paneles para mi es un problema muy grande de diseño.
__________________

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
Simple: TPanel heredado que cambia de color con click. kwanbis Varios 8 26-09-2007 13:39:19
Saber cuando un Form hace un Paint José Luis Garcí OOP 13 17-09-2007 21:54:59
Como saber cuando BD fue desconectada? Luis Alberto Conexión con bases de datos 2 24-01-2006 11:16:46
Como Saber cuando Reinician la PC???? AGAG4 Varios 2 15-05-2005 08:07:31
Al dar doble click a mi aplicacion de delphi con paradox no hace nada gaescoto Tablas planas 3 23-05-2003 09:44:35


La franja horaria es GMT +2. Ahora son las 12:50:44.


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