Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Possibilité de faire des fenêtres de formes variées | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Possibilité de faire des fenêtres de formes variées Jeu 24 Juin 2010 - 19:23 | |
| J'ai mis KGF.dll Version V1.02 du 23/6/2010 en ligne. Elle contient des fonctions pour dessiner une form selon les contours d'une région multiple ! On peut maintenant créer des fenêtres Panoramic qui ont des formes composées librement de rectangles et d'ellipses qui n'ont même pas besoin de se toucher ! On peut même ajouter un rectangle ou une ellipse à une fenêtre déjà existante !
Attention: les coordonnées des régions sont des coordonnées absolus, INCLUANT la barre de titre de la fenêtre d'origine. Si l'on n'inclut pas les 15 ou 20 premiers pixels (de 0 à 20, par exemple), on n'a pas de barre de titre et on ne peut PAS déplacer la fenêtre avec la souris. De même, il est très facile maintenant d'exlure les 3 boutons de droite de la fenêtre, ainsi que le menu système... Il n'y a pas de l'imites à l'imagination.
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Possibilité de faire des fenêtres de formes variées Jeu 24 Juin 2010 - 21:09 | |
| C'est chargé ! mais je maintiens quand même que les deux derniers paramètres sont des coordonnées (du point opposé) et non des dimensions. | |
| | | Invité Invité
| Sujet: Re: Possibilité de faire des fenêtres de formes variées Jeu 24 Juin 2010 - 21:46 | |
| Pour l'instant je ne télécharge pas. J'attends que ce soit finalisé. Je trouve plus simple pour les 2 derniers paramètres d'avoir la largeur et la hauteur de la forme à retirer, ainsi si on connait width et height d'une forme, on le met à la place (en tenant compte du haut).
|
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Possibilité de faire des fenêtres de formes variées Jeu 24 Juin 2010 - 21:56 | |
| Je n'arrive pas trop à combiner des formes, mais je n'ai sans doute pas tout compris (ça devient un peu... complexe). Je voulais superposer une ellipse à mon rectangle, mais ça ne marche pas: - Code:
-
label trouer, boucher dim i%, x, y, w, h, offx, offy, region% dim rect$, elli$, gtrg$, adre$, adel$ rect$ = "WindowRectangleHole" elli$ = "WindowEllipticHole" gtrg$ = "WindowGetWindowRegion" adre$ = "WindowAddRectangleRegion" adel$ = "WindowAddEllipticRegion" offx = 8: offy = 28: ' offset x et y pour tenir compte des bordures de Form 0
button 2: top 2,410: left 2,10: caption 2,"Trouer": on_click 2,trouer button 3: top 3,410: left 3,120: caption 3,"Boucher": on_click 3,boucher 2D_Target_Is 0: ' quadrillage au pas de 50 pixels for i% = 0 to 550 step 50 2D_Line i%, 0, i%, 400: ' lignes verticales next i% for i% = 0 to 400 step 50 2D_Line 0, i%, 550, i%: ' lignes horizontales Next i% x = 100 y = 100 w = 350 h = 200 dll_on "C:\Langages\Panoramic\KGF.dll": ' mon emplacement à moi end
trouer: i% = dll_call6(rect$,handle(0),1,x+offx,y+offy,w,h) region% = 0 i% = dll_call2(gtrg$,handle(0),adr(region%)) i% = dll_call5(adel$,adr(region%),50,150,450,100) return
boucher: i% = dll_call6(rect$,handle(0),0,0,0,0,0) return
Dernière édition par JL35 le Jeu 24 Juin 2010 - 23:06, édité 2 fois | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Possibilité de faire des fenêtres de formes variées Jeu 24 Juin 2010 - 22:22 | |
| JL35, tu avais raison pour l'interprétation des paramètres: c'était bien pris en compte comme coordonnées et non comme largeur et hauteur. Ceci est corrigé dans la version V01.03 du 24/6/2010.
En ce qui concerne ton programme, je n'ai pas vérifié le positionnement et les dimensions de rectangle et ellipse, mais je peux te dire une chose: en cliquant "Trouer", tu découpes proprement un rectangle. Puis, tu récupères la région de la form pour lui ajouter une ellipse, mais tu ne fais rien avec cette région, après. Tu peux, soit l'utiliser pour découper autre chose, soit pour redessiner la form avec la nouvelle région, en utilisant WindowRegionAsWindow. Sinon, ta nouvelle région existe bien pour windows, mais sans aucun lien avec ta form... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Possibilité de faire des fenêtres de formes variées Jeu 24 Juin 2010 - 22:47 | |
| Merci Klaus, mais il faudra que je regarde ça à tête reposée, sinon c'est la migraine assurée ! En attendant je télécharge la dernière version. Ca marche pour les dimensions, c'est plus pratique comme ça. Avec mon programme (je l'ai édité pour mettre largeur et hauteur) je pensais naïvement faire une découpe comme ça, rectangle + ellipse: | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Possibilité de faire des fenêtres de formes variées Ven 25 Juin 2010 - 0:22 | |
| Voici une petite démo de ce qui est possible. Le bouton "Trouer" fait quelque chose ressemblant à ce que tu suggères, et le bouton "Fenêtre bizarre" crée une fenêtre qui a exactement la forme du trou de l'autre fenêtre. Tu peux t'amuser à placer la fenêtre "trouée" au-dessus de l'autre... Voici le code: - Code:
-
label click_1, click_3, click_31
dim region%, i%
button 1 top 1,10 left 1,10 width 1,120 caption 1,"Trouer" on_click 1,click_1
button 3 top 3,10 left 3,200 width 3,120 caption 3,"Fenêtre bizarrre" on_click 3,click_3
dll_on "KGF.dll"
end
click_1: inactive 1 form 20 top 20,300 left 20,300 height 20,400 width 20,600 color 20,255,255,0
region% = 0 i% = dll_call5("WindowAddRectangleRegion",adr(region%),50,150,400,100) i% = dll_call5("WindowAddEllipticRegion",adr(region%),150,50,200,300) i% = DLL_call3("WindowRegionHole",handle(20),1,adr(region%)) return
click_3: inactive 3 form 30 top 30,350 left 30,350 height 30,400 width 30,600 color 30,255,0,0
button 31 parent 31,30 top 31,150 left 31,250 caption 31,"Fermer" on_click 31,click_31
region% = 0 i% = dll_call5("WindowAddRectangleRegion",adr(region%),50,150,400,100) i% = dll_call5("WindowAddEllipticRegion",adr(region%),150,50,200,300) i% = DLL_call2("WindowRegionAsWindow",handle(30),adr(region%)) return
click_31: hide 30 return
end
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Possibilité de faire des fenêtres de formes variées Ven 25 Juin 2010 - 10:14 | |
| Oui, ton exemple correspond bien à ce que je cherchais à faire, donc c'est possible ! Me reste plus qu'à étudier la logique et la syntaxe. Merci pour ton attention Klaus, et pour ce beau joujou. | |
| | | Contenu sponsorisé
| Sujet: Re: Possibilité de faire des fenêtres de formes variées | |
| |
| | | | Possibilité de faire des fenêtres de formes variées | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |