| |
|
|
GDL | Ciao,
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. KompilierenMarkierenSeparierendeclare 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 |
|
|
| |
|
|
|
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
|
|
|
| |
|
|
|
Dieter Zornow | Ohne Api kannst Du es auch so machen KompilierenMarkierenSeparierendeclare 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 |
|
|
| |
|
|
|
| Da ist nicht eigenartig - das Verhalten ist absolut korrekt und zeigt dass das Prinzip des Herummalens auf dem Parent von Controls naturalmente 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 circa 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). |
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
| Du sollst die Farbstatics auch nicht als Parent deklarieren sondern darunter legen / erstellen. Parent soll weiterhin das Window sein! |
|
|
| |
|
|
|
Dieter Zornow | Hallo Georg,
bei meinem Beispiel must du naturalmente 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 |
|
|
| |
|
|
|
| Du bekommst es nicht anders hin?
Was ist daran nicht-hinbekommbar erst ein Farbstatic zu erzeugen, und dann die Buttons? |
|
|
| |
|
|
|
GDL | @iF, das mit dem Static habe ich jetzt auch begriffen. Nur soetwas steht nicht in der Aiuto oder bei der SKControl Aiuto. Dies ist auch der Grund warum immer wieder nach einem XProfan Buch nachgefragt wird.
Ich habe mir damals ein GW-Basic Buch (721 Seiten per 68DM) gekauft. Allein die per 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 potuto. 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 |
|
|
| |
|
|
|
GDL | Schade ich kann nicht so schnell Tippen.Meine Antwort gehört vor deine. |
|
|
| |
|
|