Autor Beitrag
reallyOne
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 26

WinXP Pro
D7 Prof
BeitragVerfasst: Di 16.09.03 22:42 
Hallo Leute, ich bin gerade dabei ein Paint-Klon als ActiveX für einen bestimmten Dienst auf meiner HP am schreiben, jedoch hab ich Probleme mit dem Implementieren der Füllmethode.

Also: Wenn ich als FillStyle fsBorder benutze, wird mein ganzer Canvas weiß (sollte in Rot füllen)
und bei fsSurface passiert überhaupt nix.

Gibts da ne Alternative oder ne Idee?
Wäre sehr dankbar.


PS: Dieses Prob hatte ich auch mit FloodFill, bekomm ich jetzt aber seltsamer Weise nicht mehr. (hab nix am Code geändert):
Manchmal schmiert das ActiveX ab, sobald ich Floodfill benutze, ein paar sek vorher hats funktioniert, dann code wiederhergestellt und funzt immer noch nicht, aber ich denke, das hängt mit dem Registieren des ActiveX zusammen. Achja, wenn ich das FloodFill in try except einbinde gehts, aber bekomme auch keine exception.

_________________
*aus rechtlichen Gründen distanziere ich mich hiermit von dem Inhalt dieses Postings :-) *
Frase
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 17

Win 98 SE, SuSE 8.2 Prof
D5 Prof, D6 Ente, Kylix
BeitragVerfasst: Mi 24.09.03 18:00 
Ah ja...
Floodfill...

Das ganze ist etwas komplex, aber es ist machbar:

Zuerst eine Farbe festlegen, mit der du etwas füllen willst:

canvas.brush.color := clred; //Zum Beispiel

Ich weiß nicht mehr, ob es brush.color oder pen.color war. Ausprobieren.

Canvas.floodfill(X,Y,COLOR,STYLE); //So, oder so ähnlich schaut die Procedur aus.

Die ersten 2 Parameter dürften klar sein. Sie stellen klar, wo der Farbeimer ansetzen soll.
Der nächste Parameter ist interesant.
Er ist NICHT die Farbe, mit der gefüllt werden soll, sondern (je nach STYLE) die Farbe, bei der mit dem Füllen aufgehört werden soll, oder die Farbe, bei der gefüllt werden soll.

Im Klartext heißt das folgendes:

Wir haben ein Viereck mit einem Blauen Rahmen (clblue). Im Viereck ist es Gelb (clyellow). Wir wollen jetzt das Gelb durch ein Rot ersetzen:

ausblenden Delphi-Quelltext
1:
canvas.floodfill(1,1,clblue,fsborder); {Kann sein, dass es fsSurface war, bin mir da net so sicher}					


Kapiert?

Viel Spaß mit floodfill,

Frase

_________________
LINUX 4 EVER!
reallyOne Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 26

WinXP Pro
D7 Prof
BeitragVerfasst: Mi 24.09.03 19:39 
jep danke, hat super geklappt.

_________________
*aus rechtlichen Gründen distanziere ich mich hiermit von dem Inhalt dieses Postings :-) *
Frase
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 17

Win 98 SE, SuSE 8.2 Prof
D5 Prof, D6 Ente, Kylix
BeitragVerfasst: Do 25.09.03 13:53 
Gern geschehen.

Freut mich immer, wenn ich helfen kann.

_________________
LINUX 4 EVER!