Français
Comprend

extendedbuttons.inc

 

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éparation
declare 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.
 
21.06.2004  
 



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
 
22.06.2004  
 




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.
 
22.06.2004  
 



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
 
22.06.2004  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

5.874 Views

Untitledvor 0 min.
Gast.0815 vor 6 Tagen
ecki11.01.2023
Axel Berse04.01.2023
Langer29.01.2022
plus...

Themeninformationen

cet Thema hat 2 participant:

unbekannt (2x)
Ragnar Rehbein (2x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie