Español
Foro

Hecho: Zwei Bilderprobleme

 
- Página 1 -



Nico
Madysa
¡Hola miteinander!

Yo habe mein Programa veces el Minimum reduziert, en el lo siempre todavía zwei merkwürdige Erscheinungen son:
KompilierenMarcaSeparación
 $H Messages.ph

proc Zeige_Kugeln

    declare ly% , gueltig%
    alle Buttons durchgehen

    whileloop 0,9

        ly% = &loop

        whileloop 0,9

            if xor(not(&loop mod 9),not(ly% mod 9)) or (not(&loop) and (ly% = 9))

                Rand deaktivieren
                EnableWindow But&[&loop,ly%],0

            elseif (&loop mod 9) and (ly% mod 9)

                Mittelfeld aufdecken
                ShowWindow(But&[&loop,ly%],0)

            endif

            Die Kullern anzeigen

            if between(&loop,1,8,ly%,1,8)

                SetTimer 0 : waitinput : KillTimer

                if feld%[&loop - 1,ly% - 1]

                    DrawPic PTrue&,&loop * 48,ly% * 48;-1

                endif

            endif

        EndWhile

    EndWhile

    Das gemalte ans Hintergrundbild klatschen
    PLsg& = Create("hPic",0,"&SCRBMP")
    SendMessage(hBack&,~STM_SETIMAGE,0,PLsg&)
    SavePic "D:\Dat1.bmp",PLsg&
    SavePic "D:\Dat2.bmp",SendMessage(hBack&,~STM_GETIMAGE,0,0)
    Zu guter Letzt den deaktivierten Rand wegmachen

    whileloop 0,9

        ly% = &loop

        whileloop 0,9

            case xor(not(&loop mod 9),not(ly% mod 9)) : ShowWindow(But&[&loop,ly%],0)

        EndWhile

    EndWhile

endproc

proc Button

    parameters px% , py%
    Rand: Bilder, Mitte: normal

    ifnot (px% mod 9) and (py% mod 9)

        But&[px%,py%] = Create("PicButton",%hWnd,PTrue&,px% * 48,py% * 48,48,48)

    else

        But&[px%,py%] = Create("Button",%hWnd,"",px% * 48,py% * 48,48,48)

    endif

endproc

proc Button_2

    parameters px% , py%
    nur ein Button am Rande ist kein Bild

    if (px% = 0) and (py% = 9)

        But&[px%,py%] = Create("Button",%hWnd,"",px% * 48,py% * 48,48,48)

    elseif not((px% mod 9) and (py% mod 9))

        But&[px%,py%] = Create("PicButton",%hWnd,PTrue&,px% * 48,py% * 48,48,48)

    else

        But&[px%,py%] = Create("Button",%hWnd,"",px% * 48,py% * 48,48,48)

    endif

endproc

proc Bereite_Bilder

    Hintergrundbild
    PBack& = Create("hNewPic",481,481,$FFFFFF)
    StartPaint PBack&
    UsePen 0,1,0

    whileloop 2,8

        Rectangle (48*&loop-1),0 - (48*&loop+1),480

    EndWhile

    whileloop 2,8

        Rectangle 0,(48*&loop-1) - 480,(48*&loop+1)

    EndWhile

    EndPaint
    Bild für die Kullern
    PTrue& = Create("hNewPic",48,48,$FFFFFF)
    StartPaint PTrue&
    UsePen 0,1,0
    UseBrush 1,0
    Ellipse 2,2,45,45
    EndPaint

endproc

proc BuildUp

    declare y%
    WindowStyle 26
    Window 100,50 - 500,520
    Hintergrund
    hBack& = Create("Bitmap",%hWnd,PBack&,0,0)
    alle Buttons

    whileloop 0,9

        y% = &loop

        whileloop 0,9

            Button(&loop,y%)
            Button_2(&loop,y%)

        EndWhile

    EndWhile

endproc

proc Platziere_Kugeln

    declare rx% , ry%
    clear feld%[]

    whileloop 4

        repeat

            rx% = Rnd(8)
            ry% = Rnd(8)

        until not(feld%[rx%,ry%])

        feld%[rx%,ry%] = 1

    EndWhile

