Forum | | | | Alfred Wagner | allô Profaner
d'abord la fois qui code zum testen KompilierenMarqueSéparation!
$P+
SetErrorLevel 0
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
$U F:PROGRAMMETOOLSXPROFAN9ROCKLIBTRV.PCU = TRV_ (Treeview Unit...) Pfad Anpassen !!
DECLARE TRVDLL$,BUTTON1&,TVITEM0&,TVITEM1&,Checkbox1&,Text1$,Text2&,Text3&
DECLARE TREEVIEW&,IMAGELIST&
TRVDLL$= "Shell32.DLL"
IMAGELIST&=IMAGELIST_CREATE(16,16,32,3,3) IMAGELIST ERZEUGEN
PROC CREATETREEVIEW
TRV_CREATETREEVIEW %HWND,0013,0010,0120,0285
TREEVIEW&=&(0)
REPAINT
ENDPROC
PROC TREEVIEWITEMS
TRV_SETTEXTCLR TREEVIEW&,0
TRV_SETBACKCLR TREEVIEW&,RGB(255,255,255)
TRV_INSERTICON "#1",TRVDLL$
TRV_INSERTITEM TVITEM0&,0,"1",TREEVIEW&
TVITEM0&=&(0)
TRV_INSERTICON "#2",TRVDLL$
TRV_INSERTITEM TVITEM0&,1,"2",TREEVIEW&
TVITEM1&=&(0)
TRV_EXPAND TREEVIEW&,TVITEM0&
TRV_EXPAND TREEVIEW&,TVITEM1&
ENDPROC
PROC GET_TREEVIEW ABFRAGEN DER TREEVIEWITEMS
IF GETFOCUS(TREEVIEW&)
IF TRV_GETITEM(TREEVIEW&)=TVITEM0&
TVITEM0_ONCLICK
SETFOCUS(%HWND)
ENDIF
----------------------------------------------------------
IF TRV_GETITEM(TREEVIEW&)=TVITEM1&
TVITEM1_ONCLICK
SETFOCUS(%HWND)
Endif
Endif
ENDPROC
Proc Löschen
@DestroyWindow (Text2&),1
@DestroyWindow (Text3&),1
@DestroyWindow (Checkbox1&),1Checkbox verschwindet
@DestroyWindow (Text1$),1Text verschwindet nicht
Endproc
PROC TVITEM0_ONCLICK
Löschen
Text1$ = "Dieser Text sollte beim Klick auf das zweite Treeview verschwinden"
TextColor RGB($FF,$00,$00),-1
Drawtext 170,50,Text1$
Checkbox1& = @Control("BUTTON","",$50008003,150,50,12,12,%HWND,100,%Hinstance,$10000)
ENDPROC
PROC TVITEM1_ONCLICK
Löschen
Text2& = @Create("Text",%HWND,"Tut er aber nicht ! Liegt wahrscheinlich an DrawText oder?",150,80,300,15)
Text3& = @Create("Text",%HWND,"Weiß jemand Rat ?",150,100,300,15)
ENDPROC
WINDOWSTYLE 31
WINDOWTITLE "Neues Fenster"
WINDOW SUB(DIV(%MAXX,2),DIV(543,2)),SUB(DIV(%MAXY,2),DIV(344,2))-543,344
SETTRUECOLOR 1
DECLARE ENDE%
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
CREATETREEVIEW TREEVIEW ERSTELLEN
TREEVIEWITEMS ITEMS IN TREEVIEW EINFÜGEN
BUTTON1& = CREATE("BUTTON",%HWND,"Ende",0407,0268,0070,0021)
Hauptschleife
SETFOCUS(%HWND)
WHILENOT ENDE%
WAITINPUT
GET_TREEVIEW TREEVIEW ABFRAGE
If @EQU(%KEY,2)
LET ENDE%= 1
ELSEIF @EQU(%KEY,4)
ELSEIF GETFOCUS(BUTTON1&) BUTTON
ENDE%=1
ELSEIF GETFOCUS(TVITEM0&) BUTTON
TVITEM0_ONCLICK
ELSEIF GETFOCUS(TVITEM1&) BUTTON
TVITEM1_ONCLICK
ENDIF
WEND
IMAGELIST_DESTROY(IMAGELIST&)
ca va qui qui besagte Text qui avec DrawText erstellt wurde gelöscht wird?
merci déjà la fois im vorhinein
Alfred avec la famille |
| | | | |
| | | allô Alfred Es liegt à Drawtext....
DrawText hat ne...aucune Handle et peux c'est pourquoi pas détruit (Destroy...) volonté j'ai es la fois abgeändert et so klappt alles KompilierenMarqueSéparationDECLARE txt%
Proc Löschen
@DestroyWindow (Text2&),1
@DestroyWindow (Text3&),1
@DestroyWindow (Checkbox1&),0Checkbox verschwindet
@DestroyWindow (txt%),0Text verschwindet jetzt
Endproc
PROC TVITEM0_ONCLICK
Löschen
Text1$ = "Dieser Text sollte beim Klick auf das zweite Treeview verschwinden"
TextColor RGB($FF,$00,$00),-1
Drawtext 170,50,Text1$
txt%=CREATE("TEXT",%HWnd,text1$,170,50,400,20)
Checkbox1& = @Control("BUTTON","",$50008003,150,50,12,12,%HWND,100,%Hinstance,$10000)
ENDPROC
DrawText überschreibe je toujours avec MKSTR$( ,anzahl%) et mets dabei TEXTCOLOR sur RGB(hintergrund%),RGB(hintergrund%) |
| | | | |
| | Alfred Wagner | allô Horst merci pour deine Aider
mais malheureusement ist qui Text pas plus farbig,ou bien hab je quoi übersehen
Grüße
Alfred avec la famille |
| | | | |
| | | allô Alfred un Text, qui avec CREATE(TEXT,usw..... erstellt wird, ist toujours noir Daher mon Tipp avec MKSTR$( ,anzahl%) Beispiel:
CLS TEXTCOLOR RGB(200,0,0),RGB(255,255,255) DrawText 50,100,cette Text ist rouge sur weissem Hintergrund
- dans qui Procedur Effacer écris Du maintenant:
TEXTCOLOR RGB(255,255,255),RGB(255,255,255) DrawText 50,100,MKSTR$(X,50)
qui numéro 50 ist seulement angenommen. Musst Du anpassen. maintenant wird beim Aufruf qui Procedur Effacer qui rote Text weiss (Hintergrund) überschrieben. cela peux Du naturellement avec chacun la couleur faire. - GetSyscolor(15) z. B. |
| | | | |
| | | Hab maintenant nochmal den Text komplett umgeschrieben. Drawtext stellt maintenant farbigen Text zur Disposition et cette wird gelöscht - Denke je konnte aider KompilierenMarqueSéparation $P+
SetErrorLevel 0
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
$U G:XPROFAN_10_ENTWICKLUNGSANDKISTETRV.PCU = TRV_ (Treeview Unit...) Pfad Anpassen !!
DECLARE TRVDLL$,BUTTON1&,TVITEM0&,TVITEM1&,Checkbox1&,Text1$,Text2&,Text3&
DECLARE TREEVIEW&,IMAGELIST&
TRVDLL$= "Shell32.DLL"
IMAGELIST&=IMAGELIST_CREATE(16,16,32,3,3) IMAGELIST ERZEUGEN
PROC CREATETREEVIEW
TRV_CREATETREEVIEW %HWND,0013,0010,0120,0285
TREEVIEW&=&(0)
REPAINT
ENDPROC
PROC TREEVIEWITEMS
TRV_SETTEXTCLR TREEVIEW&,0
TRV_SETBACKCLR TREEVIEW&,RGB(255,255,255)
TRV_INSERTICON "#1",TRVDLL$
TRV_INSERTITEM TVITEM0&,0,"1",TREEVIEW&
TVITEM0&=&(0)
TRV_INSERTICON "#2",TRVDLL$
TRV_INSERTITEM TVITEM0&,1,"2",TREEVIEW&
TVITEM1&=&(0)
TRV_EXPAND TREEVIEW&,TVITEM0&
TRV_EXPAND TREEVIEW&,TVITEM1&
ENDPROC
PROC GET_TREEVIEW ABFRAGEN DER TREEVIEWITEMS
IF GETFOCUS(TREEVIEW&)
IF TRV_GETITEM(TREEVIEW&)=TVITEM0&
TVITEM0_ONCLICK
SETFOCUS(%HWND)
ENDIF
----------------------------------------------------------
IF TRV_GETITEM(TREEVIEW&)=TVITEM1&
TVITEM1_ONCLICK
SETFOCUS(%HWND)
Endif
Endif
ENDPROC
Proc Löschen
@DestroyWindow (Text2&),1
@DestroyWindow (Text3&),1
------------------------------------------------------------------------- NEU
@DestroyWindow (Checkbox1&),0Checkbox verschwindet
TEXTCOLOR GetSyscolor(15),GetSyscolor(15) Vorder- Hintergrund gleich
DrawText 170,50,text1$
TextColor RGB($FF,$00,$00),-1 alte Farben wieder einstellen für neuen Aufruf
------------------------------------------------------------------------- NEU
Endproc
PROC TVITEM0_ONCLICK
Löschen
Text1$ = "Dieser Text sollte beim Klick auf das zweite Treeview verschwinden"
TextColor RGB($FF,$00,$00),-1
Drawtext 170,50,Text1$
Checkbox1& = @Control("BUTTON","",$50008003,150,50,12,12,%HWND,100,%Hinstance,$10000)
ENDPROC
PROC TVITEM1_ONCLICK
Löschen
Text2& = @Create("Text",%HWND,"Tut er aber nicht ! Liegt wahrscheinlich an DrawText oder?",150,80,300,15)
Text3& = @Create("Text",%HWND,"Weiß jemand Rat ?",150,100,300,15)
ENDPROC
WINDOWSTYLE 31
WINDOWTITLE "Neues Fenster"
WINDOW SUB(DIV(%MAXX,2),DIV(543,2)),SUB(DIV(%MAXY,2),DIV(344,2))-543,344
SETTRUECOLOR 1
DECLARE ENDE%
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
CREATETREEVIEW TREEVIEW ERSTELLEN
TREEVIEWITEMS ITEMS IN TREEVIEW EINFÜGEN
BUTTON1& = CREATE("BUTTON",%HWND,"Ende",0407,0268,0070,0021)
Hauptschleife
SETFOCUS(%HWND)
WHILENOT ENDE%
WAITINPUT
GET_TREEVIEW TREEVIEW ABFRAGE
If @EQU(%KEY,2)
LET ENDE%= 1
ELSEIF @EQU(%KEY,4)
ELSEIF GETFOCUS(BUTTON1&) BUTTON
ENDE%=1
ELSEIF GETFOCUS(TVITEM0&) BUTTON
TVITEM0_ONCLICK
ELSEIF GETFOCUS(TVITEM1&) BUTTON
TVITEM1_ONCLICK
ENDIF
WEND
IMAGELIST_DESTROY(IMAGELIST&)
|
| | | | |
| | Alfred Wagner | merci Horst funktioniert correcte
Grüße
Alfred avec la famille |
| | | | |
| | | Hab là une kleinen Einwand!
cela Prinzip, avec Drawtext une Drawtext abzulöschen funktioniert souvent pas - besonders sur Standartinstallationen.
sur einem unversautem WinXP ist IMHO ClearType aktiv, alors qui Bildschirmschriftenglättung.
là cet souvent aktiv ist ergibt cela procéder hässliche Ränder - réellement verschwindet qui Text garnicht wirklich mais es rester Fragmente übrig.
si es déjà sur Pixeltext geschehen muss, ensuite muss qui überschriebene Bereich richtig wiederhersgestellt volonté. on pourrait une Kopie qui Pixel im Memorybitmap anlegen et cette Bereich zum effacer nutzen, ou bien avec Rectangle den Text ablöschen.
Text sur Text ist mais aucun so gute concept. |
| | | | |
| | | allô iF
[quote-part:b8ddee25dd]Text sur Text ist mais aucun so gute concept.[/quote-part:b8ddee25dd] Gebe Dir naturellement droite - était oui aussi seulement un Denkanstoss - meinereiner allez hin et vergrössert avec USEFONT.... den Schriftfont et ensuite sommes qui Ränder aussi oublier qc. Du musst mir toujours zugute tenir, dass je à peine avec irgendwelchen API- ou bien anderen Befehlen arbeite et letztendlich doch zum but viens - siehe mon UNIT - il y a aucun negativen Kritiken eingelaufen ou bien suis je qui Kritik pas wert ? |
| | | | |
|
répondreOptions du sujet | 897 Views |
Themeninformationencet Thema hat 3 participant: |