Comprend | | | | Ragnar Rehbein | Kurze introduction zur extendedbuttons.inc je gehöre trop qui zwar kleinen mais hartgesottenen gemeinde qui Visual Windows Prof. 2 zur programmentwicklung pas missen serait. alle projetkte qui une surface avons volonté avec VWP2 erstellt. es könne beliebig fensterelemente erstellt umbenannt déménagé volonté etc. sans dans irgendeiner weise dans den quelltest intervenir trop doit. mais aussi pour qui fangemeinde des Object Creator 4.1 peux cet include nützlich son. malheureusement sommes qui möglichkeiten zur buttongestaltung droite eingeschränkt. avec qui skcontrol.dll hat on dagegen tolle möglichkeiten. qui benutzung bedeutet cependant chaque fois manuellen intervention dans den quelltext, si un element déménagé ou bien dans qui taille geändert wird.
mon concept était eh bien folgende: j'ai une include geschrieben, qui un überblenden de beliebigen controls permet.
on erstellt Alors, comment gewohnt (z.b. avec VWP2) sa surface avec den buttons. z.b. peux on eh bien avec extbut#.hoverbutton(addr(Button1&)) aus dem button1 une hoverbutton pratiquer la magie. qui methode bekommt qui adresse qui variablen übermittelt, qui cela handle de button1 contient. vous stellt ensuite la taille et situation des button1 fest. ensuite wird qui buttontext geholt. ensuite wird qui button1 détruit. ensuite wird avec qui skcontrol.dll un hoverbotton à qui gleichen position et identischer taille erstellt. et trop bon letzt wird cela neue handle dans qui alten variablen button1& gespeichert. je peux alors plus avec qui variablen button1& travailler, qui eh bien cela handle des hoverbuttons contient.
je peux alors chez einem programm cela 10 buttons hat par cela hinzufügen de seulement 13 zeilen quelltext, aus allen buttons hoverbuttons faire. cela air bleibt inchangé, ne...aucune quelltext doit geändert volonté.
verschiebe je buttons dans meiner entwicklungsumgebung ou bien ändere größen, wirkt sich cela tout de suite sans weiteren aufwand sur qui hoverbuttons aus. pour dem prinzip peux je beliebige elemente, qui seulement comme platzhalter dienen avec anderen selbst definierten überblenden. aussi pour qui positionierung de listviews avec franks listview.dll hervorragend approprié !!
nachfolgend den quelltext et une kurzen codeschnipsel pour qui syntax. KompilierenMarqueSéparation $I SKControl.inc
Def GetWindowRect(2) !"USER32", "GetWindowRect"
Def GetWindowRgn(2) !"USER32", "GetWindowRgn"
DEF MapWindowPoints(4) ! "USER32", "MapWindowPoints"
Def GetSysColor(1) !"USER32","GetSysColor"
class extbuttons = bcolor&, farbe des buttons
tcolor&, farbe der schrift
hfont&, fonthandle von create font
x&, koordinate
y&,
sx&, breite des buttons
sy&,
skdll_init@,
skdll_deinit@,
hskdll&,
get_bdimension@, buttondimension ermitteln und umrechnen rückgabe gettext des buttons
hoverbutton@,
colorhoverbutton@,
colorhoverimagebutton@,
setcolor@,
setfont@,
dateedit@
proc extbuttons.skdll_init
declare .hskdll&
.hskdll& = UseDll("SKControl.dll")
if .hskdll& = 0
MessageBox("SKControl.dll konnte nicht geladen werden","Fehler",48+4096)
end
endif
SKCtrl_InitDll() Dll initialisieren...
endproc
----------------auf jeden fall vor beenden des programms ausführen--------------
proc extbuttons.skdll_deinit
SKCtrl_DeInitDll()
FreeDll .hskdll&
endproc
--------------nur ne hilfsfunktion-----------------------------------------
proc extbuttons.get_bdimension
parameters bhadr&
declare bh&,bt$,adr&,b#
dim b#,16
bh& = long(bhadr&,0)
GetWindowRect(bh&,b#)
MapWindowPoints(0,%hwnd,b#,2)
bt$ = gettext$(bh&)
DestroyWindow(bh&)
.x& = Long(b#,0)
.y& = Long(b#,4)
.sx& = Long(b#,8)-Long(b#,0)
.sy& = Long(b#,12)-Long(b#,4)
dispose b#
return bt$ buttontext
endproc
-----------um farben für colorbutton zu setzen, gilt dann für alle nachfolgenden buttons---------
proc extbuttons.setcolor
parameters tcolor&,bcolor&
.tcolor& = tcolor&
.bcolor& = bcolor&
endproc
----------------erklärt sich wohl alleine----------------------------------
proc extbuttons.setfont
parameters font$,höhe&,breite&,fett&,kursiv&,unterstrichen&
.hfont& = CreateFont("Arial",höhe&,breite&,fett&,kursiv&,unterstrichen&)
endproc
----------------------------------------------------------------------------
proc extbuttons.hoverbutton
parameters bhadr& speicheradresse des buttonhandles
declare bt$
bt$ = .get_bdimension(bhadr&)
long bhadr&,0=SKCtrl_CreateHoverButton(%hwnd,addr(bt$),.x&,.y&,.sx&,.sy&, %hInstance)
setfont long(bhadr&,0),.hfont&
endproc
----------------------------------------------------------------------------
proc extbuttons.colorhoverbutton
parameters bhadr& speicheradresse des buttonhandles
declare bt$
bt$ = .get_bdimension(bhadr&)
long bhadr&,0=SKCtrl_CreateClrHoverButton(%hwnd,addr(bt$),.tcolor&,.bcolor&,.x&,.y&,.sx&,.sy&, %hInstance)
setfont long(bhadr&,0),.hfont&
endproc
------------------imagehandle& ist optional--------------------------------
proc extbuttons.colorhoverimagebutton
parameters bhadr&,image$,pos&,imagehandle& speicheradresse des buttonhandles
declare bt$,ico&,hndl&
bt$ = .get_bdimension(bhadr&)
case right$(lower$(image$),4) = ".ico" : ico& = 1
case pos& = 1 : .sx& = -.sx& rechts daneben
case pos& = 2 : .sy& = -.sy& unten
if pos& = 3 oben
.sx& = -.sx&
.sy& = -.sy&
endif
if imagehandle& <> 0
hndl& = 1 noch nicht fertig
else
imagehandle& = addr(image$)
endif
long bhadr&,0=SKCtrl_CreateClrHvrImageButton(%hwnd,imagehandle&,addr(bt$),ico&,hndl&,.tcolor&,.bcolor&,.x&,.y&,.sx&,.sy&, %hInstance)
setfont long(bhadr&,0),.hfont&
endproc
-------------------------------macht aus einem bel. control ein dataedit----------------
proc extbuttons.dateedit
parameters bhadr&
.get_bdimension(bhadr&)
long bhadr&,0 = Create("DateEdit",%hwnd class=s3>»,.x&,.y&,.sx&,.sy& )
endproc
auszug zur anwendung: KompilierenMarqueSéparationdeclare extbut#
dim extbut#,extbuttons
..... buttondefinitionen etc.
Proc forme1OnInit
extbut#.skdll_init()
ENDPROC
Proc forme1OnShow
extbut#.setcolor(0,getsyscolor(15)+rgb(10,10,10))
extbut#.setfont(Arial,16,0,0)
extbut#.hoverbutton(addr(Button1&))
extbut#.colorhoverimagebutton(addr(Button2&),"liste.ico")
extbut#.colorhoverimagebutton(addr(Button3&),"liste.ico")
extbut#.colorhoverimagebutton(addr(Button4&),"leer.ico")
ENDPROC
sur un feedback serait je mich freuen. aussi fragen trop VWP2 beantworte je gern.
r.r. |
| | | | |
| | | Hmmm klinkt toll, alors entweder suis je mächtig beschränkt, ou bien simple seulement pas up-to-date. je schnalle à manchen Sujets ici wirklich garnix. Sei Je ne böse c'est pourquoi, mais j'ai pas wirklich kappiert comment je cet Inc nutzbringend anwende, alors je mon soll qui inc quoi daran changement, cela on pour-comment-avant sa Buttons simple anlegt comment bisher? je crois qui Inc birgt quelque chose Geniales insich, mais je begreife es seulement pas.
Nixkappier, iF |
| | | | |
| | Ragnar Rehbein | je sais oui pas, comment du deine buttons anlegst ? si du alles seulement hard codiert inkl. qui koordinaten dans den quelltext reinhämmerst, brauchst du qui inc pas. si du cependant avec einem tools, deine oberflächen quasi per drag and drop erstellst (z.b. avec VWP2, so dans delphi), wirst du feststellen, qui qui möglichtkeiten qui vorhanden controls pas toujours ausreichen. avec cette inc erhält on sich qui möglichkeit cela gesamte projet toujours voll grafisch éditer trop peut, cependant eigene controls trop benutzen. qui buttons dienen quasi seulement comme platzhalter, qui zur laufzeit ausgetauscht volonté. qui eigenschaften qui erstellten controls volonté vererbt et les parents ensuite gekillt . je connais avec XProfan aucun einfachere methode um vite et flexibel !!! oberflächen trop erstellen.
r.r. |
| | | | |
| | | Argh maintenant habs ego verstanden. Nunja, bien sûr, alors je suis so un Code-Einhämmerer comment Du oui so joli meintest, Controls avec einer GUI erstellen/positionieren ist pour mich un Grauß. c'est pour mich comparable avec dem travailler avec Frontpage & Co. um Htmls trop erstellen, quoi mir aussi pas dans den tête aller mag. là lob je mir qui Präzision de Notepad.
Spielt ici mais aucun rôle, j'ai Sinn et signification Deiner Inc maintenant verstanden (je sais aussi cela cela nix avec GUI trop 1faire hat), et cet aussi ausprobiert. je trouve qui concept supahh!
iF |
| | | | |
|
répondreOptions du sujet | 5.866 Views |
Themeninformationencet Thema hat 2 participant: |