Newsgroup: it.comp.lang.visual-basic
Titolo: [ADV] Flowchart editor

Ciao a tutti,
Faccio anch'io un po' di pubblicità :)
Dato che non riesco a trovare in rete un editor di flowchart che sia
semplice e funzionale ho deciso di farmene uno per conto mio.
Trovate la ver. beta qui: 
http://www.neodatatype.net/dump/Flowchart.zip
E' una completa riscrittura che ho fatto partendo da questo progetto di cui
ho mantenuto un paio di idee
http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeId=52489&ln
gWId=1
Non ho mantenuto il progetto originale perchè era incompleto e bacato.
Non che il mio sia completo e privo di bug, ma così riprogettato può essere
completato (il prog. originale aveva dei limiti intrinsec(h?)i).
Consiglio comunque di darci un occhio perchè per realizzarlo ho dovuto
implementare delle classi che potrebbero interessare a tutti:
- ArrayList, ne ho già parlato: implementazione dell'ArrayList di .Net
- ObjectArray, classe per semplificare la gestione di array dinamici.
                di controlli: con questa è possibile aggiungere e rinuovere
                elementi di un array di controlli come si farebbe con una
                normale Collection.
- znnShaper, controllo che simula gli "handler" di VB a design per i
controlli.
Ovviamente chiunque voglia aiutarmi a completare il progetto è il benvenuto
;)
Ciao
--
Math Parser : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

 ha scritto nel messaggio
news:j5blc.181386$rM4.7...@news4.tin.it...
carino, mi piace.
qualche problemino che ho trovato durante i primi minuti di utilizzo:
1) se scrollo usando le barre laterali, viene aggiornata la posizione degli
elementi che ho messo, ma non la selezione (i puntini, praticamente). Sto
provando a dargli un'occhiata, ma magari ci metti meno tu
2) gestisci anche gli eventi:
Private Sub HScroll1_Scroll()
HScroll1_Change
End Sub
Private Sub VScroll1_Scroll()
VScroll1_Change
End Sub
è più bello, aggiorna lo schermo anche durante il trascinamento.
3) all'inizio, con form vuoto, se clicco sulla freccia, mi dà giustamente un
messaggio di errore, ma poi c'è un errore di run-time (91, nel blocco
cmdFlowItem_Click, in fondo dove c'è l' If finale).
se vuoi ti do una mano, mi piace
:-))
good coding!!!
-- 
Alletun
Sorry, ask me if you want to get my e-mail!

 se vuoi ti do una mano, mi piace
Certo che sì!
Se vuoi ci sentiamo in privato che ti spiego la logica.
Lo scopo finale è quello di avere la possibilità di
- Stampare il grafico (non ho idea di come sia possibile farlo)
- Convertire il grafico in codice o (per ora) pseudo codice
Una grossa mancanza ora è il controllo delle freccie sui blocchi IF.
Ciao

 Una grossa mancanza ora è il controllo delle freccie sui blocchi IF.
mi sento più predisposto per l'interfaccia: multiselezione, clic
destro....però effettivamente anche la stampa e il codice sono belle
"missioni" da portare a termine....
provo a mandarti un'e-mail all'indirizzo, anche se preferirei qualcosa più
in tempo reale (icq o msn)


 intrinsec(h?)i).
-ci :-)
Bye, G.

Molto bello.
Bisognerebbe implementare la funzionalità per eliminare le frecce.
Se collego due elementi, infatti, non posso più eliminare il collegamento.
bye
-- 
Esistono 10 tipi di persone: chi conosce il binario e chi no.
Gestione Ottica - Gestionale per Ottici e Programmi Gratuiti su:
http://www.nicolaottomano.it

 collegamento.
mettendo un oggetto e poi cliccando sulla freccia ... e' un casino
annullarlo !
PS,: proporrei il metodo Autocad : tasto destro durante un operazione per
annullarla o per le opzioni.
-- 
<Gigio2K>
--- 
http://www.g2kweb.it/gigio2k
 ---
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/

[todo]
ridurre l'effetto sfarfallio mentre si ridimensiona un blocco
[bug]
i controlli con del testo dentro non sono facili da eliminare in quanto il
focus va sempre sul textbox, solo con un bel po di mosse di [tab] ci si
riesce (vedi proposta menu contestuale)
Se serve una manina per cazzeggiamenti e test son qui !
(CVS? MList ? )

 annullarlo !
