Seite 1 von 2

WebGadget table nowrap ellipsis

Verfasst: 03.01.2017 16:58
von marcelx
Hallo,

ich möchte in eine WebGadget eine HTML-Tabelle mit feste Spaltenbreite darstellen.
Der Text darf nur auf eine Zeile angezeigt werden (white-space: nowrap).
Wenn der Text zu lang ist, sollte gekappt werden (overflow: hidden; text-overflow: ellipsis;)

Leider funktioniert nicht so wie gewollt.
Wenn ich die Leerzeichen in der Datei mit z.B. _ ersetzt, funktioniert gut.
Mit "white-space: nowrap" müsste gehen.

Code: Alles auswählen

Enumeration
  #myWindow
EndEnumeration
Enumeration
  #myWebGadget
EndEnumeration

Procedure.s ReadHTML()
  fichier.s = OpenFileRequester("Please choose file to load", "c:\","*.*|*.*", 0)
  If ReadFile(0, fichier)  ; txt-file
    While Eof(0)=0
      Texte$ = Texte$+ReadString(0)+Chr(13)+Chr(10)
    Wend
    CloseFile(0)
  Else
    MessageRequester("Message", "Erreur", 0)
  EndIf
  ProcedureReturn Texte$
EndProcedure

OpenWindow(#myWindow, #PB_Any, #PB_Any, 800, 615, "")

WebGadget(#myWebGadget, 5, 35, 790, 250, "")

HTML.s = ReadHTML()

SetGadgetItemText(#myWebGadget, #PB_Web_HtmlCode, HTML)

Repeat
  EventW = WaitWindowEvent()
Until eventW = #PB_Event_CloseWindow
HTML-Datei:

Code: Alles auswählen

<html>
<head>
<title>test</title>
<style>
#col1 { width: 120px; }
#col2 { width: 150px; }

table, th, td {border: 1px solid black; }
table {border-collapse: collapse; white-space: nowrap; 
table-layout: fixed; border:1; width: 270px;}
th, td {overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}

</style>
</head>

<body>
<table>
  <col id="col1">
  <col id="col2">
  <thead>
    <tr>
      <th>1This cells has more content zz|</th>
      <th>column 2XXXzzzz fffddd|</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>1.1This cells has more content|</td>
      <td>1\2 qwert asdfg xcvb|</td>
    </tr>
  </tbody>
</table>
</body>
</html>

NACHTRAG:
Mit FF wird die HTML-Datei richtig dargestellt.
Liegt es an WebGadget ?

Danke
MarcelX

Re: WebGadget table nowrap ellipsis

Verfasst: 04.01.2017 14:43
von DarkSoul
Habe jetzt grad kein Windows parrat. Wird ein typisches IE-Problem sein...

Könntest versuchen, die Whitespaces durch "&nbsp;" zu ersetzen, so dass im Grunde ein einziges, ganz langes Wort entsteht. Der &nbsp; ist extra dafür gedacht. :allright:

Dann sollte der overflow:hidden im CSS für das Kappen sorgen. :)

Re: WebGadget table nowrap ellipsis

Verfasst: 04.01.2017 14:48
von marcelx
Danke DarkSoul,

so funktionniert mit &nbsp;

Super

Re: WebGadget table nowrap ellipsis

Verfasst: 04.01.2017 14:55
von udg
Deine HTML habe ich mit folgenden Browsern getestet:
Bild Bild Bild

Überall gleich, funktioniert.

Dein Code:
Bild

Geht.
Das Webgadget bedient sich dem InternetExplorer.

was geht bei dir nicht?

Re: WebGadget table nowrap ellipsis

Verfasst: 04.01.2017 15:03
von marcelx
was geht bei dir nicht?
wenn Leerzeichen oder z.B. \ vorkommt, wird alles auf mehrere Zeilen komplett dargestellt.

Ich verwende WebGadget für Druckvorschau mit WebObject\ExecWB(#OLECMDID_PRINTPREVIEW...
Window 7, IE 11

Re: WebGadget table nowrap ellipsis

Verfasst: 04.01.2017 22:06
von marcelx
Bei mir sieht es so aus:
Bild

Re: WebGadget table nowrap ellipsis

Verfasst: 05.01.2017 18:32
von udg
merkwürdig. bei mir gehts.
PB v5.30 = geht
PB v5.43 LTS = geht

Re: WebGadget table nowrap ellipsis

Verfasst: 05.01.2017 19:11
von TroaX
Es liegt an der Version des ActiveX-Controls.

Zur Demonstration: Ändere mal in deiner HTML folgende Zeile:

Code: Alles auswählen

<body>
zu:

Code: Alles auswählen

<body onload="alert(navigator.appName + navigator.appVersion)">
Dann teste das ganze noch einmal. Mei mir steht da:
Microsoft Internet Explorer4.0 (compatible; MSIE 7.0; Windows NT 6.2; Win64; x64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)
Und bei mir geht es ebenfalls nicht.

Wahrscheinlich haben die anderen in der Registry das ganze mal generell auf eine aktuelle Version gesetzt. Aber in der Version 4.0 ist white-space: nowrap; inkompatibel ;)

Also entweder &nbsp; setzen oder dem Programm eine aktuelle Steuerelementversion zuschieben: http://purebasic.fr/german/viewtopic.ph ... et+version

Re: WebGadget table nowrap ellipsis

Verfasst: 05.01.2017 20:53
von marcelx
Danke TroaX,

in der Tat, ich habe MS IE4.0 als Eintrag:
Bild

Gruß
MarcelX

Re: WebGadget table nowrap ellipsis

Verfasst: 05.01.2017 21:01
von marcelx
mit den Meta-Eintrag

Code: Alles auswählen

<meta http-equiv='X-UA-Compatible' content='IE=edge'>
funktionniert