Seite 1 von 2

Wieso gibt es kein ButtonImageGadget mit Text?

Verfasst: 12.07.2006 13:10
von Delle
Hallo,

ich brauche einen Button mit Farbverlauf im Hintergrund,
mit ButtonImageGadget wäre das ja problemlos möglich,
allerdings kann man da ja keinen Text setzen.

Alternative wäre wohl nur den Text schon direkt auf
den Farbverlauf zu setzen (ist aber zu umständlich).

Gibt es irgendeine Alternative oder geht das wieder
nur mittels API oder irgendwelchen Hacks?

Verfasst: 12.07.2006 13:17
von AND51
Alternative ohne API:

EIn WebGadget(). Da lädst du eine HTML Site mit dem <button>-Tag rein.

Damit ist möglich, was du suchst, denn innerhalb von <button> und </button> kann alles vorkommen, was das Herz begehrt, ich weiß net wie der Brwoser das schafft. Aber das habe ich auch schon mal versucht: Es passen dann sogar EIngabefelder, Bilder, Texte und Links auf en Button. Ach ja und den Button selber kann man natürlich auch noch drücken.

Code: Alles auswählen

<button style="width:100%;height:100%;">
<img src="farbverlauf.png"><br>
Mein Text
</button>
Als *.html oder *.htm Datei speichern und du hast ein bildschirmgroßen Button, damit er das ganze Webgadget ausfüllt, inkl. Farbverlauf und Text darunter. Willst du den Wirklich auf dem Farbverlauf haben, dann positioniere den Text absolut mittels

Code: Alles auswählen

<div style="position:absolute;top:10px;left:20px;">Text</div>
Mussthalt mal ausprobieren, die Angaben sind nicht nur in Pixel möglich, also top:10px, sondern sogar in em, cm, mm! Aber nur bei modernen Brwosern.

Verfasst: 12.07.2006 13:30
von Kaeru Gaman
@AND

> WebGadget()

Ägypten???????

das is doch keine Lösung. ich glaubs ja nicht!

> ich weiß net wie der Brwoser das schafft.

na, eben mit einem unverhältnismäßigen performance-fressen.

für nen blöden bunten button ein webgadget....


wie war das in PB, liefert ein Image-Gadget auch ein Click-Event?
normal tut es das, also, windowsseitig.
einfach den neuen button als image erstellen....
nuja, auch nicht weniger unständlich.

unter VB hab ich den text extra über ein ImageButtonGadget gelegt,
aber in PB ist die zeichenreihenfolge ja nicht automatisch gesichert...


> Alternative wäre wohl nur den Text schon direkt auf
> den Farbverlauf zu setzen (ist aber zu umständlich).
das wäre die am wenigsten umständliche lösung.
mehr als 20 buttons mit farbverlauf wirst du wohl nicht haben,
das sollte also nicht das problem sein, die paar images zu erstellen.

davon ab...
gibt doch auch ne SkinWin-Lib und so scherze.. oder?

Verfasst: 12.07.2006 13:40
von bobobo
Aufwand ?

Code: Alles auswählen

Enumeration 
  #Window_0 
  #ButtonImage_0 
  #ButtonImage_1 
  #ButtonImage_2 
EndEnumeration 
Image0 = CreateImage(0,160,40) 
Image1 = CreateImage(1,160,40) 
Image2 = CreateImage(2,160,40) 
;Bilder erstellen 
For ii = 0 To 2 
  StartDrawing(ImageOutput(ii)) 
  For i=1 To 160 
    Line(i,0,1,40,RGB(255-i,255-i,255-i)) 
  Next i 
  DrawingMode(#PB_2DDrawing_Transparent)
  text.s="Knopf "+Str(ii)
  bx=(160/2)-TextWidth(text)/2
  by=40/2-TextHeight(text)/2
  DrawText(bx,by,text) 
  StopDrawing() 
Next ii 
If OpenWindow(#Window_0, 325, 41, 600, 300, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) 
  If CreateGadgetList(WindowID(#Window_0)) 
    ButtonImageGadget(#ButtonImage_0, 50, 20, 160, 40, Image0) 
    ButtonImageGadget(#ButtonImage_1, 50, 70, 160, 40, Image1) 
    ButtonImageGadget(#ButtonImage_2, 50, 120, 160, 40, Image2) 
  EndIf 
EndIf 
Repeat 
Until WaitWindowEvent() = #PB_Event_CloseWindow
und And51 gehört im See versenkt für den WebGadget-Vorschlag :)

Verfasst: 12.07.2006 13:42
von Kaeru Gaman
@bo³

stimmt.... :allright:

man muss das ja noch nich mal vorher erstellen, man kanns zur laufzeit machen.


[edit]
> und And51 gehört im See versenkt für den WebGadget-Vorschlag

der nächste schritt wäre dann, das zu automatisieren, und für jeden einzelnen button ein webgadget zu erzeugen.

lesen sie nächste woche mehr zu dem thema:
"wie zwinge ich einen Pentium X in die Knie"

Verfasst: 12.07.2006 13:51
von Konne
Webgadget!!!
Gott PC's haben echt zu viel Power oder Programmierer werden einfach dümmer.

Verfasst: 12.07.2006 14:00
von Kiffi
Der Vollständigkeit halber:

http://www.purebasic.fr/german/viewtopic.php?t=8071

Grüße ... Kiffi

Verfasst: 12.07.2006 14:16
von AND51
ja, aber warum denn? :roll:
Delle fragte nach einer Möglichkeit ohne zeichnen zu müssen, weil das seiner Meinung nach zu aufwändig wäre:
Delle hat geschrieben:Alternative wäre wohl nur den Text schon direkt auf
den Farbverlauf zu setzen (ist aber zu umständlich).
Da mir API-Mößiges nichts einfällt, fiel mir nur das ein :mrgreen: :lol:

Ich würdes natürlich selber nie so machen, aber wenn man's genau nimmt, habe ich nur die Frage beantwortet^^

Verfasst: 12.07.2006 14:48
von Kiffi
> ja, aber warum denn? :roll:

weil das komplett oversized ist. (Mal abgesehen davon, dass Du wesentlich
mehr Aufwand damit hast, die Events des WebGadgets abzufragen.)

Buttons mit Bildchen gibt's auch unter VB.Net. Trotzdem käme hier keiner auf
die Idee, Delle zu schreiben, dass er VB.Net nehmen soll.

Grüße ... Kiffi

Verfasst: 12.07.2006 15:11
von Jilocasin
Wie wäre es wenn man ganz einfach den Text auf das Image schreibt...
Klasse Idee, was? :mrgreen: