Koda Gui Import

Hilfe & Unterstützung für das ISN AutoIt Studio
karlnabb
Beiträge: 4
Registriert: Fr 11. Apr 2014, 03:36
Kontaktdaten:

Koda Gui Import

Beitrag von karlnabb »

Hi Isi360,

nachdem ich das letzte Projekt bereits mit Koda begonnen und kurz vor dem Abschluss hatte,
als ich auf das AutoIt Studio gestossen bin, war eine der ersten Fragen natürlich, ob ein entsprechender
Import der *kxf-Datei möglich ist.
Ein älterer Beitrag (ich denke, war von dir, hab aber den Link nicht mehr) deutete an,
das darüber nachgedacht werde.
Wie ist denn diesbezgl. der Stand?
Hast du von einer Lösung, eigene oder fremd, Kenntnis?

Gruß,

Karl
Benutzeravatar
ISI360
Administrator
Beiträge: 322
Registriert: Fr 11. Okt 2013, 13:06
Kontaktdaten:

Re: Koda Gui Import

Beitrag von ISI360 »

Hi!

Ja es stimmt es wurde mal geplant bzw. darüber nach gedacht. Nur leider ist daraus noch nie etwas geworden.
Theoretisch ist es absolut möglich...nur ich hab leider nicht die Zeit für den Converter. :(

Also muss ich dich leider enttäuschen.
Benutzeravatar
SirWayNe
Beiträge: 17
Registriert: Sa 7. Dez 2013, 16:15
Kontaktdaten:

Re: Koda Gui Import

Beitrag von SirWayNe »

Kannst du mir ein Beispieldatei von deinem KUDA Projekt mal geben? Dann schau ich mal was sich machen lässt (via Plugin)
Benutzeravatar
ISI360
Administrator
Beiträge: 322
Registriert: Fr 11. Okt 2013, 13:06
Kontaktdaten:

Re: Koda Gui Import

Beitrag von ISI360 »

Falls du wirklich Zeit für so ein plugin hast wäre das natürlich super!

Die Dateien von Koda sind ja im XML Format gespeichert. (Sollten sich also auch ohne Probleme einlesen lassen)
Das ganze müsstest du dan in das INI (.isf) Format des Formstudios bringen.

Falls du fragen dazu hast kannst du mir gerne ne PN schreiben! ;)
Benutzeravatar
SirWayNe
Beiträge: 17
Registriert: Sa 7. Dez 2013, 16:15
Kontaktdaten:

Re: Koda Gui Import

Beitrag von SirWayNe »

Mir ist bei der Zuordnung der Farben etwas aufgefallen.

Koda bietet die Möglichkeit die Systemeigenen Farben zu verwenden. Diese können sich ja von Rechner zu Rechner unterschieden. Wenn ich allerdings in KODA den AutoIt Code generieren lasse, erzeugt der z.B. Hintergrundfarbe so:

Einstellung KODA Color: clActiveBorder

Code: Alles auswählen

GUISetBkColor(0xB4B4B4)
Richtig wäre es so:

Code: Alles auswählen

#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
GUISetBkColor("0x" & Hex(_WinAPI_GetSysColor($COLOR_ACTIVEBORDER),6))
Im ISF ist es meine ich ebenfalls nicht möglich, die Systemeigenen Farben zu verwenden. Ich kann den Converter so stellen, dass er die Farben aus KODA (z.B. clActiveBorder siehe oben) zu der jeweilis passenden _WinAPI_GetSysColor(IDENT) abspeichert. Dieses liest dann aber das ISF nicht richtig ein, da ich quasi die oben genannten Funktion anstatt eines Hex Codes im Eintrag bgcolor speicher. Das sieht dann so aus:

Code: Alles auswählen

bgcolour="0x" & Hex(_WinAPI_GetSysColor($COLOR_ACTIVEBORDER),6)
Nun haben wir foglende Möglichkeiten:
  • Ich nehme mir den aktuellen im System eingestellten Wert für die Farbe und speichere den Hex Wert dazu ab
  • Ich lasse diese Farbeinstellungen aus KODA komplett raus
  • Das ISF unterstütz für die Farbe die _WINAPI Funktion.
Letzeres wäre die sauberste Lösung, da es sich bei jedem Rechner anpasst. Das einfachste wäre die erste.

