Jump to content


Photo

obtener valor usable en delphi con un "onClick" HTML


  • Please log in to reply
2 replies to this topic

#1 Pratasvenska

Pratasvenska

    Member

  • Miembros
  • PipPip
  • 38 posts
  • LocationSuecia

Posted 03 October 2012 - 05:33 AM

Buen día,

Tengo un form donde he creado tablas HTML de la siguiente forma:
(usando los componentes Intraweb de atozed http://www.atozed.co...b/index.EN.aspx en caso de que alguien tenga experiencia con ellos)



delphi
  1. tblDel.Lines.Add('<table border="1" style="display:inline-block;vertical-align:top;">');
  2. del := qryPos.FieldByName('Del').AsString;
  3.       repeat
  4.       tblDel.Lines.Add(Format('<thead><th colspan="%d">%s</th></thead>',
  5.         [qryPos.FieldByName('DelKolumner').AsInteger,
  6.           qryPos.FieldByName('Del').AsString]));
  7. for row := 1 to qryPos.FieldByName('DelRader').AsInteger do
  8.         begin
  9.           tblDel.Lines.Add('<tr>');
  10.           for col := 1 to qryPos.FieldByName('DelKolumner').AsInteger do
  11.           begin
  12.           if PosExists(fRum, del, row, col) then
  13.               tblDel.Lines.Add(Format('<td style="font-weight:%s;color:%s">%s</td>', [
  14.                 iff(
  15.                   qryPos.FieldByName('AntalKistor').AsInteger +
  16.                   qryPos.FieldByName('AntalUrnor').AsInteger +
  17.                   qryPos.FieldByName('AntalOvriga').AsInteger > 0, 'bold', 'normal'),
  18.                 iff(
  19.                   (qryPos.FieldByName('AntalKistor').AsInteger > qryPos.FieldByName('DelMaxKistor').AsInteger) or
  20.                   (qryPos.FieldByName('AntalUrnor').AsInteger > qryPos.FieldByName('DelMaxUrnor').AsInteger), 'red', 'black'),
  21.               '<button> ' + qryPos.FieldByName('DelTyp').AsString + '</button>']))
  22.             else
  23.               tblDel.Lines.Add('<td>-</td>');
  24.           end;
  25.           tblDel.Lines.Add('</tr>');
  26.         end;
  27.         qryPos.Next;
  28.       until qryPos.Eof or (del <> qryPos.FieldByName('Del').AsString);
  29.     tblDel.Lines.Add('</table>');
  30.     until qryPos.Eof or (fRum <> qryPos.FieldByName('Rum').AsString);



No sé si el código sea sencillo de entender pero de cualquier forma lo que interesa es la línea numero 21, donde estoy colocando un botón dentro de cada celda. Mi pregunta es, es posible agregar un metodo Onclick para mediante éste obtener el numero de tabla (del), fila(row) y columna(col) en los que se encuentra el boton clicado, para despues almacenarlos en una variable delphi???

Como siempre, espero haberme dado a entender,
Saludos y Gracias.
  • 0

#2 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1092 posts
  • LocationMurcia, España

Posted 03 October 2012 - 11:47 AM

Tu código genera un fichero HTML que puedes guardar en una carpeta y abrir mañana, no hay forma de que cuando pulses ese botón nada llegue a delphi, porque no has programado un servidor web tipo apache, solo has creado un fichero de texto plano.

Para eso tendrías que crear un modulo de apache, o algo asi, o usar unigui o raudus (ambos tienen sección aquí en delphiaccess) que si que hacen exactamente este tipo de cosas.
  • 0

#3 gatosoft

gatosoft

    Member

  • Miembros
  • PipPip
  • 31 posts
  • LocationColombia

Posted 17 October 2012 - 06:43 PM

Creo que puedes hacerlo utilizando templates de intraweb...

1) Creas un procediemiento de tipo TNotifyEvent, asi:  Procedure MyOnClick(Sender:TObject);
2) En el evento OnCreate de tu formulario (TIWAppForm) creas dinámicamente los botones (De tipo TIWButton)
3) Asignas a cada boton (mientras los vas creando) el procedimiento MyOnclick al evento OnClick
4) Creas tu tabla HTML (con el codigo que expones) pero en lugar de crear botones HTML, utilizas las etiquetas que requeire intraweb para los templates, es decir...
<HTML>...<TR>...{%MyBoton1%}</TR><TR>...{%MyBoton2%}</TR><TR>...{%MyBoton3%}</TR>....</HTML>

No recuerdo bien, pero creo que el componente que debes utilizar es el IWLayoutManagerHTML....

Revisa la documentación de ATOZED sobre el uso de templates....

un saludo,





  • 0




IP.Board spam blocked by CleanTalk.