Deutsch
Rokosofts Object Creator (ROC)

HTMLControl Bug?

 
- Seite 1 -



Hubert
Binnewies
Hallo Rolf..

Zum ersten, ich habe mich auf Deiner Empfehlung und Erklärungen hin nochmal mit Deinem Roc beschäftigt, und muss sagen: Entschuldigung, der ist wirklich um Längen besser als ich damals behauptet habe.

Aber:

Ich habe im ROC mir ein Hauptfenster erstellt das 2 Webelemente (Browser) enthält.
Der Roc erzeugte mir unter anderem folgende Zeilen:
DECLARE WEBDLL&,HTML$
WEBDLL&=USEDLL(D:PROGRAMMEXPROFAN9LIBATL.DLL)
DEF ATLAXWININIT(0) !D:PROGRAMMEXPROFAN9LIBATL.DLL,AtlAxWinInit
ATLAXWININIT()
CREATEOBJECT %HWND,AtlAxWin,D:PROGRAMMEXPROFAN9LIBVORLAGE.HTM,0025,0190,0450,0450,$50300105,$200
LET WEBCONTROL1&=@&(0)
CREATEOBJECT %HWND,AtlAxWin,D:PROGRAMMEXPROFAN9LIBVORLAGE.HTM,0510,0190,0250,0450,$50300105,$200
LET WEBCONTROL2&=@&(0)

und beim beenden:
FREEDLL WEBDLL&

dabei habe ich beim beenden einen Anwendungsfehler erhalten.
Es hat ne Weile gedauert, aber ich habs rausgefunden warum:
Der ROC sollte beim Beenden noch folgende Zeilen einfügen (dann klappt es):
@DESTROYWINDOW(WebCONTROL1&)
@DESTROYWINDOW(WebCONTROL2&)

Dann noch eine Frage:
Wie bekomme ich das Webcontrol dazu den Inhalt neu zu laden?
Das ist für meinen Programmablauf nötig.

Hubert
 
WinXP Prof, XProfan 9.1 Newbie

Ein kluger Kopf sagte mal:
"Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!"
05.09.2006  
 



 
- Seite 1 -



Hubert
Binnewies
dann flackert aber kurz das fenster...sieht unschön aus...

wenns nicht anders geht mach ich es so......
wäre mir aber lieber mit nem neuladen...
 
WinXP Prof, XProfan 9.1 Newbie

Ein kluger Kopf sagte mal:
"Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!"
05.09.2006  
 



Ich glaube hier  [...]  wirst Du fündig - wenn Du die Lösung extrahiert hast wäre ich hier für ein Posting dankbar.
 
05.09.2006  
 




Jörg
Sellmeyer
Def LockWindowUpdate(1) !USER32,LockWindowUpdate
Hilft Dir da weiter.
LockWindowUpdate(%hwnd)
jetzt Control neuerstellen
LockWindowUpdate(0)
und weiter gehts
Alternativ mit LockWindowUpdate(Webcontrol1&) probieren.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
05.09.2006  
 




Rolf
Koch
Sorry, grad von der Arbeit gekommen
Stimmt, komischerweise ist das mit dem Destrowindow aufeinmal so, denn damals bei der Entwicklung nicht. Aber (oje) wieder was neues für ROC

Der Rest haben die anderen schon beantwortet.

Freut mich, dass der bei einigen als PillePalle abgestuften ROC (vielleicht nur weil er in Profan geschrieben ist) Dir nun doch zusagt. Wenn ich nicht aus vielen Mails wüsste, dass es doch eine Anhängerschaft gäbe, würde ich mir auch nicht soviel Arbeit machen
 
05.09.2006  
 




Rolf
Koch
Ok in der Arbeitsversion werden alle Webcontrols am Schluss jetzt zerstört.
 
05.09.2006  
 




Hubert
Binnewies
Jörg Sellmeyer
Def LockWindowUpdate(1) !USER32,LockWindowUpdate
Hilft Dir da weiter.
LockWindowUpdate(%hwnd)
jetzt Control neuerstellen
LockWindowUpdate(0)
und weiter gehts
Alternativ mit LockWindowUpdate(Webcontrol1&) probieren.


Ich habs rauf und runter versucht.....
Ich denke dass das hier nur dazu gedacht ist das Fenster oder den Control neu zu zeichnen.
Aber nicht um dessen Inhalt neu zu laden.

Aber genau das Funktioniert auch nicht (zumindest nicht richtig)

Ich habe mit dem HTML Control momentan 2 Probleme.
1.) Folgende Konstellation:
Ich habe ein Hauptfenster (Bildschirmfüllend ohne Titel und Menüzeile, so groß das auch die Windowsleiste unten abgedeckt ist, Das Proggi soll den Rechner auf eine Funktion festnageln, weil anschliessend der Rechner nur zu dem Zweck, dieses Proggi auszuführen verkauft wird.) in dem mittels LoadBMP eine Hintergrundgrafik geladen wird.
Darauf sind derzeit 2 Color Static Transparent, dessen Text ich Zentriert habe (mittels SKControl.dll), 12 Buttons und 2 HTML Controls.
Bei einem bestimmten Button öffnet sich ein Dialog, in dem Werte eingegeben werden, die ich überprüfe.
Hat der Nutzer einen Fehler bei der Eingabe gemacht kommt darauf noch eine AlertBox.
Klickt nun der Nutzer auf OK, verschwindet die AlertBox und (nun kommt es) auch der unverdeckte Inhalt der HTMLControls.
Es wird nur noch das Hintergrundbild in den HTMLControls angezeigt.
Verwende ich nun das oben genannte LockWindowUpdate wird der Inhalt nur neu gezeichnet wenn ich meine Dialogbox bewege und die Maustaste loslasse.
Das ist nicht akzeptabel.

