Avatar billede janbb Juniormester
11. februar 2003 - 12:21 Der er 3 kommentarer og
1 løsning

webbroker-ting

Har fundet denne lille programstump som jeg prøver at tilpasse mine ønsker, men mine evner HTML/Delphi er måske for hobby-betonede
til at gennemskue hvordan jeg løser et foreløbigt 'lille' ønske på vejen mod mit mål.Koden:

  sl.add( format('<td><a href="http://%s">(*) </a></td>',[query1.fields[t].Displaytext]) );

der er den 13-ende-sidste linie indeholder som I ser en (*) der viser linket i tabellen og det fungerer osse - men der er jo ingen sjov ved en tabel med bare stjernereferencer til links - hvordan får jeg referencen til at blive vist sammen med linket ?.Det er vistnok et HTML-problem,
men der er jo kommet en masse delphi oveni - så jeg håber nogen forbarmer sig og gider læse 'tingen' igennem.


program scriptvejl3;

{$APPTYPE CONSOLE}

uses
  WebBroker,
  CGIApp,
  Unitvejl3 in 'Unitvejl3.pas' {WebModule1: TWebModule};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TWebModule1, WebModule1);
  Application.Run;
end.
unit Unitvejl3;

interface

uses
  Windows, Messages, SysUtils, Classes, HTTPApp, Db, DBTables;

type
  TWebModule1 = class(TWebModule)
    Database1: TDatabase;
    Table1: TTable;
    Query1: TQuery;
    DataSource1: TDataSource;
    Table1Titel: TStringField;
    Table1Emne: TStringField;
    Table1Evaluate: TStringField;
    Query1Titel: TStringField;
    Query1Emne: TStringField;
    Query1Evaluate: TStringField;
    procedure WebModule1WebActionItem1Action(Sender: TObject;
      Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  WebModule1: TWebModule1;

implementation

{$R *.DFM}

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
    sl:tstringlist;
  t:integer;
begin

    sl:=TStringList.Create;
  try

    Response.ContentType:='text/html';
    sl.add('<html><head></head><body><body bgcolor="#FF80c0"><CENTER>');
        sl.add( format('<h1>%s</h1>',[table1.tablename]));
    Table1.Open;
        sl.add( format('(%d records)',[table1.RecordCount]));
    sl.add('<p><table border="1">');
        sl.add('<tr>');
    for t:=0 to query1.Fields.Count -1 do
    begin
      sl.add( format('<th>%s</th>',[query1.fields[t].Displayname]) );
    end;

        While not query1.Eof do
    begin
            sl.add('<tr>');
      for t:=0 to query1.Fields.Count -1 do
      begin
          if query1.fields[t].IsNull
        then
            sl.add( format('<td>%s</td>',['<font color="silver" size="-2"><null></font>']) )
        else
            sl.add( format('<td><a href="http://%s">(*) </a></td>',[query1.fields[t].Displaytext]) );
      end;
            sl.add('<tr>');
      query1.Next;
    end;

    sl.add('</table>');
    sl.Add('</body></html>');
    response.content:=sl.Text;
    finally
      sl.Free;
  end;
  end;
  end.
Avatar billede stoney Nybegynder
11. februar 2003 - 12:33 #1
Skal du ikke bare erstatte (*) med dit feltnavn fra din database
[query1.fields[t].Displayname]) eller hvad det nu måtte være.

Stoney
Avatar billede angelod Novice
11. februar 2003 - 12:41 #2
Jeg mener det er noget i retning af dette:

sl.add( format('<td><a href="http://%s">%s </a></td>',[query1.fields[t].Displaytext, query1.fields[t].Displaytext]) );
Avatar billede janbb Juniormester
11. februar 2003 - 13:18 #3
angelod: Ja - tusind tak (havde næppe selv løst det); Problemet er at man ikke kan bruge %s to gange - men det kan man altså godt når man ref. til det 2 gange.Vældig dejligt.
Avatar billede angelod Novice
11. februar 2003 - 13:25 #4
Takker for point.

Ja den er lidt tricky, men det er et såkaldt 'Open array'. Jeg er ikke så god til at forklare det, men hvis du søger efter '[' (uden '' selvfølgelig) i Delphi Help, og tager det første, så skulle du få en liste, hvori du skulle kunne finde 'Open array constructors'. :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester