Image als Button

Hallo,

ich möchte die Sprache des Programms, beim Klick auf die jeweilige Landesflagge, wechseln .
Ich bin der Meinung, daß ich schon alles durchprobiert habe.
Entweder gibt es keinen Action event oder der Mouse-event liegt ganz woanders am Bildschirm.
Das einzige was funktioniert ist ein WebButton. Das sieht aber hässlich aus.
Nach einem Tag bin ich der Meinung, daß ich Hilfe benötige. Das Problem ist zu einfach…

Das habe ich mir als IconButton gebastelt. (Web Projekt)
Eine Klasse mit Super auf WebCanvas, die Bilder liegen in Images Ordner.
ber Menu Inspector Behavior kann man die Eigenschaft IconName sichtbar im Design Fenster machen.

als Event Definition
Event Action()

bei Event Handlers
Sub MouseDown(X As Integer, Y As Integer, Details As REALbasic.MouseEvent) Handles MouseDown

  RaiseEvent Action  

End Sub

Sub Open() Handles Open

  Cache
  Self.Refresh
  'Self.Invalidate(False)
  
End Sub

Sub Paint(g as WebGraphics) Handles Paint
    
  dim p as Picture = Self.Picture
  g.DrawPicture(p,0,0,g.Width,g.Height)
  
End Sub

bei Methoden
Private Sub Cache()

  dim fi as FolderItem = SpecialFolder.GetResource(Self.IconName + ".png") 
  Self.Picture = new WebPicture(fi)
  
End Sub

bei Properties
Attributes ( What = 1 ) Public Property IconName as String
Private Property Picture as Picture = Nil

Hmmm, also stimmt es doch; mit Xojo kann man nichts einfach machen. Nur kompliziert. Ich arbeit mich da mal rein. Danke!

Das der WebButton keine Bild Eigenschaft hat wundert mich auch.

Ich komme von Visual Basic und bin bei Xojo nur noch am suchen. Unter VB6 wre ich lngst fertig. Leider ist das vllig veraltet.

Ja das dauert ein paar Monate bis man in Xojo alles entdeckt hat.
Ich habe auch VB6 immer als Vergleich und Xojo seit letztes Jahr.

Web API 2.0 kommt ja bald, das wird vieles besser machen.

Ist Dein Projekt ein Desktop- oder ein Web-Projekt? Die Lokalisierung eines Programms erfordert normalerweise einen Neustart.

Und theoretisch sollte die im Browser eingestellte Sprache genommen werden wenn sie denn jeder einstellen würde und könnte.

Desktop:
Normalerweise (wahrscheinlich wie unter Linux und Windows mit dem Sprachpaket) erfordert der Sprachwechsel einen Neustart und wird für die gesamte Benutzeroberfläche durchgeführt: Betriebssystem UND Anwendungen.

Wenn Sie das nicht möchten, müssen Sie alles programmieren.

Haben Sie die Konstanten in der anderen Sprache eingegeben?

Haben Sie in der Dokumentation nach Möglichkeiten gesucht?

Welche Version von Xojo verwenden Sie?

@ Emile
Das ist alles viel zu kompliziert. Ich möchte nur einen Event. Wenn ich auf ein Icon clicke, dann soll der Text von “Ende” auf “Exit” geändert werden. Total simpel, aber in einer Web-Anwendung scheint das nicht machbar zu sein, oder nur über Umwege.

Ich wusste gar nicht, dass man mit VB6 Web-Anwendungen erstellen konnte.

Hast du gesehen, wie andere das tun?

Geht schon mit WinSock was aber dann mehr oder weniger HTML aus gibt und Form Daten empfangen kann.
Aber dieses WinSock kennt kein Secure Socket.

Ohmann, bitte nicht zerreden. Ich möchte nur auf ein Icon klicken können. Und das in einer Web-Anwendung. Das sind allereinfachsten Sachen!

Nimm für das Bild ein “Image Well”, das hat alle notwendigen Ereignisse.

Das mit dem Image Well kriege ich nicht hin. Es gibt keinen Action- oder Clickevent. Doubleclick ist doof. Die Mouseevents funktionieren irgendwie nicht, da die anscheinend alle auf X/Y Pos beruhen. Diese Position ist, je nach Auflösung, variabel. Natürlich könnte man die Maus-Pos abfragen und in Relation zu ImageWell Position und -breite/-höhe setzen. Aber das wäre ja lächerlich. Ich will nur auf ein Bild klicken. Ganz einfach.
Aktuell kann ich nur Segmented Buttons verwenden und das ganze mit Text gestalten.
Mit Style lässt sich nichts verändern, zumindest unter Windows.
Gibt es keine andere Möglichkeit?

Deutchland:
https://www.apple.com/de/newsroom/2020/03/new-macbook-air-has-more-to-love-and-is-now-just-999/

Franais:
https://www.apple.com/fr/newsroom/2020/03/new-macbook-air-has-more-to-love-and-is-now-just-999/

Country Selector:
https://www.apple.com/choose-country-region/

Sind Sie sicher, dass das, was Sie tun mchten, mglich ist?

@Emile Schwarz
Bitte keine Apple-Werbung zusenden! Bin Linux-User!

Wenn es nicht möglich ist, auf einen Knopf zu drücken (siehe oben), überlege ich mir die Xojo-Lizenz zurück zu geben. Das sollten dann aber ALLE machen!

Das MausDown Event kommt beim WebImageView doch nur wenn man innerhalb dessen Rechtecks was man im Designer sieht
klickt und die Koordinaten sollten relativ dazu sein also von 0,0 bis Breite,Höhe. Man braucht die doch nicht auswerten.
Aber auch bei diesem Control kann man sagen New SubClass und dort ein Event wie Action definieren und im MouseDown
mit RaiseEvent Action auslösen. Ich habe das mit dem Action Event so gemacht damit es einheitlicht ist.

Die Werbung war bestimmt ein versehen.

Koordinaten im MouseDown sind immer lokal zur Control. Emile ist schwer zu verstehen.

Ich habe das in einem Web-Projekt getestet: ja, die Koordinaten sind lokal.