Español
Incluye

extendedbuttons.inc

 

Ragnar
Rehbein
Kurze Einleitung a extendedbuttons.inc
Yo gehöre a el zwar pequeño aber hartgesottenen gemeinde el Visual Windows Prof. 2 a programmentwicklung no missen möchten.
todos projetkte el una oberfläche haben voluntad con VWP2 erstellt.
lo könne cualquier fensterelemente erstellt umbenannt movido voluntad etc. sin en irgendeiner weise en el quelltest eingreifen tener.
aber auch para el fangemeinde des Object Creator 4.1 kann esta include nützlich ser.
desafortunadamente son el möglichkeiten a buttongestaltung bastante eingeschränkt.
con el skcontrol.dll ha uno dagegen tolle möglichkeiten. el benutzung bedeutet sin embargo jedesmal manuellen eingriff en el quelltext, si una element movido oder en el größe geändert se.

mi idee war nun folgende:
Yo una include geschrieben, el una überblenden de beliebigen controls ermöglicht.

uno erstellt Entonces, ¿cómo gewohnt (z.b. con VWP2) seine oberfläche con el buttons.
z.b. puede ser nun con extbut#.hoverbutton(addr(Button1&)) de el button1 una hoverbutton zaubern.
el methode bekommt el adresse el variablen übermittelt, el el handle de button1 enthält.
ellos stellt entonces el größe y lage des button1 fest.
Luego se el buttontext geholt.
Luego se el button1 zerstört.
Luego se con el skcontrol.dll una hoverbotton a el gleichen position y identischer größe erstellt.
y a guter letzt se el neue handle en el alten variablen button1& gespeichert. Yo kann also más con el variablen button1& trabajo, el nun el handle des hoverbuttons enthält.

Yo kann also en una programm el 10 buttons ha por el hinzufügen de sólo 13 zeilen quelltext, de allen buttons hoverbuttons hacer. el aussehen restos unverändert, kein quelltext muß geändert voluntad.

verschiebe Yo buttons en meiner entwicklungsumgebung oder ändere größen, wirkt se el inmediatamente sin más aufwand en el hoverbuttons de.
después de el prinzip kann Yo beliebige elemente, el sólo como platzhalter dienen con otro incluso definierten überblenden.
auch para el positionierung de listviews con franks listview.dll hervorragend geeignet !!

nachfolgend el quelltext y una kurzen codeschnipsel para el syntax.
KompilierenMarcaSeparación
 $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 a anwendung:
KompilierenMarcaSeparación
declarar extbut#
dim extbut#,extbuttons
..... buttondefinitionen etcétera

Proc Form1OnInit

    extbut#.skdll_init()

ENDPROC

Proc Form1OnShow

    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


encima una feedback sería Yo mich freuen.
auch fragen a VWP2 beantworte Yo gern.

r.r.
 
21.06.2004  
 



Hmmm klinkt toll, also entweder bin Yo mächtig beschränkt, oder simplemente sólo no up-to-date. Yo schnalle a manchen Temas hier wirklich garnix. Sei No böse deshalb, pero yo habe no wirklich kappiert Yo esta Inc nutzbringend anwende, also Yo mi se el inc qué daran ändern, el uno después de-como-antes seine Buttons simplemente anlegt como bisher? Yo glaube el Inc birgt algo Geniales insich, pero yo begreife lo sólo no.

Nixkappier, IF
 
22.06.2004  
 




Ragnar
Rehbein
Yo weiß sí no, como du deine buttons anlegst ?
si du alles sólo hard codiert inkl. el koordinaten en el quelltext reinhämmerst, necesidad du el inc no.
si du sin embargo con un tools, deine oberflächen quasi por drag and drop erstellst (z.b. con VWP2, así en delphi), wirst du determinar, daß el möglichtkeiten el disponible controls no siempre ausreichen.
con dieser inc erhält uno el möglichkeit el gesamte projekt siempre voll grafisch Editar a puede, sin embargo propio controls a benutzen.
el buttons dienen quasi sólo como platzhalter, el a laufzeit ausgetauscht voluntad. el eigenschaften el erstellten controls voluntad vererbt y el eltern entonces gekillt .
Yo saber con XProfan no einfachere methode en rápidamente y flexibel !!! oberflächen a redactar.

r.r.
 
22.06.2004  
 



Argh ahora habs ego verstanden. Nunja, klar, also Yo bin así una Code-Einhämmerer como Usted sí así schön meintest, Controls con uno GUI redactar/positionieren es para mich una Grauß. Es para mich vergleichbar con el Arbeiten con Frontpage & Co. en Htmls a redactar, qué me auch no en el Kopf ir mag. Como lob Yo el Präzision de Notepad.

Spielt hier pero no Papel, Yo Sinn y Bedeutung Deiner Inc ahora verstanden (Yo weiß auch el el nix con GUI a tun ha), y esta auch ausprobiert. Yo finde el Concepto supahh!

IF
 
22.06.2004  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

5.881 Views

Untitledvor 0 min.
Gast.0815 vor 6 Tagen
ecki11.01.2023
Axel Berse04.01.2023
Langer29.01.2022
Más...

Themeninformationen

Dieses Thema ha 2 subscriber:

unbekannt (2x)
Ragnar Rehbein (2x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie