Newsgroup: it.comp.java
Titolo: Controllo HTML... problemi!

Salve a tutto il ng,
Stň realizzando un browser personale.
Utilizzo visual j++ e per creare l'applicazione ho utilizzato il controllo
HTMLcontrol
In apparenza tutto funziona: il problema č che quando navigo all'interno
delle pagine sovente e volentieri l'applicazione si pianta e nel task
manager di windows mi da che non risponde: cosě sono obbligato ad
interrompere il debug e a riavviare.
A cosa č dovuto questo fatto?
Premetto che ci sono anche altri controlli tipo campi edit e button che
funzionano correttamente e non creano danni.
Il problema nasce solo quando navigo.
ovviamente ho creato un button "VAI" per caricare la pagina: ecco il codice:
 private void button1_click(Object source, Event e)
 {
  try {
  web.setURL (edit2.getText());
  }  catch (Exception j)
    {
   web.update();
  }
 }
"web" č il nome dell'HTML control che ho inserito.
Solitamente questo problema non mi spunta al caricamento della prima pagina
ma nella navigazione in quelle successive.
Grazie a tutti!
marco.

Non è facile capire i problemi che hai, senza vedere il codice e magari 
provarlo, ma ti volevo dire di stare attento ad usare Visual J++ perchè, se 
non ricordo male, è compatibile solo con le jdk 1.0 o 1.1.
-- 
Ciao by Siro            
^__^

Nella mia azienda usiamo piattaforma visual studio 6 enterprise e così l'ho
fatto in visual j++
Hai qualche suggerimento da darmi? voglio dire: come posso realizzare un
controllo che mi crei un browser personale compatibile con explorer?
il codice dell'applicazione cmq è questo:
import com.ms.wfc.app.*;
import com.ms.wfc.core.*;
import com.ms.wfc.ui.*;
import com.ms.wfc.html.*;
import java.sql.*;
/**
 * Questa classe può accettare un numero variabile di parametri sulla riga
 * di comando. L'esecuzione del programma inizia con il metodo main(). Il
costruttore
 * della classe non viene richiamato fino a quando un oggetto di tipo
"Form1"
 * non viene creato nel metodo main().
 */
public class Form1 extends Form
{
 public String trova(String stringa1,String stringa2,String origine,int
dal_punto)
 {
  String risultato;
  int dim_str1,dim_str2;
  dim_str1 = stringa1.length();
  dim_str2 = stringa2.length();
  int start_str1, start_str2;
  start_str1 = origine.indexOf(stringa1,dal_punto);
  start_str2 = origine.indexOf(stringa2,start_str1+dim_str1);
  if (start_str1 !=-1 && start_str2!=-1) {
  risultato = origine.substring(start_str1+dim_str1,start_str2);
  Integer num_inizio = new Integer(start_str1);
  edit5.setText(num_inizio.toString());
  return risultato;
  } else {
   return null;
  }
 }
 public Form1()
 {
  // Necessario per il supporto della finestra di progettazione form di
Visual J++
  initForm();
  // TODO: aggiungere il codice del costruttore dopo la chiamata di
initForm.
 }
 /**
  * Form1 esegue l'overriding di dispose e quindi può svuotare
  * l'elenco dei componenti.
  */
 public void dispose()
 {
  super.dispose();
  components.dispose();
 }
 private void button1_click(Object source, Event e)
 {
  try {
  web.setURL(edit2.getText());
  } catch (Exception o){
   edit5.setText("eccezione");
  }
 }
 private void button2_click(Object source, Event e)
 {
  DhDocument uno;
  uno = web.getDocument ();
  edit1.setText (uno.getHTML ());
 }
 private void button7_click(Object source, Event e)
 {
  int dal;
  String ed5;
  ed5 = edit5.getText();
  Integer conv = new Integer(ed5);
  conv.decode(ed5);
  dal = conv.intValue();
  String ris;
  ris = trova("miaparola","ok",edit1.getText(),dal+1);
  edit3.setText(ris);
 }
 private void web_documentReady(Object source, DocumentReadyEvent e)
 {
  edit5.setText(edit5.getText()+ "READY");
 }
 /**
  * NOTA: il seguente codice è richiesto dalla finestra di progettazione
form
  * di Visual J++. È possibile modificarlo con l'Editor di form.  Non
modificarlo
  * con l'Editor del codice.
  */
 Container components = new Container();
 HTMLControl web = new HTMLControl();
 Button button1 = new Button();
 Edit edit1 = new Edit();
 Edit edit2 = new Edit();
 Button button2 = new Button();
 Button button3 = new Button();
 Edit edit3 = new Edit();
 Edit edit4 = new Edit();
 Button button4 = new Button();
 Button CARICA = new Button();
 Button button5 = new Button();
 Edit edit5 = new Edit();
 Button button6 = new Button();
 Button button7 = new Button();
 Button button8 = new Button();
 private void initForm()
 {
  // NOTA: questo form contiene informazioni relative alle risorse in
  // un file esterno. Non modificare il parametro di tipo String delle
  // chiamate alla funzione resources.getObject(). Ad esempio, non
  // modificare"foo1_location" nella seguente riga di codice,
  // nemmeno se il nome dell'oggetto Foo viene modificato:
  //  foo1.setLocation((Point)resources.getObject("foo1_location"));
  IResourceManager resources = new ResourceManager(this, "Form1");
  this.setText("Form1");
  this.setAutoScaleBaseSize(new Point(5, 13));
  this.setClientSize(new Point(833, 715));
  components.add(web, "web");
  web.setLocation(new Point(16, 344));
  web.setSize(new Point(808, 360));
  web.setTabIndex(0);
  web.setTabStop(false);
  web.setOcxState((AxHost.State)resources.getObject("web_ocxState"));
  web.addOnDocumentReady(new
DocumentReadyEventHandler(this.web_documentReady));
  components.add(button1, "button1");
  button1.setLocation(new Point(432, 312));
  button1.setSize(new Point(112, 24));
  button1.setTabIndex(1);
  button1.setText("VAI");
  button1.addOnClick(new EventHandler(this.button1_click));
  components.add(edit1, "edit1");
  edit1.setLocation(new Point(16, 16));
  edit1.setSize(new Point(808, 224));
  edit1.setTabIndex(2);
  edit1.setText("edit1");
  edit1.setMultiline(true);
  edit1.setScrollBars(ScrollBars.BOTH);
  components.add(edit2, "edit2");
  edit2.setLocation(new Point(16, 312));
  edit2.setSize(new Point(384, 20));
  edit2.setTabIndex(3);
  edit2.setText("urldavisitare");
  components.add(button2, "button2");
  button2.setLocation(new Point(560, 312));
  button2.setSize(new Point(128, 24));
  button2.setTabIndex(4);
  button2.setText("HTML");
  button2.addOnClick(new EventHandler(this.button2_click));
  components.add(button3, "button3");
  button3.setLocation(new Point(704, 280));
  button3.setSize(new Point(112, 24));
  button3.setTabIndex(11);
  button3.setText("CARICA DATI");
  components.add(edit3, "edit3");
  edit3.setLocation(new Point(16, 264));
  edit3.setSize(new Point(184, 40));
  edit3.setTabIndex(5);
  edit3.setText("edit3");
  edit3.setMultiline(true);
  components.add(edit4, "edit4");
  edit4.setLocation(new Point(432, 248));
  edit4.setSize(new Point(112, 20));
  edit4.setTabIndex(6);
  edit4.setText("0");
  components.add(button4, "button4");
  button4.setLocation(new Point(432, 280));
  button4.setSize(new Point(112, 24));
  button4.setTabIndex(7);
  button4.setText("email");
  components.add(CARICA, "CARICA");
  CARICA.setLocation(new Point(704, 248));
  CARICA.setSize(new Point(112, 24));
  CARICA.setTabIndex(9);
  CARICA.setText("CARICA");
  components.add(button5, "button5");
  button5.setLocation(new Point(560, 280));
  button5.setSize(new Point(128, 24));
  button5.setTabIndex(8);
  button5.setText("http");
  components.add(edit5, "edit5");
  edit5.setLocation(new Point(216, 264));
  edit5.setSize(new Point(184, 40));
  edit5.setTabIndex(10);
  edit5.setText("edit5");
  edit5.setMultiline(true);
  components.add(button6, "button6");
  button6.setLocation(new Point(704, 312));
  button6.setSize(new Point(112, 24));
  button6.setTabIndex(12);
  button6.setText("CARICA ID");
  components.add(button7, "button7");
  button7.setLocation(new Point(560, 248));
  button7.setSize(new Point(128, 24));
  button7.setTabIndex(13);
  button7.setText("ID");
  button7.addOnClick(new EventHandler(this.button7_click));
  components.add(button8, "button8");
  button8.setLocation(new Point(664, 144));
  button8.setSize(new Point(144, 80));
  button8.setTabIndex(14);
  button8.setText("button8");
  this.setNewControls(new Control[] {
       button8,
       button7,
       button6,
       button3,
       edit5,
       CARICA,
       button5,
       button4,
       edit4,
       edit3,
       button2,
       edit2,
       edit1,
       button1,
       web});
  web.begin();
 }
 /**
  * Punto di ingresso principale per l'applicazione.
  *
  * @param args Matrice di parametri passata all'applicazione
  * tramite la riga di comando.
  */
 public static void main(String args[])
 {
  Application.run(new Form1());
 }
}

 
Non mi è chiaro cosa vuoi ottenere, tu vuoi creare un browser alternativo o 
che si interfacci con IE?
Forse vuoi creare un browser che interpreti le pag. come IE (ma devi vedere 
a quale ver. fare riferimento, IE4 è diverso da IE6).
Le classi che importa VJ++ (
com.ms
.) non fanno parte delle jdk e le trovi 
documentate nelle MSDN.
prova a partire da qui ed estendere la ricerca:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vjref98/html/package-com.ms.wfc.html.asp
Purtroppo non uso VJ++, ma NetBeans ( che ti consiglio per creare codice 
portabile ) quindi non posso verificare il tuo codice.
Se usi le Swing questo potrà esserti utile:
http://java.sun.com/products/jfc/tsc/articles/bookmarks/index.html


 a quale ver. fare riferimento, IE4 è diverso da IE6).
Io devo creare un browser che interpreti le pagine come IE facendo rif alla
versione 6
Verrà utilizzato internamente all'azienda: ad esso dovrò aggiungere alcune
funzioni particolari che mi sono state richieste.
Da cosa devo partire?
P.S. Grazie per gli aiuti!

Per ora ti do questi link:
http://www.netcluesoft.com/
http://www.netcluesoft.com/desktop/
Devo raccogliere altre info che ti posterò appena potrò.


Questo poi!
http://www.cs.cf.ac.uk/Dave/HCI/HCI_Handout_CALLER/node121.html
