PDA

Ver la Versión Completa : Hacer un mapa con una cuadricula?


rauros
03-09-2008, 02:00:35
Saludos a todos. Necesito hacer un mapa como si fuera una cuadricula, tipo tengo un mapa de 20 cuadros por 20 y cuando pongo el puntero encima de cada uno me sale como un popup sepia diciendo fila,columna y clicando en el mapa mande algo tipo MapaClicado(Fila,Columna); y que todo el mapa en sí sea un bitmap. Gracias, cualquier anotación o pregunta se agradece.

coso
03-09-2008, 11:02:47
Hola,



procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
descripciones : array [0..10,0..10] of string;
i, j : integer;
begin
for i := 0 to 10 do
for j := 0 to 10 do
descripciones[i,j] := 'descripcion en (' + inttostr(i) + ', ' + inttostr(j) + ')';

showmessage(descripciones[X div 30, Y div 30]); // bitmap de 300x300, sectores de 30x30
end;

rauros
03-09-2008, 13:30:01
Vale, pero si en vez de un showmessage quiero una ventana como las que salen en las funciones/procedimientos al pasar el puntero por encima? Ya que con este sistema con tocar un poco la imagen ya está la ventana
molestando :D

coso
03-09-2008, 13:30:59
bueno...usa tu imaginacion :D:D puedes usar un static text, otro paintbox con la imagen ampliada, etc...

rauros
03-09-2008, 13:36:21
Ya pero por mucha imaginación que tenga, si hay un procedimiento de mostrar la ventana no lo voy a encontrar :( . Un ejemplo de la ventana esa que se muestra es poner el puntero por encima de los botones estos que hay aquí encima al postear un nuevo mensaje. Yo por mi haría el mío propio pero seguro que con ese procedimiento sería mucho más pequeña la aplicación. Es como si me creo un form nuevo cambiando el texto y haciéndolo más o menos grande cada mensaje etc... En vez de usar showmessage.

coso
03-09-2008, 13:39:23
prueba de hacer lo mismo en el onmousemove y en vez de un showmessage, un statictext, cambiando el top, left del static a mouse.x,mouse.y

coso
03-09-2008, 14:11:17
el showmessage es solo para que cojas la idea. si no la cojes :( tendras q remirar el codigo hasta entenderlo.

roman
03-09-2008, 15:24:26
quiero una ventana como las que salen en las funciones/procedimientos al pasar el puntero por encima?

A eso se le llama Hint y delphi cuenta con la clase THintWindow para ello. En el código de TComboHintsBox (http://romansg.net/index.php?pg=combohintsbox) puedes ver un ejemplo de uso. Básicamente céntrate en el método DisplayHint para ver cómo se muestra la ventanita.

// Saludos

rauros
04-09-2008, 14:03:32
@ Coso: Se como funciona lo que me has dado, solo que no se me ocurría la manera de hacerla.

@ Roman: Eso era lo que me faltaba para terminarlo. Dentro de poco pondré lo que he conseguido.

roman
04-09-2008, 16:23:53
Hay algo que no entiendo: ¿el mapa es una imagen que ya tienes hecha o se trata de que vas "dibujando" cuadritos, o vas poniendo marcas en la imagen o qué?

// Saludos