Wieso gibt es kein ButtonImageGadget mit Text?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Wieso gibt es kein ButtonImageGadget mit Text?

Beitrag 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?
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag 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 :)
Zuletzt geändert von bobobo am 12.07.2006 17:20, insgesamt 1-mal geändert.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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"
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

Beitrag von Konne »

Webgadget!!!
Gott PC's haben echt zu viel Power oder Programmierer werden einfach dümmer.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Der Vollständigkeit halber:

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

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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^^
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Wie wäre es wenn man ganz einfach den Text auf das Image schreibt...
Klasse Idee, was? :mrgreen:
Bild
Antworten