Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-09-2021
DaniMir DaniMir is offline
Registrado
 
Registrado: sep 2021
Posts: 6
Poder: 0
DaniMir Va por buen camino
Lightbulb Diagrama de sistema de agua de una casa

Hola buen día a todos, espero me puedan ayudar con lo siguiente:

Lo que me gustaría es encontrar el método para poder dibujar lo siguiente en este TImage:

Las fotos obviamente son imagenes que descargue de la red pero en lo que concierne a las lineas se deben pintar al dar Click en una area especifica del TImage en color naranja con un grosor de 6 pixeles, y lo mismo para la líneas negras. y quisiera ver la posibilidad de que fueran líneas rectas.

En cuanto a las imagenes deben también aparecer en el punto donde de click en el TImage y debejen poder rotar a un angulo que el usuario desee con un Edit

La malla como referencia tiene 20 pixeles (por lo que todo es a esa escala en teoría).

De momento quería implementar lo siguiente pero no se muy bien como:

Código Delphi [-]
type
TForm1 = class(TForm)
ScrollBar1: TScrollBar;
ScrollBar2: TScrollBar;
Image1: TImage;
Label1: TLabel;
 
 procedure Image1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type Tlinea = packed record // Es un registro
x1 : integer; //Uso de base de datos
y1 : integer;
x2 : integer;
y2 : integer;
 
 end;
type Tfigura = packed record // Es un registro
x1 : integer; //Esquina superior izq de la figura
y1 : integer;
angulo : integer;
nTubo : integer;
 
 end;
var
 
 Form1: TForm1;
Tubo : Array [1..100] of Tlinea;
Casa : Array[1..50] of Tfigura;
nTubo : Integer;
nCasa : Integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Image1Click(Sender: TObject);
var
K,I: Integer;
begin
Image1.Canvas.Pen.Color := RGB(147,212,255);
for I := 1 to 100 do
begin
image1.canvas.moveto(0,i*20);
image1.canvas.Lineto(2000,i*20);
Image1.canvas.MoveTo(i*20,0);
Image1.canvas.LineTo(i*20,2000);
end;
nTubo:=0;
nCasa:=0;
end;

Espero me puedan ayudar
Imágenes Adjuntas
Tipo de Archivo: jpg Panel1.jpg (17,6 KB, 8 visitas)
Tipo de Archivo: png Panel2.png (28,5 KB, 22 visitas)

Última edición por Casimiro Notevi fecha: 22-09-2021 a las 22:16:09.
Responder Con Cita
  #2  
Antiguo 23-09-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si no tienes limitación para usar componentes, te recomiendo utilizar TSimpleGraph de Delphi Area. Es gratuito y con código.
Yo lo he usado en varios proyectos y te puede facilitar mucho el trabajo.
Baja las demos, revísalas y a ver si te sirve para lo que necesitas.



Si no puedes usar componentes o no deseas usarlos, intenta concretar un poco más lo que necesitas o dividirlo en problemas más pequeños, porque tal como está planteado es muy genérico.

En este segundo caso, revisa estos links, sobre imágenes a ver si te son útiles:
https://neftali.clubdelphi.com/crear...-con-el-raton/
https://neftali.clubdelphi.com/ejemp...nos-y-figuras/
https://neftali.clubdelphi.com/crear...n-runtime-ide/
https://neftali.clubdelphi.com/selec...s-visualmente/
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 24-09-2021
DaniMir DaniMir is offline
Registrado
 
Registrado: sep 2021
Posts: 6
Poder: 0
DaniMir Va por buen camino
Bueno, más bien estaba intentando hacer algo así:

Código:
Image2.Canvas.Pen.Color := ClMaroon;
Image2.Canvas.Pen.Width := 6;
Image2.Canvas.MoveTo(x1,y1);
Image2.Canvas.LineTo(x2,y2);
Image2.Canvas.Pen.Color := ClBlack;
Image2.Canvas.Pen.Width := 1;
Con esto puedo sacar las líneas para los tubos

pero ocupe un TBitmap para tratar de llamar o colocar las imagenes mediante un TButton con:

Código:
var
Casa : TBitMap;

Image2.Canvas.Rectangle(x1,y1,x2,y2);
Casa := TBitMap.Create;
Casa.LoadFromFile('casa.bmp');
Y si me dibuja el rectangulo en cualquier posicion del plano pero no carga la imagen
Responder Con Cita
  #4  
Antiguo 05-10-2021
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Lo que pretendes es algo complejo, así que yo te recomiendo que te olvides del TImage y uses el proyecto sugerido por Neftali. Quizá parezca que tener que aprender a usarlo sea una pérdida de tiempo, pero seguro que te merecerá la pena.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Diagrama trex2000 MS SQL Server 1 12-09-2006 07:54:10
lectura medidor sistema distrib. de agua Gustavo Gowdak Varios 2 20-04-2006 20:58:49
lectura de medidor sistema distrib. de agua Gustavo Gowdak OOP 1 20-04-2006 20:53:18
Diagrama de tablas automatico marceloalegre Varios 3 18-07-2005 21:58:02
Diagrama de Barras Rabata Varios 1 15-09-2004 18:40:15


La franja horaria es GMT +2. Ahora son las 07:48:02.


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