Einsteigerfragen zur PROFAN Programmierung
  Suchen
 Zurück zur Übersicht
 AutorThema: Neuzeichnen
John Schroeter
Datum:05.10.02 13:21 Antwortenals Email verschicken  


Jetzt mal eine simplere Frage von mir:
Ich habe vor mein Programm aus vielen Fenstern aufzubauen. Da gibt es dann natürlich das ewige Problem vom Neuzeichnen. Wie geht ihr dabei vor? Und gibt es eine Funktion, um zu erfahren, ob ein Fenster (teilweise) sichtbar ist? Die bräuchte man doch,
wenn ein Fenster von einem andern verdeckt wurde, nun zum Teil sichtbar ist, aber weder den Focus hat noch aktiv ist.

Mit freundlichen Grüßen,

John Schroeter


Martin Pohl
Datum:05.10.02 13:30 Antwortenals Email verschicken (martin_pohl@msn.com) 


Hallo, John!

Du kannst mal in der Hilfe nach SetAutoPaint schauen. Damit dürfte das Problem vom Neuzeichnen behoben sein.


John Schroeter
Datum:05.10.02 14:32 Antwortenals Email verschicken  


Danke erstmal für die Antwort. Leider hilft mir diese wenig weiter. Zwar kenne ich den SetAutoPaint-Befehl, allerdings weiß ich damit nicht viel anzufangen. Wenn ich mit @Create ein Fenster erstelle und es mit Starpaint/Endpaint zum Beispiel einfärbe, und es dann mit einem anderen Fenster verdecke, ist es hinterher grau. Egal welcher Parameter hinter SetAutoPaint steht. Also mache wohl etwas falsch. Deshalb würde mich interessieren, wie ihr das Problem angeht.

Danke im Voraus,

John Schroeter


Frank Abbing
Datum:05.10.02 15:17 Antwortenals Email verschicken  


Hallo,

nur das Hauptfenster wird restauriert.
Mit SetAutoPaint kann dieses Verhalten geändert werden, das betrifft aber immer nur das Hauptfenster. Alle anderen Fenster müßen selber restauriert werden.
Am besten geht's, wenn du immer eine Kopie des Fensters im Speicher hast, ob das Fenster dann restauriert werden muß, kannst du nur über die Usermessages erfahren.

Gruß, Frank


Horst Horn
Datum:06.10.02 00:31 Antwortenals Email verschicken (info@web-treffpunkt.de) 


Frank !!!
Bist Du schon so schlau in Punkto 'PROFAN', dass Du etwas aus der Profan-Hilfe vergessen hast :?
'%wmpaint
'startpaint
'endpaint
'================================
PROC Male Neu
STARTPAINT win01%
'Alle Grafikbefehle werden jetzt im Dialogfenster restauriert
ENDPAINT
ENDPROC
'~~~~~~~~~~~~~~~~~~~~~~~~
CLS
MaleNeu
While...
....
Waitinput
If %WMPAINT
MaleNeu 'oder wie die Prozedur heissen mag (auch mit Parametern)
EndIf
Case ScanKey(27):END 'muss ja nicht immer die Maus sein
Wend
CU
horst


Frank Abbing
Datum:06.10.02 00:38 Antwortenals Email verschicken  


Hallo Horst,

> STARTPAINT win01%
> 'Alle Grafikbefehle werden jetzt im Dialogfenster restauriert
> ENDPAINT

Bist du sicher ?
Du kannst jetzt in das Dialogfenster malen, klar.
Aber ob es sich auch automatisch restauriert ???
Ich meine, nein.
Allerdings arbeite ich kaum mit Dialogfenstern und für grafische Spielereien/Tricksereichen habe ich ja die ProSpeed.dll, die mir da weiterhilft.
Vielleicht kann Roland ein paar klärende Worte dazu sagen ?

Gruß, Frank



Frank Abbing
Datum:06.10.02 00:41 Antwortenals Email verschicken  


Nochmal ich.

Horst, Auszug aus der Profanhilfe:

Beim Zeichnen in DialogBoxen und DialogFenstern ist zu beachten, daß diese Zeichnungen nicht automatisch erneuert werden, wenn die Dialogbox z.B. durch ein anderes Fenster verdeckt wurde.

;-)

Gruß, Frank


Horst Horn
Datum:06.10.02 07:48 Antwortenals Email verschicken (info@web-treffpunkt.de) 


Hi Frank + John
Du hast die PROFAN-Hilfe schon richtig zitiert aber diese beiden Befehle gehören beim automatischen Neuzeichnen zwingend dazu:
SetAutopaint X%
%wmPaint
Vielleicht darunter mal in der Hilfe nachschauen ??? ;o) Bei mir und meinen Programmen klappt es jedenfalls. Auf der Homepage www.miet-infos.de sind zwei Downloads von mir, in denen jeweils mit Neuzeichnen in Dialogfenstern gearbeitet wird
Gruss
horst


Frank Abbing
Datum:06.10.02 10:18 Antwortenals Email verschicken  


Hallo Horst,

jetzt weiß ich, wie du's meinst.
Aber %WMPAINT ist doch auch eine Windows/Usermessage, nur füllt hier Profan diese Variable automatisch mit Werten.

Im allgemeinen nimmt Profan uns hier schon soviel Arbeit ab, bei anderen Programmiersprachen gestaltet sich die Fensterrestaurierung viel aufwendiger.

Gruß, Frank


Horst Horn
Datum:06.10.02 11:52 Antwortenals Email verschicken (info@web-treffpunkt.de) 


Hallo Frank
...jetzt bin ich aber 4 Zentner schwer geworden ;o)) !
Konnte ich Dir wirklich weiterhelfen ? (man, bin ich gut)
bis dann
horst


Frank Abbing
Datum: 06.10.02 13:38 Antwortenals Email verschicken  


Hi,

wir lernen doch alle immer noch gerne was dazu, oder ?

;-))

Over and out.


Martin Pohl
Datum:05.10.02 15:26 Antwortenals Email verschicken (martin_pohl@msn.com) 


Dann machst du eine Schleife:

While 1
WaitInput
If @Equ(%Key,2)
End
ElseIf @Equ(@GetActiveWindow(),Fenster2453%)
StartPaint Fenster2453%
...
EndPaint
EndIf
EndWhile


John Schroeter
Datum:05.10.02 15:54 Antwortenals Email verschicken  


Danke euch beiden.

Mit freundlichen Grüßen,

John Schroeter


 Zurück zur Übersicht
 

 Ein kostenloses WebMart Forum
WebMart Homepage Tools kostenlos
eBay