Übereinander liegende Gadgets (insb. Image und Text)

Anfängerfragen zum Programmieren mit PureBasic.
dussel
Beiträge: 49
Registriert: 15.09.2004 12:52
Wohnort: Bei Frankfurt/Main

Übereinander liegende Gadgets (insb. Image und Text)

Beitrag von dussel »

Hallo @all,

in einer Anwendung würde ich gerne auf einen grafischen Hintergrund einen Text darstellen. Ähnlich wie z.B. in diesem Screenshot:

Bild

Ich könnte nun den Text direkt in die Grafik zeichnen; dann ist der Text für mich allerdings nicht mehr änderbar. Daher würde ich gerne die Textelemente auf die Grafik legen.

Ein ersten Tests gelang es mir teilweise Gadgets auf ein Gadget zu legen. In einigen Fällen jedoch nicht; dann würde das daraufzulegende Gadget darunter gelegt :( .Wisst ihr vielleicht welche Regel ich beachten muss, damit die Darstellung zuverlässig funktioniert?

- In welcher Reihenfolge die Gadgets dargestellt werden scheint nicht relevant zu sein
- Welche PB-ID ich dem Gadget gebe scheint auch nicht relevant zu sein.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

die Z-Order von Gadgets ist anscheinend nicht vom system mitgeführt,
und wird auch in den Visual-Bla-Produkten von MS nur irgendwie emuliert.

evtl. funktioniert es in PB, wenn du alle betroffenden Gadgets in der richtigen reihenfolge refreshst.
allerdings bedeutet dass, dass du ständing mehrere events überhang abarbeiten musst.
(wäre sehr fishy insgesamt)


du könntest in einer Proc text auf eine Grafik zeichnen.
also, du führst den hintergrund als image mit.
in dem unterprogramm zeichnest du dieses image auf ein anderes,
und dann gemäß gespeicherten strings den text drüber.
wenn du jetzt den text ändern willst,
rufst du einfach die darstellungs-procedure nochmal mit dem neuen text auf.
angezeigt wird das stets aktuelle zweite image. (ziel-image der proc)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
dibro
Beiträge: 143
Registriert: 11.03.2006 12:52
Computerausstattung: Win 10 64 bit
Wohnort: Solingen

Beitrag von dibro »

ich hab das so gemacht:

Code: Alles auswählen

 AddGadgetItem(#Panel_0, -1, "Blabla")
    If LoadImage(#Img_BlaBla,"Ressourcen\BlaBla.bmp",#PB_Image_DisplayFormat)
      ResizeImage(#Img_BlaBla,720,620)
      StartDrawing(ImageOutput(#Img_BlaBla))
      FrontColor(GetSysColor_(#COLOR_3DFACE))
      Box(360,5,340,189)  ;Boxen auf denen die Texte stehen, in Farbe des Texthintergrundes
      Box(10,103,340,91)
      Box(10,405,685,185)
      StopDrawing()
      ImageGadget(#ImgGad_BlaBla,0,0,0,0,ImageID(#Img_BlaBla))  ;Bild anzeigen
      DisableGadget(#ImgGad_BlaBla,1)
    EndIf

;jetzt auf dem Image schreiben...    
    Frame3DGadget(#Frame3D_Band, 363, 5, 335, 185, "BlaBla") ;Rahmen in Boxengröße
    TextGadget(#Text_38, 373, 23, 50, 15, "Text38")
    TextGadget(#Text_39, 518, 23, 50, 15, "Text39")
........
Gruß aus Solingen, PB 6.0 Win 10 Pro
dussel
Beiträge: 49
Registriert: 15.09.2004 12:52
Wohnort: Bei Frankfurt/Main

Beitrag von dussel »

Schade, das sich Gadgets nicht übereinander legen lassen. Statt ein TextGadget auf eine Grafik zu legen, habe ich mein Vorhaben, wie von euch empfohlen, in 2D Grafikoperationen verpackt. Die Geschwindigkeit hat mich positiv überrascht. Danke nochmals.
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

du könntest auch aus PBOSL aus der SkinWin-Lib SetWinBackgroundImage() benutzen...
dann brauchste nur das image zu laden und der rest funktioniert von allein

nur bei einem textgadget wird schwer, weil man das (glaub ich) nicht auf transparent schalten kann...
müsstest halt in dem fall manuell den text zeichnen
Bild
tranquil
Beiträge: 117
Registriert: 22.09.2004 22:07
Kontaktdaten:

Re: Übereinander liegende Gadgets (insb. Image und Text)

Beitrag von tranquil »

dussel hat geschrieben:Hallo @all,

in einer Anwendung würde ich gerne auf einen grafischen Hintergrund einen Text darstellen. Ähnlich wie z.B. in diesem Screenshot:
-- snip --

Hast Du es mal mit SetParent_() probiert?
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

Beitrag von Konne »

Richtig SetParent oder am besten gleich mit CreateGadgetList() auf dem Imagegadget erstellen !
Antworten