Problemas varios, creando núcleo programa cad Multiplataforma.
#1
Escrito 13 abril 2013 - 05:24
Lo que quiero hacer es crear un programa, que sirva de base a la hora de crear un programa CAD (Design Assisted Computer). Y como primera medida eh decido crear un programa que permita insertar un circulo en un panel, y al mismo poder mover lo, eliminarlo, hacerle zoom, etc. Este programa seria un diseñador de Grafos, pero la misma base se podría usar para un software de diseño de circuito electronicos, o porque no un diseñador de interfaz, en fin el limite seria la imaginación, pero el primer limite con el que me encuentro es en la implementación del núcleo.
Eh creado el siguiente programa que puede insertar nodo (circulitos) y se "puede" mover, cuando se mueve los circulo produce un error que no lo puedo sacar.
Le dejo el código fuente y le explico el erro que produce, digamos que se inserta un circulo en la coordenada (x=50, y = 50) y se lo mueve hacia la coordenada (x=70, y = 60) al soltar el mouse algunas veces funciona y otras el nodo aparece en la coordenada (x=20, y= 10) o sea la diferencia de origen y destino. Eh tratado de guarda las coordenadas iniciales en el evento ControlMouseDown y cosa por el estilo, desde ya aclaro que hago discreto el espacio para simplificar varias cosas después.
Le adjunto el codigo tiene el logo de delphi pero es codigo de lazarus.
Notas: Eh probrado componentes de Jedy, eh visto simplegrafph pero estoy interesado de que el software sea multiplaforma.
Scafandra se que esto para vos seria un lindo desafió.
Desde ya muchas gracias.
PD: Si no me explique bien cual es el problema que tengo, ejecute en el nodo.exe (windows, ya va salir la version linux) y inserten un nodo haciendo clic en Insertar->nodo y luego haciendo clic en el panel punteado, aparecera un circulo, luego hagan clic en insertar->mover y traten de mover el circulo.
#2
Escrito 13 abril 2013 - 08:43
#3
Escrito 14 abril 2013 - 07:24
Me gusta la idea de crear un programa así. Desde hace tiempo tengo la misma inquietud. Trataré de colaborar amigo
Muchas gracias por el interés Poliburro, creo que entre todos se podría avanzar rapidísimo en un software como este y seria de la comunidad.
Desde ya gracias.
#4
Escrito 14 abril 2013 - 08:26
Permite insertar, mover y re dimensionar usando el ratón
Archivos adjuntos
#5
Escrito 14 abril 2013 - 08:39
Nota: Eh visto mucho código en el foro, pero este no lo habia visto, me parece muy bueno lo que hiciste. Sobre todo la posibilidad de exportarlo a bmp. Eso esta genial.
#6
Escrito 14 abril 2013 - 08:57
property BoundsRect: TRect read FBoundsRect write FBoundsRect;
La cambie se seccion la pase de published a Public y de ahí anda de mil maravilla con la excepción de que el programa inicia con un fondo negro en vez de blanco.
#7
Escrito 14 abril 2013 - 04:15
... y de ahí anda de mil maravilla con la excepción de que el programa inicia con un fondo negro en vez de blanco.
Eso se arregla facil
procedure TfrmMain.Dibujar(Canvas: TCanvas; Width, Height: Integer); var i: Integer; Buffer: TBitmap; Figura: TFigura; begin Buffer:= TBitmap.Create; try Buffer.Canvas.Brush.Color:= Canvas.Brush.Color; Buffer.Width:= Width; Buffer.Height:= Height; Buffer.Canvas.FillRect(Buffer.Canvas.ClipRect); // < -- ANADE ESTA LINEA
#8
Escrito 14 abril 2013 - 10:51
Sin embargo seguí con mi código hasta que logre que ande. Ahora se puede mover los nodos y cambiarle de color, también llevarlo para atrás y adelante. Subo el código el próximo desafió es hacer una linea que una 2 nodos y que al moverla se sigan (ya poste esto antes pero con botones) sin embargo quiero ver si la linea sigue el camino discreto.
Subo el código, por si a alguien le interesa.
#9
Escrito 14 abril 2013 - 11:31
Saludos
#10
Escrito 17 abril 2013 - 11:30
Subo la versión 00005, me costo mucho hacer las lineas ya que no me daba cuenta de tomar el evento onmousedown del objeto (nodo) creado en tiempo de ejecución. En fin ya se puede crear una linea que una 2 nodos, ahora falta empezar a crear un registro que vaya guardando las conexiones y que al mover un nodo, se muevan todas las lineas que están conectadas.
#11
Escrito 01 mayo 2013 - 09:26
Muchas gracias por el apoyo, voy a tratar de definir en esta semana un listado de mejoras y en que consistirían cada versión.
#12
Escrito 02 mayo 2013 - 07:08
#13
Escrito 02 mayo 2013 - 07:14
........ disculpa por ocupar espacio en el servidor......
Aún tenemos unos cuantos megas disponibles amigo, no te preocupes
Y si se necesitan más pues saltamos al siguiente nivel de hospedaje
Saludos
#14
Escrito 06 mayo 2013 - 07:07
En realidad falta muchas cosas, para poder hacer un diseñador de grafo cometí un error fatal que fue que las lineas se unan de centro a centro, de esa manera no se puede hacer dos lineas distintas que unan los mismo nodos, eso debo cambiar, sin embargo el planteo actual me sirve de maravilla para hacer un diseñador de db o un programa de circuito eléctrico, que es a lo que quiero llegar.
Igual voy a ver de terminar este proyecto y crear un pagina para subirlo. Me sirve de antecedentes, creo que es mejor programar que hacer cursos, aprendo más así.
Con respecto al espacio en el server se puede ir borrando versiones anteriores, creo que se dejaria la 00001, 00005 y esta o la siguiente a esta.
#15
Escrito 06 mayo 2013 - 08:23
http://www.delphiacc...orum/downloads/
Saludos
#16
Escrito 03 junio 2013 - 01:48
#17
Escrito 25 junio 2013 - 12:16