Premi ESC :)
Ciao

 (CVS? MList ? )
Potrei provare a metterlo sotto HTMLSafe :P
Ciao

 non ora che sto lavorando.
Non so se funzionerebbe nei casi come questo: credo che .Parent 
restituisca il Form e non la Pictureox.
Un work-around potrebbe essere quello di assegnare anche il .Container 
anzichč il solo .Control.
Ciao

mi invii l'ultima release dei sorgenti?
dai, qualcosa faccio io....oggi gli do uno sguardo, ci lavoro un po' (prima
di farlo, ti scrivo per sapere cosa prevedo di toccare......ok?
good coding!!!
-- 
Alletun
"Se ti va di spassartela adesso
Prendi il Vettore oggi stesso."
Terre Desolate - Stephen King

 E' uno dei primi "TO-DO" da implementare (qualche volontario? :PPP)
Se non avessi gli esami in questi giorni lo farei io.
Al max posso darti una mano dopo il 10 Maggio.


 di farlo, ti scrivo per sapere cosa prevedo di toccare......ok?
E' quella presente nel link che ho indicato.
Fino a questa sera non mi è possibile uploadare modifiche (e anche 
stassera non è detto che ne farò ;))
In compenso per ora ho scritto il to-do che allego qui sotto
Seguirà un how-it-works
Ciao
-------
TO DO
-----
- Correzione dei bugs ;)
- Routine per la selezione e l'eliminazione delle freccie.
- Eliminazione della freccia in più all'eliminazione di un elemento.
- Gestione della doppia (o multipla) freccia per i casi IF.
- Gestione della textbox per il codice sui controlli FlowShape
     (attualmente è visibile solo la textbox dei commenti)
- Routine di stampa, con suddivisione in pagine, ecc.
- Routine per la conversione flowchart <--> pseudo codice.
Bug conosciuti
--------------
- Sintomo:
     Il ridimensionamento dei controlli ha un "effetto sfarfallio".
   Motivo:
     I controllo Flowchart accettano solo dimensioni con proporzione
     tra le dimensioni Width >= Height * 2, mentre lo shaper non ha vincoli.
   Soluzione:
     (?) Aggiungere al controllo FlowShape la proprietà MinWidth(height) 
che restituirà
     la larghezza minima per la data altezza.
     Il controllo znnShaper farà il RaiseEvent Resize *prima* di 
effettuare il
     ridimensionamento del controllo.
     In znnShape1_Resize impostare la proprietà
     znnShape1.MinWidth = FlowShape1(i).MinWidth(FlowShape1(i).Height)
- Sintomo:
     Premendo <DEL> per la cancellazione di un elemento, se il focus è 
su una
     textbox, il controllo selezionato non viene eliminato
   Motivo:
     La textbox ha la precedenza nella gestione dell'imput da tastiera.
   Soluzione:
     Modificare le modalità di eliminazione di un oggetto:
         - usare una diversa combinazione di tasti
         oppure
         - usare un menu contestuale.
Bug IDE conosciuti
------------------
- Sintomo:
     VB non può compilare Flowchart editor.
   Motivo:
     VB5 non supporta Usercontrol.ContainerHwnd.
   Soluzione
     Aggiungere proprietà Container a znnShaper e utilizzare questa
     anzichè ContainerHwnd.
     Sostituire anche Parent.Refresh con Container.Refresh.
--- EOF ---

"> Bug conosciuti
 --------------
- Sintomo:
        Il programma va in crash se si elimina un elemento collegato fra due
altri elementi.
        Esempio:      START--->ELEMENTO1---->ELEMENTO2
        Se elimino ELEMENTO1 mi da errore 340 la funzione "JoinItems"
    Motivo:
        Non viene aggiornata correttamente la matrice degli elementi
    Soluzione:
        Aggiornare la matrice degli elementi durante la cancellazione
 --- EOF ---


 benvenuto ;)
Save As, Annulla, Errore

 Potrei provare a metterlo sotto HTMLSafe :P
ghgh e' vero, scusami per non averlo nominato ! :p
PS: ricevuta la mia mail ?
-- 
-Gigio@Work(?)-

 PS: ricevuta la mia mail ?
Sì, gli ho dato un occhio, ma lo scopo di quel programma è completamente 
differente.
Inoltre usa un metodo piuttosto bizzarro per il disegno degli oggetti :)
Ciao