ImageGadget verschwindet.

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

ImageGadget verschwindet.

Beitrag 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
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: ImageGadget verschwindet.

Beitrag 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
a²+b²=mc²
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Beitrag 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
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Elektrolurch hat geschrieben:Aber was mache ich falsch?
so ganz ohne Code kann Dir das wohl keiner sagen.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Beitrag 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
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Beitrag 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
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Antworten