lockUpdate

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

lockUpdate

Beitrag von andreas »

Hallo Leute,

benutzt jemand die Methode

Code: Alles auswählen

lockUpdate
, um Bildschirmausgabe zu sperren bzw. freizugeben.
Ich habe diese folgend eingebaut, damit nach dem Resize meines Fenster die Reste von XBPBrowse nicht überbleiben, aber es funktioniert irgendwie nicht.

Code: Alles auswählen

::resize := {|| ::lockUpdate(.t.), Resize( ::oBrowse, ::currentSize(), {584,308} ),::oBrowse:RefreshAll(), ::lockUpdate(.f.) }
Für alle Fälle die Resize-Function:

Code: Alles auswählen

Function Resize (oObject, aSize, aStartSize)

	IF oObject!=NIL .AND. aSize!=NIL   .AND. aStartSize!=NIL
		IF valtype(oObject)=="O" .AND. valtype(aSize)=="A"   .AND. valtype(aStartSize)=="A"

			oObject:setsize( {aSize[1]-(600-aStartSize[1]), aSize[2]-(400-aStartSize[2])} )

		else
			msgbox("Funktion RESIZE: Falscher Parametertyp.","Fehler")
		ENDIF
	else
		msgbox("Funktion RESIZE: fehlende Parameter.","Fehler")
	ENDIF
RETURN nil
Gruß,

Andreas
VIP der XUG Osnabrück
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16514
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Andreas,
ich nutze sie zwar nicht, aber müßten nicht Deine beiden letzten Anweisungen vertauscht werden?

Code: Alles auswählen

::resize := {|| ::lockUpdate(.t.), Resize( ::oBrowse, ::currentSize(), {584,308} ), ::lockUpdate(.f.), ::oBrowse:RefreshAll() }
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

Hallo Martin,

ich habe das auch schon ausprobiert, hat aber nichts gebracht.

Ich hatte schon mal früher es ihrgend wo mal eingebaut, wo es auch funktioniert hat, finde aber die Stelle nicht mehr.
Gruß,

Andreas
VIP der XUG Osnabrück
olaf870
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 128
Registriert: Mi, 26. Okt 2005 18:41
Wohnort: Berlin
Kontaktdaten:

Beitrag von olaf870 »

Hallo andreas,

lockupdate() nicht nötig, um von dem von Dir gewünschten resultat zukommen. Warum bei dir Reste übrig bleiben, ist auf den ersten Blick nicht erkennbar.
Mach doch aber mal ein self:invalidaterec() , dann müßte auf jeden Fall der Bildschirm sauber wieder aufgebaut werden.

Gruß
Olaf
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

Danke, das hat geholfen.
Ich habe es folgendermassen geändert:

Code: Alles auswählen

::resize := {|| Resize( ::oBrowse, ::currentSize(), {584,308} ),::oBrowse:RefreshAll(), ::invalidateRect() }
Gruß,

Andreas
VIP der XUG Osnabrück
Antworten