2.)Auf dem Rechner läuft als Dienst auch der Xampp (ein apache 2.0.2 Server) und MySQL.
Auf dem Rechner befinden sich Teile einer Webseite die mittels DynDNS in einer Seite auf meinem Webspace aufgerufen werden.
Diese Teile bestehen hauptsächlich aus PHP Scripte die auf die Eingaben des externen Nutzers reagieren.
Womit dessen Inhalte unterschiedlich sind.
Nun Fungiert mein Proggi als Anzeige dessen was der Externe Nutzer auf der Seite macht, Womit die Inhalte in den HTML Controls variieren.
Somit brauche ich eine Möglichkeit dessen Inhalt neu zu laden, und zwar ohne Klick auf einen Link.
Mir wäre auch eine Lösung recht über der ich erst (zum Beispiel mittels der ONL.DLL) die Seite in einen String lade und dem Control übergebe.
Nur das ReCreate der HTML Controls habe ich versucht, Das Flackern der Controls ist mehr als grausam und kann ich keinem Kunden zumuten.

Ich hoffe es hat da einer ein paar Lösungen für mich.

Vielen Dank schonmal im voraus.

Hubert
 
WinXP Prof, XProfan 9.1 Newbie

Ein kluger Kopf sagte mal:
"Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!"
07.09.2006  
 




Jörg
Sellmeyer
Hallo Hubert,
LockWindowUpdate ist dazu da, das Neuzeichnen eines Controls oder Fensters zu unterbinden!
Ich nutze es z.B. dann, wenn ich eine Listbox mit viel Inhalt füllen will.
Normalerweise wird jeder neue Eintrag sichtbar in die Liste eingetragen (auch wenn er hinten angehängtwird wird dafür das Control von Windows aktualisiert).
Das kostet Zeit. Wenn man vorher und hinterher LockWindowUpdate aufruft, bleibt die Listbox unberührt und erst bei abgeschlossenen Aktion wird das Control neu gezeichnet. Dafür evtl. einfach noch ein repaint anhängen.
Geht wesentlich schneller und könnte bei Deinem Html-Control das Flackern unterbinden.

Gruß
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
07.09.2006  
 




Frank
Abbing
Ich kenne noch eine weitere Möglichkeit. Die Message WM_SETREDRAW verhindert das Neuzeichnen eines Controls:
SendMessage(handle&,11,0,0)

Und damit schaltest du das Neuzeichnen wieder ein:
SendMessage(handle&,11,1,0)

Eventuell benötigt das Control hinterher eine WM_PAINT-Message, bzw. Repaint.
 
07.09.2006  
 



Franks Variante ist IMHO deutlich besser da lockwindowupdate  jederzeit von einem anderen Prozess beendet werden könnte - z.B. wenn man ein Fenster verschiebt.
 
07.09.2006  
 




Hubert
Binnewies
Hallo..

Also in dem Punkt Neuzeichen sperren hab ich es aufgegeben.
Ich konnte das Neuzeichnen erfolgreich sperren, das Blöde ist nur, wenn jetzt der Nutzer auf die wirklich dumme Idee kommt den Dialog oder die Alertbox zu verschieben....
Sieht echt grausam aus...

Die einzige Lösung ist: auf Alertboxen zu verzichten wenn man HTML Controls verwendet und einfach eigene Meldungsboxen unter XProfan zu erstellen.
Dann gibt es keine Probleme.
Und ich hab da ne schöne entworfen mit Blinkschrift (mit SKControl.DLL , die gefällt mir immer besser).

Bleibt nur noch das neuladen des Inhaltes des HTML Controls...

Hat da einer ne Idee (ohne ReCreate) ??

Hubert
 
WinXP Prof, XProfan 9.1 Newbie

Ein kluger Kopf sagte mal:
"Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!"
08.09.2006  
 



 
- Seite 2 -



Jörg
Sellmeyer
Zum Neuladen habe ich auch keine Idee aber vielleicht kannst Du den Inhalt erst in ein unsichtbares Control aden:
KompilierenMarkierenSeparieren
Createobject %Hwnd,AtlAxWin,D:PROGRAMMEXPROFAN9LIBVORLAGE.HTM,0025,0190,0,0,$50300105,$200
Let Webcontrol1&=@&(0)
SetWindowPos Webcontrol1&= 25,190 - 450,450;0
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
08.09.2006  
 




Rolf
Koch
Nicht probiert, aber vielleicht hilft auch ein:
showwindow(webcontrol1&,0)
showwindow(webcontrol1&,1)
 
08.09.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

12.292 Betrachtungen

Unbenanntvor 0 min.
Peter Max Müller18.11.2017
H.Brill29.12.2015
Michaeal14.10.2013
Stephan Sonneborn01.03.2013
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie