Durchzug verhindern

Schöneres Debugging unter macOS bei penetrantem GetOpenFolderItem-Dialogfenster

Es ist ein kleines Ärgernis für Mac-Entwickler, das sich irgendwann in einem der letzten Systemupdates so um Sierra herum eingeschlichen hat: Benutzt man einen GetOpenFolderItem-Dialog und setzt dann einen Breakpoint, um den gewählten Dateipfad im Debugger zu betrachten, bleibt das Dialogfenster mit unschöner Penetranz noch geöffnet und liegt mit größter Wahrscheinlichkeit über genau dem Bereich des Bildschirms, den man eigentlich inspizieren wollte.

Im Programmablauf kann das Fenster noch auf geraume Zeit geöffnet bleiben, sofern sich eine längere Aktion mit der erhaltenen Datei anschließt. Verunsichernd für den Anwender.

GetOpenFolderItemHang.png

Der nun wirklich nicht gravierende, aber doch gerne Zeit kostende Fehler ist nicht bei Xojo zu suchen, sondern liegt an Veränderungen in Apples Grafikengines: Das System wird erst beim nächsten Bildschirmupdate Zeit finden, das Fenster zu schließen, und dieses findet erst statt, wenn das aktive Programm Prozessor-Zeit freigibt – was bei einem Break direkt nach GetOpenFolderItem bzw. einer sich anschließenden Methode noch nicht der Fall war.

Hier also ein Mini-Projekt, um schöneres Debuggen und schnelleres GUI-Verhalten zu ermöglichen. Und damit gleich ein kleiner Exkurs in relativ selten benutzte Xojo-Features wie Delegates.

weiterlesen

Bunter Listboxen!

Mit der Listbox ist das so ne Sache: Einerseits ist sie wirklich leicht bedienbar, andererseits erscheinen ihre Ausgabemöglichkeiten sehr eingeschränkt.

Ganz so klein sind sie aber nicht, denn man hat die Möglichkeit, jederzeit die Paint-Events der Listbox zu übernehmen und Hintergrund sowie Text ganz frei zu gestalten. Das verwirrt viele Neo-Xojoisten, die gerne so etwas wie FormattedText hätten. Den kann es nicht geben, denn die Zellen einer Listbox sind keine statischen Objekte. Sie werden gemalt, wenn die Listbox erkennt, dass sie sichtbar sind, und legen sich wieder als reine Daten zur Ruhe, wenn der Benutzer sie außer Sicht scrollt.

weiterlesen

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

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.