Was meint ihr?
Benutzeravatar
ISI360
Administrator
Beiträge: 322
Registriert: Fr 11. Okt 2013, 13:06
Kontaktdaten:

Re: Koda Gui Import

Beitrag von ISI360 »

Aufgrund meinen aktuellen Zeitressourcen würde das ganze einfach lassen.
Wenn ich zb. in den Key bgcolour deine Zeile einfüge würde das zu Kompatibilitätsproblemen bei älteren Versionen führen.

Ich würde es einfach so machen:

Wer es braucht kann die Zeile
GUISetBkColor("0x" & Hex(_WinAPI_GetSysColor($COLOR_ACTIVEBORDER),6))
ja im Formstudio bei der GUI bzw. Control (mit GUICtrlSetBkColor) einfach als Extracode hinzufügen.

Tipp: Wenn du die $COLOR_ACTIVEBORDER aus Koda rausbekommst kannst du sie ja gleich direkt mit deinem Converter als Extracode dem jewailigen Control hinzufügen! (INI Key: code)
Benutzeravatar
SirWayNe
Beiträge: 17
Registriert: Sa 7. Dez 2013, 16:15
Kontaktdaten:

Re: Koda Gui Import

Beitrag von SirWayNe »

Alles klar, danke.

Hab das mal so umgesetzt wie du in deinem Tipp vorgeschlagen hast.

Zwischenstand:

Einlesen KODA Files :arrow: DONE
Abspeichern ISF Files :arrow: DONE

Es fehlen mir noch ein paar Zuordnungen von Koda zu ISF, das ist aber nur noch Fleissarbeit. Interessant sind vor allem die Styles, da diese in KODA mit einem signed INT32 versehen sind, in ISF (was ich auch einfacher finde...) als jeweilige AutoIt Variable. Das muss ich jetzt noch für jedes Control anpassen, dann noch die STATE Control dazu packen und das sollte es eigentlich gewesen sein 8-)
Benutzeravatar
ISI360
Administrator
Beiträge: 322
Registriert: Fr 11. Okt 2013, 13:06
Kontaktdaten:

Re: Koda Gui Import

Beitrag von ISI360 »

Wow das ist aber schnell gegangen wenn du jetzt schon so weit bist! Ich sag jetzt schon mal danke für deine Bemühungen! ;)

Wie siehts den eigentlich mit den komplizierteren Controls aus wie Menüs zb.? (Oder lässt du die einstweil noch weg?)
Benutzeravatar
SirWayNe
Beiträge: 17
Registriert: Sa 7. Dez 2013, 16:15
Kontaktdaten:

Re: Koda Gui Import

Beitrag von SirWayNe »

die muss ich mir dann nochmal anschauen. erstmal geht es darum nur einen Button zum laufen zu bekommen, danach schaue ich mir alle Controls nach und nach an. Da ich das ganze über ein Struct gelöst habe, ist das hinzufügen weiterer Eigenschaften nicht das Problem.
Benutzeravatar
SirWayNe
Beiträge: 17
Registriert: Sa 7. Dez 2013, 16:15
Kontaktdaten:

Re: Koda Gui Import

Beitrag von SirWayNe »

So nochmal ein Zwischenbericht:

Also erstmal finde ich den Aufbau und die Verarbeitung der einzelnen Parameter im ISF besser gelöst als in KODA

Mir sind bei dem durchgehen der einzelnen Controls bereits ein paar Sachen aufgefallen, die im ISF noch fehlen. Größtenteils sind es Styles, die nicht in der Liste auftauchen. Eine genauere Auflistung schreibe ich aber noch.

Das Main Gui konvertieren klappt soweit.
Font & .Styles ect werden ebenfalls übertragen

Bereits bearbeitete und kontrollierte Controls:
Avi (das fehlt im ISF, daher nicht kontrolliert)
Button
ComboBox
CheckBox
DateTime

[EDIT]
Sind eigentlich OnEvent Funktionen im ISF vorgesehen? Ich habe nichts derartiges gefunden.
[/EDIT]
P.S.: ich überlege noch ein weiteres Plugin zu erstellen, womit man einen GUI Code mit AutoIt (ohne irgendwelche Hilfsmittel) geschrieben in das ISF Format übertragen kann. Oder gibt es da bereits etwas?
Antworten