Italia
Foro

Hässliche Ränder bei Drawtext....?

 
- Page 1 -


Hallo iF

Deine Behauptung, beim Text con testo überschreiben würden hässliche Ränder entstehen kann ich auf meinem System nicht nachvollziehen.
Anbei ein Code, in dem verschiedenen Mostra einwandfrei gelöscht (überschrieben) werden und das auch noch nach mehrmaligem Aufruf.
KompilierenMarkierenSeparieren
DECLARE zeigen%,loeschen%,ende%,EE%
EE%=0

PROC ZEIGEN

    USEFONT "ARIAL",16,6,0,0,0
    TEXTCOLOR RGB(200,0,0),-1
    DrawText 100,100,Date$(2)
    USEFONT "COURIER NEW",24,0,1,0,0
    TEXTCOLOR RGB(0,0,150),-1
    DrawText 100,150,"Profan-Version "+$ProfVer
    USEPEN 0,1,RGB(0,0,0)
    USEBRUSH 1,RGB(0,200,0)
    RECTANGLE 100,200-200,250

ENDPROC

PROC LOESCHEN

    USEFONT "ARIAL",16,6,0,0,0
    TEXTCOLOR RGB(255,255,240),RGB(255,255,240)
    DrawText 100,100,Date$(2)
    USEFONT "COURIER NEW",24,0,1,0,0
    DrawText 100,150,"Profan-Version "+$ProfVer
    USEPEN 0,1,RGB(255,255,240)
    USEBRUSH 1,RGB(255,255,240)
    RECTANGLE 100,200-200,250

ENDPROC

--------------------------------
CLS RGB(255,255,240)
zeigen%=CREATE("BUTTON",%HWnd,"Anzeigen...",1,1,150,25)
loeschen%=CREATE("BUTTON",%HWnd,"Löschen...",151,1,150,25)
ende%=CREATE("BUTTON",%HWnd,"Ende",530,1,100,25)
ZEIGEN
enableWindow zeigen%,0

WhileNot EE%

    WAITINPUT

    IF GetFocus(zeigen%)

        enableWindow zeigen%,0
        enableWindow loeschen%,1
        ZEIGEN

    ENDIF

    IF GetFocus(loeschen%)

        enableWindow zeigen%,1
        enableWindow loeschen%,0
        LOESCHEN

    ENDIF

    Case GetFocus(ende%):END

WEND

 href='./../../funktionsreferenzen/xprofan/end/'>end

Wahrscheinlich ist die Sache per Dich nicht weiter wichtig darum habe ich das Thema auch in den Pattumiera gestellt
 
09.07.2006  
 



 
- Page 1 -


[quote:7f20d45283]nur systembedingt[/quote:7f20d45283]


Ich möchte nochmal darauf hinweisen das es nicht darum geht herauszufinden bei wem der Effekt auftritt - und bei wem nicht.

Ich erwähnte lediglich das es eine schlechte Idee sei Text derart abzulöschen wegen o.g. Effekt.

Das der Eine oder Andere den Effekt nicht nachvollziehen kann spielt doch hierbei keine Rolle, die Rechner sind nunmal unterschiedlich - ich wollte lediglich an meiner Erfahrung teilhaben lassen.

Was das mit Recht oder nicht Recht zutun hat - keine Ahnung.

Die Frage hässliche Ränder bei Drawtext muss leider mit Ja beantwortet werden weil man kann nicht davon ausgehen das bei o.g. Ablöschverfahren keine Ränder enstehen. Und weil also möglicherweise auf anderen Computern Ränder enstehen ist es eine schlechte Idee. So einfach - Klappe zu - Affe tot.
 
09.07.2006  
 



[quote:247c882404]So einfach - Klappe zu - Affe tot. [/quote:247c882404]
So einfach geb ich mich nicht geschlagen ! - Wenn Du mit -1 als Farbangabe überschreibst, hast Du die hässlichen Ränder - Wenn Du meinen Text genau ansiehst, wirst Du sehen, dass ich an Stelle von -1 die Farbe des Hintergrundes angebe und dann sind die Ränder nicht vorhanden - Gelle
KompilierenMarkierenSeparieren
09.07.2006  
 




Frank
Abbing
[quote:cf7e0939a8]Wenn Du meinen Text genau ansiehst, wirst Du sehen, dass ich an Stelle von -1 die Farbe des Hintergrundes angebe und dann sind die Ränder nicht vorhanden[/quote:cf7e0939a8]

iF, da es um Horsts Methode geht, seine Texte zu löschen, solltest du auch Horsts Quellcode zum Testen verwenden... Meine Aussagen hier basieren jedenfalls auf seinem Code.
 
09.07.2006  
 



 
09.07.2006  
 



Dann ist die Frage aber nicht ob sich der Text perfekt mit dem Text ablöschen lässt, sondern mit einem Rectangle.

Horst sein Beispiel passt also nicht nur Aufgabe, demzufolge kann sein Beispiel aus nicht maßgeblich sein.

@Frank: Es hießt nicht Horst-Methode, sondern Text con testo Löschen-Methode.

Wenn Ihr Text also nicht con testo löscht, sondern mit versteckten Rectangles, dann kann die eigendliche Frage doch nicht Euer Ernst sein oder?
 
09.07.2006  
 



 
- Page 2 -



Frank
Abbing
Passt doch alles. Du hast dir den Quellcode eben nicht genau angesehen und bist deshalb von verkehrten Vorausetzungen ausgegangen. So wie ich anfangs auch.

Problem erkannt und gelöst - nächstes Problem...
 
09.07.2006  
 




Michael
Dell
Weiß nicht ob das hierher gehört, das hab ich auf meiner Platte gefunden:
KompilierenMarkierenSeparieren
DrawText Demo

Proc mText

    Parameters mT_oX&,mT_oY&,mT_oTxt$,mT_Col&,mT_bCol&,mT_oP&
    Declare mT_X1&,mT_Y1&
    Case (mT_oX& < 1): mT_oX& = 1
    Case (mT_oY& < 1): mT_oY& = 1

    If Equ(mT_oP&,0)

        TextColor mT_bCol&,mT_bCol&

        WhileLoop -1,1,1

            mT_X1& = (mT_oX& + &Loop)

            WhileLoop -1,1,1

                mT_Y1& = (mT_oY& + &Loop)
                DrawText mT_X1&,mT_Y1&,mT_oTxt$

            EndWhile

        EndWhile

    Else

        TextColor mT_Col&,mT_bCol&
        DrawText mT_oX&,mT_oY&,mT_oTxt$

    EndIf

EndProc

Cls
mText(10,10,"TestTxt",RGB(0,0,0),RGB(255,0,0),1)
WaitInput
mText(10,10,"TestTxt",RGB(0,0,0),RGB(255,255,255),0)
WaitInput
End
Nachtrag: Kleine verbesserung!
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
09.07.2006  
 



Ähäm Frank wir wissen beide das nicht die Vorraussetzungen verkehrt - sondern Horst Quellcode verkehrt ist.

Horst sein Source begründet nicht das Problem sondern löst es auf einem Umweg - alles was ich wollte ist den Tip von mir geben das man Text nicht con testo ablöschen sollte.

Wenn Horst den Text nicht con testo ablöscht - dann braucht doch niemand davon ausgehen das man Text doch con testo ablöschen sollte.

@Michael: Genau sowas mache ich auch oft - oft auch mit unterschiedlichen Farben per einen 3D-Effekt. Nur am Rande sei erwähnt das das Cleartype-Problem damit aber leider nicht umgehbar ist.

-

Um die Verwirrung um das Thema aber zu lösen es ist so:

Wer mit Drawtext einen Text zeichnet - und diesen Text gerne wieder löschen möchte - kann dies tun indem er den selben Text nochmals, aber mit gesetzer Hintergrundfarbe zeichnet. Die Hintergrundfarbe des Textes muß dann aber gesetzt werden da dann zuerst ein Rectangle mit Hintergrundfarbe gezeichnet wird.

Wer aber den Text genau und nur mit dem Text ablöschen möchte - also ohne Hintergrundfarbe und ohne Rectangle - kann böse Ränder erwarten.

Text con testo ablöschen ist also eine schlechte Idee - Text mit einem Rectangle ablöschen verursacht meistens (nicht immer!) keine Ränder. Warum nicht immer ? Die Softeneffekte mancher GrKarten (vielleicht auch ClearType von MS?) werden nachträglich aufgelegt. Es kann vorkommen das der Alias nicht mit in die Weitenberechnung des nötigen Rectangles mit eingeht. Möglicherweise entstehen also kleine Ränder kurz ausserhalb des Hintergrundrectangles des Textes.

Genau diese Plage hab ich hinter mir.
 
09.07.2006  
 



iF
und wenn Du mich jetzt am liebsten auf den Mond schiessen würdest: Du hast meinen Text nicht benutzt ! - Ich lösche nämlich Text con testo ! - Nur gebe ich beim Löschen anstelle von -1 die Hintergrundfarbe des Fensters an und dann entstehen diese Ränder nicht - (Es ist ja auch kein Löschen, sondern ein erneutes Überschreiben mit der Hintergrundfarbe) - Wenn Du zum Beispiel bei meiner Löschprocedur Textcolor RGB80,0,0),RGB(0,0,0) angibst, dann hastr Du das Rechteck von dem Frank geschrieben hat ...und jetzt Klappe zu - Affe tot von meiner Seite - teste meinen Quelltext und dann ist es gut !
 
09.07.2006  
 



Ich schieße hier niemanden auf den Mond.

Wenn Du als Texthintergrundfarbe nicht -1 angegeben hast - dann löscht Du den Text nicht con testo sondern mit einem Rectangle.
 
09.07.2006  
 



Siehe Bild...

10 kB
Kurzbeschreibung: Gesetz
Hochgeladen:09.07.2006
Downloadcounter86
Download
 
09.07.2006  
 



Da fehlt §3, die salvatorische Klausel!
 
09.07.2006  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

4.521 Views

Untitledvor 0 min.
H.Brill04.02.2022
Georg Teles16.03.2019
Sebald Grandjean16.02.2018
Peter Max Müller13.11.2017
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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