Ir al contenido


Foto

obtener valor usable en delphi con un "onClick" HTML


  • Por favor identifícate para responder
2 respuestas en este tema

#1 Pratasvenska

Pratasvenska

    Member

  • Miembros
  • PipPip
  • 38 mensajes
  • LocationSuecia

Escrito 03 octubre 2012 - 05:33

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
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 03 octubre 2012 - 11:47

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 mensajes
  • LocationColombia

Escrito 17 octubre 2012 - 06:43

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.