Deutsch
Forum

Autopaint mit cls eigenartiges Verhalten

 

GDL
Hallo,

versuche gerade mit einem farbigen Dialogfenster zu hantieren.Wenn ich autopaint benutze, muss ich immer das ganze Fenster zerstören , da bei CLS immer einige Controls verdeckt werden.

Nebenbei gibts noch Probleme, wenn das Dialogfenster noch ne Toolbar hat.
KompilierenMarkierenSeparieren
declare dlg&,toolbar&,button&
@Set(AutoPaint,1)
usermessages 16
window 0,0 - %maxx,%maxy
dlg&=create(window,%hwnd,,0,0,%maxx,%maxy)
farbe
sleep 1000
toolbar&=@Create(Toolbar,dlg&,0,0,1,0,0)
@Toolbar(AddTextButton,toolbar&,8,100,Sichern,Datei speichern)
@Toolbar(AddTextButton,toolbar&,7,200,hihi,Datei speichern)
button&=create(button,dlg&,bbb,100,400,100,30)

proc farbe

    startpaint dlg&
    cls RGB(144,80,0)
    endpaint

endproc

whilenot 0

    waitinput

    if %umessage = 16

        destroywindow(dlg&)
        end

    ELSEIF %wmPaint

        farbe

    endif

wend


Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
26.07.2007  
 




Thomas
Freier
habe 3 Zeilen eingefügt. Ist es das was du suchst?
KompilierenMarkierenSeparieren
 $H Windows.ph
declare dlg&,toolbar&,button&
@Set(AutoPaint,1)
usermessages 16
window 0,0 - %maxx,%maxy
dlg&=create(window,%hwnd,,0,0,%maxx-200,%maxy-200)
sleep 1000
toolbar&=@Create(Toolbar,dlg&,0,0,1,0,0)
@Toolbar(AddTextButton,toolbar&,8,100,Sichern,Datei speichern)
@Toolbar(AddTextButton,toolbar&,7,200,hihi,Datei speichern)
farbe
button&=create(button,dlg&,bbb,100,400,100,30)

proc farbe

    startpaint dlg&
    cls RGB(144,80,0)
    endpaint

endproc

whilenot 0

    ~InvalidateRect(dlg&, 0, 0)
    ~UpdateWindow(dlg&)
    waitinput

    if %umessage = 16

        destroywindow(dlg&)
        end

    ELSEIF %wmPaint

        farbe

    endif

wend

 
Gruß Thomas
Windows XP SP2, XProfan X2
26.07.2007  
 




Dieter
Zornow
Ohne Api kannst Du es auch so machen
KompilierenMarkierenSeparieren
declare dlg&,toolbar&,button&
@Set(AutoPaint,1)
usermessages 16
window 0,0 - %maxx,%maxy
dlg&=create(window,%hwnd,,0,0,%maxx,%maxy)
farbe
sleep 1000
toolbar&=@Create(Toolbar,dlg&,0,0,1,0,0)
@Toolbar(AddTextButton,toolbar&,8,100,Sichern,Datei speichern)
@Toolbar(AddTextButton,toolbar&,7,200,hihi,Datei speichern)
button&=create(button,dlg&,bbb,100,400,100,30)

proc farbe

    startpaint dlg&
    showwindow(Toolbar&,0)
    showwindow(button&,0)
    cls RGB(144,80,0)
    showwindow(Toolbar&,1)
    showwindow(button&,1)
    endpaint

endproc

whilenot 0

    waitinput

    if %umessage = 16

        destroywindow(dlg&)
        end

    ELSEIF %wmPaint

        farbe

    endif

wend


Viele Grüße aus Bangkok

Dieter
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
27.07.2007  
 




GDL
@Dieter,@Thomas

beide Versionen funktionieren teilweise.Es kommen in beiden beim Programmstart immer fehlerhafte(siehe Bild) Bildanzeigen und danach(nach Überdeckungen,Verkleinern und Vergrößern) sporadisch dieser Fehler vor.

zur Toolbar. Bei dieser ist das eigenartige Verhalten auch geblieben.

1. Klicke den hihi TButton an (im eigentlichen Programm passiert nichts)
2. Lasse die linke Maustaste los , bleibe aber auf dem hihi TButton. Jetzt wird wie von Geisterhand der erste TButton sichern gedrückt und bleibt solange gedrückt bis ich mit der Maus vom hihi TButton runterfahre.
3. Bleibe ich mit der Maus auf dem Hihi TButton und drücke ihn ein zweites Mal dann funktioniert der TButton (im eigendlichen Programm)

Dieses eigenartige Verhalten macht auch dieser kurze Beispielcode.

Servus
Georg

86 kB
Hochgeladen:27.07.2007
Ladeanzahl100
Herunterladen
 
Windows7 Xprofan 8,9,10 [...]  [...] 
27.07.2007  
 



Da ist nicht eigenartig - das Verhalten ist absolut korrekt und zeigt dass das Prinzip des Herummalens auf dem Parent von Controls natürlich zu Anzeigefehlern führt wenn man auch Bereiche übermalt welche von Windows selbst in verschiedenen Fällen neugezeichnet werden.

Was Ihr da macht ist eigentlich ne Sauerei. Ihr legt bildlich gesehen ein riesiges Blatt Papier über die Oberfläche eines Hochhauses und wundert Euch - das wenn jemand das Fenster öffnet - dass das Papier zerreist.

Man sollte wenn überhaupt nur Bereiche texturieren welche nicht schon mit Controls besetzt sind. Da muss man sich halt etwas einfallen lassen oder man überlässt diese Aufgabe dem Windows selbst! Mein Tip wäre das Erstellen eines farbigen Statics als Hintergrund (entweder einfarbig oder mit Bild verknüpft).
 
27.07.2007  
 




GDL
Auf einem Farbstatic aus der SKControl reagieren keine Buttons, weder mit clicked noch mit getfocus.Ich machte es bisher immer so, das ich vorhandene Controls beim Neustart zerstörte und dann Neuerstellte. Nur bei ca. 500 Controls dauert das halt immer.

Übrigens habe ich jetzt die Toolbar aus Winfellow übernommen. Diese geht auf dem Hwnd sowie auf dem Dialogfenster einwandfrei.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
27.07.2007  
 



Du sollst die Farbstatics auch nicht als Parent deklarieren sondern darunter legen / erstellen. Parent soll weiterhin das Window sein!
 
27.07.2007  
 




Dieter
Zornow
Hallo Georg,

bei meinem Beispiel must du natürlich die proc farbe nach dem Erstellen der Toolbar und des Buttons aufrufen, dann sollte es gehen. Habe ich übersehen, da ich deinen Code übernommen hatte.

Viele Grüße aus Bangkok

Dieter
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
27.07.2007  
 




GDL
Jo, habe ich gerade gemerkt und wenn ich die Procedure 3mal durchlaufen lasse gehts auch immer einwandfrei.Wennas auch ne Sauerei iss, hilfts mir nichts, ich bekomme es anders nicht hin.
Und nachdem auch die prfellow Toolbar in meinem eigentlichen Programm funzt bin ich wieder ganz happy. Danke nochmals allen.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
27.07.2007  
 



Du bekommst es nicht anders hin?

Was ist daran nicht-hinbekommbar erst ein Farbstatic zu erzeugen, und dann die Buttons?
 
27.07.2007  
 




GDL
@iF, das mit dem Static habe ich jetzt auch begriffen. Nur soetwas steht nicht in der Hilfe oder bei der SKControl Hilfe. Dies ist auch der Grund warum immer wieder nach einem XProfan Buch nachgefragt wird.

Ich habe mir damals ein GW-Basic Buch (721 Seiten für 68DM) gekauft. Allein die für mich wichtige Schnittstellenprogrammierung umfasst dort 23 Seiten.

Ich weiss auch das der Kosten/Nutzen Faktor bei XProfan nicht gerade super ist.Ich sage auch ehrlich, dass ich mir zurzeit keines kaufen könnte.
Ich wollte halt nur einen Grund dafür nennen, warum immer nach einem Buch gefragt wird.

Aber ich hoffe, dass ein GDL Querdenker euch nicht zu stark auf Trapp hält.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
27.07.2007  
 




GDL
Schade ich kann nicht so schnell Tippen.Meine Antwort gehört vor deine.
 
Windows7 Xprofan 8,9,10 [...]  [...] 
27.07.2007  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.075 Betrachtungen

Unbenanntvor 0 min.
Selmo24.03.2019
Ernst10.04.2014
Andreas Koch19.12.2011

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