Ungehemmte Zwänge

oder wie man sich mit iOSLayoutConstraints anfreundet

Für viele Xojo-iOS-Anwender ist, liest man das Forum, das AutoLayout von iOS ein Grund, regelmäßig das Kriegsfahrrad auszubuddeln. Die Ähnlichkeit der IDE bei der Gestaltung von iOS-Benutzerinterfaces mit der einer Desktop-Anwendung verleitet dazu, den gleichen Arbeitsstil zu benutzen: Steuerelement aufs Layout ziehen und erst einmal ausprobieren; Feinangleichung kann später folgen.

Was auf dem Desktop funktioniert, geht bei iOS gerne in die Hose: Die Steuerelemente stehen einfach nicht dort, wo sie stehen sollten. Rotiert man das iOS-Gerät oder schaltet im Simulator auf eines mit einem anderen Display, wird es ganz übel – AutoLayout greift ein und erzeugt einfach nicht das gewünschte Bild.

weiterlesen

Diplomatisch delegieren

Ein Anwendungsfall aus der alltäglichen Praxis: Man hat ein Auswahl-Element, sagen wir mal ein PopupMenu, und ein Ausgabeelement – vielleicht einen Canvas –, das aufgrund der Auswahl im ersteren ein passendes Resultat zeigen soll.

DelegateWinDelegate.png

Häufig geht man dann so vor, dass der Change-Event im PopupMenu den Canvas invalidiert, und in dessen Paint-Event wird dann geschaut, was im PopupMenu steht. Eine mitunter ellenlange Select Case- oder If … ElseIf – End If-Anweisung macht den Code dann zum Roman.

weiterlesen

Was tun, wenn’s klemmt?

Eine kürzliche Leserfrage (nein, ich werd mich hier nicht erneut wiederholen: Nur vielen Dank an dieser Stelle!) ist Anregung für einen neuen Grundlagenbeitrag: Wie gehe ich mit Fehlern um, und wie verhindere ich die unschöne Exception-Messagebox, die bei unverhofften Fehlern auftritt und dem Programm eine etwas unsaubere Anmutung verleihen kann?

exceptionMessage

weiterlesen

Modular gedacht

Wie ja schon des öfteren erwähnt: Ich freue mich über Feedback und Anfragen, die mir dann auch gleich Anregung für einen neuen Beitrag liefern. Um so schöner, wenn’s denn mal ganz grundlegende Fragen betrifft.

So war dies dann auch kürzlich (nunja, einen Monat ist’s schon her), als mich ein Leser fragte, wie denn mit globalen Variablen umzugehen sei. Das ist eine Frage, die insbesondere bei Umsteigern bzw. Programmierern, die mit linearen Programmiersprachen begonnen haben, häufiger auftaucht. Saß man seinerzeit z.B. vor Turbo-Pascal, kam man schwerlich drum herum, globale Variablen zu definieren, also solche, die unter ihrem Namen von überall ansprechbar waren. Der Anfang eines solchen Programms bestand gerne mal aus ellenlangen Deklarationen von Variablen, auf die die später folgenden Methoden zugreifen konnten.

weiterlesen

Listbox mit besseren Helptags

Ein Ärgernis der Xojo-Listbox, das dem Umstand geschuldet ist, dass die Listbox zwar aus nativen Steuerelementen zusammengebastelt ist, aber nicht der nativen Lösung entspricht (NSTableView z.B. auf dem Mac ist zwar ungleich leistungsfähiger, aber auch ungleich schwerer zu beherrschen), besteht darin, dass die CellHelpTags, diese kleinen, sehr praktischen Zettelchen, die beim Verweilen des Mauszeigers über einer Zelle auftauchen, dies zwar tun – aber leider ohne jede Verzögerung.

weiterlesen

Kleiner Hinweis: Raspberry Pi mit Xojo programmieren

Zeitgleich zur Veröffentlichung des Raspberry Pi-Remote-Desktop-Debuggers im Rahmen von Xojo 2017 Release 1 wurde auch ein englischsprachiges Einführungs-Handbuch für die Pi-Programmierung mit Xojo veröffentlicht. Das kleine Werk (88 Seiten) beinhaltet eine Vorstellung des Raspis, das Setup und einige Demo-Programme für den schnellen Einstieg in die Xojo-Pi-Entwicklung, natürlich auch mit Hardware-Basteleien via GPIO.

Zu finden ist es im Xojo-Entwickler-Center oder als PDF-Download.

Mit spitzer Nadel

oder Wie funktioniert das eigentlich mit den Threads?

Ein Problem, in das man beim Programmieren mit Xojo schnell mal geraten kann, sind die tight loops – Programmschleifen, die die CPU beschäftigt halten und dafür sorgen, dass das Betriebssystem keine Zeit bekommt, Veränderungen der Grafischen Benutzeroberfläche – der GUI – anzuzeigen, weil der Programmcode ihm keine Luft gibt. Das Resultat sind die üblichen Signalisierungen des Beschäftigtseins – der bunte Beachball kreiselt auf dem Mac, unter Windows wird ein Kreis neben dem Mauszeiger angezeigt. Dumm für den Benutzer, denn er ist sich unsicher, ob wirklich noch etwas passiert oder das Programm bereits ins Datennirvana übergetreten ist.

weiterlesen