Seite 1 von 2

ImageGadget verschwindet.

Verfasst: 19.05.2008 10:34
von Elektrolurch
Hi all

Ich lese bei meinem Programm die Einstellungen ein und berechne Anhand der Einträge die größe des Fensters und die Zahl Imges, IPFelder und Textfelder.
Dann positioniere ich alles.
Soweit klappt es auch. Wenn ich nun das Fenster minimiere und wieder herstelle ist alles an seinem Ort, nur die Images sind bis auf das letzte alle verschwunden.

Irgend einen Tipp.

Bye Andre

Re: ImageGadget verschwindet.

Verfasst: 19.05.2008 10:54
von Kiffi
Elektrolurch hat geschrieben:Irgend einen Tipp.
tritt das auch auf, wenn Du Dein Fenster (der Bereich, wo besagtes Image
liegt) kurz aus dem sichtbaren Bereich Deines Monitors schiebst und dann
wieder zurückziehst?

Wenn ja, dann sagt mir meine Glaskugel, dass Du grade dieses eine Image
nicht richtig neuzeichnest.

Grüße ... Kiffi

Verfasst: 19.05.2008 11:36
von Elektrolurch
Hi

Ich kann es zwar jetzt nicht testen aber ich glaube, dass es so ist.

Aber was mache ich falsch?
Ich erstelle die Gadgets in einer For - Next Schleife und behandle so alle gleich.

Bye Andre

Verfasst: 19.05.2008 12:13
von Kiffi
Elektrolurch hat geschrieben:Aber was mache ich falsch?
so ganz ohne Code kann Dir das wohl keiner sagen.

Grüße ... Kiffi

Verfasst: 19.05.2008 16:01
von Elektrolurch
Hi Kiffi

Also mal ein kleines Update.

Beim verschieben des Fensters bleibt alles richtig.
Hat ein anderes Fenster etwas überdeckt und gibt dann wieder den Blick frei, fehlen die Bestandteile der Bilder, die verdeckt waren.
Alle anderen Gadgets und das letzte ImageGadget werden wieder richtig angezeigt.

Code: Alles auswählen

IconX=25
IconY=25
ResizeWindow(#wolt_0, 0, 0, Breite, Hoehe)
For i = 1 To Users.l
EditorGadget(i+300, IconX, IconY-20, 120, 20) 
AddGadgetItem(i+300, 1, MacAdress(i)) 
IPAddressGadget(i+100, IconX, IconY, 120, 20)
SetGadgetState(i+100, MakeIPAddress(Val(StringField(IPAdress(i),1,".")), Val(StringField(IPAdress(i),2,".")), Val(StringField(IPAdress(i),3,".")), Val(StringField(IPAdress(i),4,".")))) 
LoadImage(0,"PC.jpg") 
ResizeImage(0, 120,120,#PB_Image_Smooth)
ImageGadget(i, IconX, IconY+21, 100, 100, ImageID(0))
ButtonGadget(i+200, IconX, IconY+140, 120, 20, User(i))
IconX = IconX + 145
If i = 6
IconX =25
IconY =220
EndIf
If i = 12
IconX =25
IconY =415
EndIf
Next
Bye Andre

Verfasst: 19.05.2008 16:10
von Kiffi
Elektrolurch hat geschrieben:

Code: Alles auswählen

LoadImage(0,"PC.jpg") 
ResizeImage(0, 120,120,#PB_Image_Smooth)
ImageGadget(i, IconX, IconY+21, 100, 100, ImageID(0))
also ich bin ja jetzt nicht so der Spezi, aber muss anstelle der 0 nicht ein i hin?

Code: Alles auswählen

LoadImage(i,"PC.jpg") 
ResizeImage(i, 120,120,#PB_Image_Smooth)
ImageGadget(i, IconX, IconY+21, 100, 100, ImageID(i))
Grüße ... Kiffi

Verfasst: 19.05.2008 16:19
von ts-soft

Code: Alles auswählen

  LoadImage(0,"PC.jpg")
  ResizeImage(0, 120,120,#PB_Image_Smooth)
Die gehören wohl nicht in die Schleife!

PS: Einrücken des Codes erhöht die Lesbarkeit, dann sieht man mit einem
Blick, das immer dasselbe Bild geladen und resized wird.

Verfasst: 19.05.2008 16:27
von Kiffi
ts-soft hat geschrieben:Die gehören wohl nicht in die Schleife!
jetzt sehe ich's auch. Ist ja immer das selbe Bild :-)

Grüße ... Kiffi

Verfasst: 19.05.2008 19:36
von Elektrolurch
Hi

Ihr habt natürlich alle recht. :oops:
Aber so ist das halt, wenn man das nur selten macht...........

Es ist schon so beabsichtigt, das ich immer das gleiche Bild lade.
Es soll eine kleine Oberfläche für ein WakeOnLanTool werden.
Am Anfang werden alle möglichen User als Offline PC dargestellt. Wenn ich dann die Adressen abgeklappert habe wird ein Bild für einen Online PC oder Notebook dafür eingeblendet. So kann man visuell gleich erkennen wer Online ist.

Natürlich mußte für die 0 das i rein.
Und ich hoffe ich habe es etwas odentliche arrangiert.

Code: Alles auswählen

;Bild aufbauen
IconX=25
IconY=25
ResizeWindow(#wolt_0, 0, 0, Breite, Hoehe)
For i = 1 To Users.l
    EditorGadget(i+100, IconX, IconY-20, 120, 20) 
    AddGadgetItem(i+100, 1, MacAdress(i)) 
    IPAddressGadget(i+200, IconX, IconY, 120, 20)
    SetGadgetState(i+200, MakeIPAddress(Val(StringField(IPAdress(i),1,".")), Val(StringField(IPAdress(i),2,".")), Val(StringField(IPAdress(i),3,".")), Val(StringField(IPAdress(i),4,".")))) 
    LoadImage(i,"PC.jpg") 
    ResizeImage(i, 120,120,#PB_Image_Smooth)
    ImageGadget(i+300, IconX, IconY+21, 100, 100, ImageID(i))
    ButtonGadget(i+400, IconX, IconY+140, 120, 20, User(i))
    IconX = IconX + 145
      If i = 6
      IconX =25
      IconY =220
      EndIf
      If i = 12
      IconX =25
      IconY =415
      EndIf
Next
Gleich mal eine Frage hinterher.
Wie kann man eigentlich einfach überprüfen ob hinter der IP ein laufender PC hängt?

Nochmal Danke für die Hilfe.

Bye Andre

Verfasst: 19.05.2008 20:14
von Kiffi
Elektrolurch hat geschrieben:Ihr habt natürlich alle recht.
heißt das im Klartext, dass Dein Image-Redraw-Problem damit behoben ist?
Elektrolurch hat geschrieben:Und ich hoffe ich habe es etwas odentliche arrangiert.
nee, nicht wirklich ;-)
Elektrolurch hat geschrieben:Wie kann man eigentlich einfach überprüfen ob hinter der IP ein laufender PC hängt?
indem Du die IP anpingst? Bei manchen Rechnern ist der Ping
allerdings abgeschaltet.

Grüße ... Kiffi