endproc

declare But&[9,9], feld%[7,7]
declare hBack&,PBack&,PLsg& , PTrue&
Randomize
Bereite_Bilder
BuildUp
Platziere_Kugeln
var e% = 0

whilenot e%

    waitinput

    if Clicked(But&[9,9])

        e% = 1

    elseif Clicked(But&[0,9])

        Zeige_Kugeln

    endif

wend

DeleteObject PBack&
DeleteObject PLsg&
DeleteObject PTrue&
end

Lo se folgendes gemacht: Zu Beginn voluntad en el Matrix feld% vier zufällig gewählte Werte en 1 gesetzt (Mi Murmeln, siehe más unten ). Das Staticcontrol, el en el Hintergrund liegt, se de Buttons überdeckt.
Klickt uno nun en el Button unten links (con el Handle But&[0,9]), así voluntad el Randbuttons deaktiviert y el mittleren versteckt. Damit se el essenzielle Teil el Hintergrundbitmap sichtbar.
Darauf voluntad vier Kullern de feld% hingemalt. Das todo Ventana se en uno Mapa de bits abgesichert y Hintergrundbitmap transferencia, el Status quo se also fixiert. Zum Schluss voluntad el deaktivierten Randbuttons unsichtbar gemacht, sólo el Ecken y el Hintergrundbild verbleiben. (Der untere rechte Button final el Programa.)

Problema 1: Im Kompilat fehlen de los vier Murmeln meist algunos. Im Interpreter voluntad stets todos vier adecuado. Wenn el Línea SetTimer 1 : waitinput : KillTimer (Dulcoif) aktiviert se, voluntad auch en el Kompilat todos Kullern adecuado. Sleep zeitigt no Wirkung. Findet lo en getrennten Schleifen en lugar de, dass el Buttons lejos y el Kreise gemalt voluntad, así voluntad ebenso todos vier Kreise adecuado. Doch por qué funktioniert el obere Variante no? Ein Zeitproblem kann no ser, como Sleep nichts bringt.

Problema 2: Man ersetze el Aufruf Button(&loop,y%) por Button_2(&loop,y%). Dadurch es una einziger el Randbuttons bildlos, pero una Standard-Button. Dies ha el unerklärlichen Effekt, dass el Hintergrundbitmap sólo todavía de uno schwarzen Fläche y el Button besteht. Wers no glaubt, kann el Bilder absichern dejar. Das Fensterfoto &SCRBMP es todavía ordentlich, doch el Mapa de bits des Static-Controls es más que fraglich. Doch por qué?
 
Nico Madysa
15.07.2009  
 



 
- Página 1 -



Nico
Madysa
Bitteschön, Yo hoffe, dass dreiunzwanzig Zeilen no zuviel son.
KompilierenMarcaSeparación
cls 16777215
P& ist das Bild des Buttons
var P& = Create("hNewPic",48,48,$22DD22)
Die Buttons sind h& und g&. Jeder kann ein Text- oder ein Bildbutton sein.
var h& = Create("Button",%hWnd,"Text",0,0,48,48)
var h& = Create("PicButton",%hWnd,p&,0,0,48,48)
var g& = Create("PicButton",%hWnd,p&,48,0,48,48)
var g& = Create("Button",%hWnd,"Text",48,0,48,48)
Der Fensterinhalt wird fotografiert und nach unten versetzt angezeigt.
var Q& = Create("hPic",0,"&SCRBMP")
cls 0 Damit man Bild und Bildschirm unterscheiden kann.
Create("Bitmap",%hWnd,Q&,0,48)
Rest

whilenot IsKey(27)

    waitinput

wend

DeleteObject P&
DeleteObject Q&
end

Der Fehler tritt en, sobald auch sólo una einziger normaler Button en el Bildschirm sichtbar es. Sind zwei Picbuttons como, así se ejecuta alles normal. Wenn el Textbutton vorher versteckt se, funktioniert ebenfalls alles wunderbar.
 
Nico Madysa
16.07.2009  
 



Achso ahora verstehe Yo Su Problema, sí el es "normal".

Windows blanco no welche Pixel hinter* una Control mentira, Yo hatte veces con Franco darüber debattiert aber finde el hilo no mehr.

Im Fazit es scrbmp (natürlich) "unzuverlässig". ^ ^

Ziehe veces calc.exe encima Su hWnd y kopiere el hWnd de, calc es con en!

DCs son nunmal no Pixelspeicher.

Vlt. es dies con "AERO" ahora (algo) anders...
 
16.07.2009  
 



Apéndice: Ähnlich: [...]  .
 
16.07.2009  
 



 
- Página 2 -



Nico
Madysa
So ne Doofen Contexte!
Gut, entonces muss Yo darauf en Zukunft aufpassen. Gracias schön para rápido Beantwortung meiner beiden Fragen.
 
Nico Madysa
16.07.2009  
 



El son no doof, el hacer el ya "richtig".
 
16.07.2009  
 




Nico
Madysa
Yo sehe ya, daran scheiter incluso el berühmte Druck-S-Abf-Taste ...
Doch sage veces, lo spricht doch nichts gegen una Spieleanwendung, welche zwar no en el Hintergrund rückt (HWND_TOPMOST), se aber minimieren lässt, gelle?
 
Nico Madysa
16.07.2009  
 



Komisch ausgedrückt hast Usted el garnicht "nötig". Tomar simplemente Bitmaps o. Picture-Statics y sende esta neue hPic-Handles si ellos de otra manera zeigen debería. Das Neuzeichnen es deren Problema. Oder Usted zeichnest igual el todo Oberfläche en un hPic y malst el hPic aufs hWnd.

Yo sería gern el Tarea verstehen, ¿qué es exactamente solls porque voluntad?
 
16.07.2009  
 




Nico
Madysa
Como du sicherlich ya erraten hast, una Spiel.
Das Problema es, dass Hice Gründen des Designs kurzzeitig en el deaktivierten Knöpfen incluso herummalen muss. Bisher war el problema, dass el Teil des Bildes entonces beim nächsten Neuzeichnen natürlich weg es, deshalb el Concepto, Knopf con Bild en una Hintergrundstatic a fixieren. Doch como macht sí eben nun &SCRBMP Ärger.
 
Nico Madysa
16.07.2009  
 



>> Como du sicherlich ya erraten hast, una Spiel.

Au sí, bin esta!

Und alles sólo así algo hacer clic es?

Welchem Spiel kommts al nähesten?
 
16.07.2009  
 




Nico
Madysa
Diese Mischung de Minesweeper y Schiffe Versenken, en du me ya con el Updatefunktion geholfen hast. : [...] 
Yo habs bisher sólo todavía no angekündigt, porque lo en el Wettbewerb se, sobald el schlimmsten Kinderkrankheiten auskuriert son.
In el bisher hochgeladenen Versión hay auch todavía no el Hintergrundstatic, wodurch el Gezeichnete verschwindet, sobald qué darüber gleitet.
 
Nico Madysa
16.07.2009  
 



Verstehe, Yo necesariamente empfehlen simplemente el hWnd a bleiben en hay z.B. una hPic para dibujar welches el komplette Spiel enthält.

In una 2. hPic zeichnest Usted sólo el klickbaren Bereiche, cada Zona simplemente una otro Farbe. Mit una GetPixel en dieses hPic bekommt uno fix fuera, en welchen Zona (Objeto) geklickt wurde y incluso con Karenz si erwünscht.

Apéndice: Tolles Spiel!
 
16.07.2009  
 




Nico
Madysa
[...] 
Yo weiß no, si Yo correcto verstehe, qué du media. Das Spiel besteht sí gewissermaßen de zwei Hälften. In el ersten son sólo Buttons en el Spielfeld y uno juega sólo. Erst en el zweiten Hälfte, en el Solución, kommen entonces fast todos Buttons weg y el Bild se suscrito. El Randbuttons son eigentlich sólo dageblieben, porque sonst el abgefeuerten Laserstrahlen de el Nichts auftauchten. Lo sieht así simplemente toller de.
 
Nico Madysa
16.07.2009  
 




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

2.217 Views

Untitledvor 0 min.
Langer18.12.2021
H.Brill05.01.2019
AndreasS27.12.2018
E.T.20.12.2018
Más...

Themeninformationen



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