Morthawt

Utilising existing GUI code in koda.

13 posts in this topic

#1 ·  Posted (edited)

I have a program I made long ago for something but I never saved the koda file so it would make it a complete pain for me to visually tweak anything because as far as I am aware, I would have to design an entirely new GUI.

Would it be possible for you guys at AutoIt to add functionality to Koda so that you can take an existing GUI section, with while loop and cases and all and then koda would literally build it ready for tweaking and where existing things still exist and have been tweaked, it would tweak such details and keep all the existing case information and added formatting things that were manually tweaked etc?

This would be really amazing and I feel that other people would benefit from it. I can't be the only person who makes a GUI, doesn't save it and then has no problems making minor tweaks in-code but struggles like hell to go rearranging things perfectly. That is where using a GUI (koda) to make and arrange a GUI you are making, makes everything easy and pleasure to deal with.

tldr;

Example:
A friend gives me his code and wants help. The GUI is just a mess, but trying to do all the alignment and positioning all by digits in code would be a pain. I cannot just hallucinate where everything is based on pixel locations and sizes. So I would take the entire GUI chunk of code, all the form/controls/formatting functions/while loop/switch/case in it's entirety and paste it into an area of Koda and press a button. Koda would then build the GUI on the screen, placing all the controls and formatting them with the instructions that may have been added and keeps the case information as-is. Then when you make your alterations in Koda, you go to export it and it makes an entirely new export that re-makes (from scratch as if you had made this GUI from scratch) all the code for controls, size, placement etc and then also adds all the existing case code back as part of the code you then send (or manually copy/paste as I do) to Scite editor.

Is there any chance this could be implemented? I think this could help a lot of people with their own scripts and others'.

Edited by Morthawt
feature request tag

Share this post


Link to post
Share on other sites



2 minutes ago, l3ill said:

Hi Morthawt,

 

Correct me if I misunderstand, Koda has an import function that does this...

You can then save a new kxf file with your new settings.

I forgot all about that. I only ever tried it once back in the ancient past but Koda crashed so I never gave it a thought since. I will give it a try again. Thanks.

Share this post


Link to post
Share on other sites

Crashed again

WAMipvo.png

It does not like importing an AutoIt script. My idea is that Koda would import it, build the GUI and take on all the formatting and everything and then preserve everything else like the cases and all the rest of the script, so that you can export it and it would be your same old script just with your tweaked out fixed GUI.

Share this post


Link to post
Share on other sites
16 minutes ago, JohnOne said:

It's also possible ISN AutoIt Studio has import functionality.

I thought this was that cool looking (but I think abondoned) Koda replacement someone made with AutoIt it's self. But this I think is not it. Plus I do not see anything in here to do with a GUI. So I am a bit confused.

Share this post


Link to post
Share on other sites
1 minute ago, JohnOne said:

It is a complete IDE for AutoIt, and includes a GUI designer, and far from abandoned, where as koda is very much abandoned as far ad I know.

I have looked up and down and I find nothing in there about GUI or forms other than a folder on the right which looks like it is about forms but nothing is in there and the script I am using does have 2 forms in it.

Share this post


Link to post
Share on other sites
28 minutes ago, JohnOne said:

It is a complete IDE for AutoIt, and includes a GUI designer, and far from abandoned, where as koda is very much abandoned as far ad I know.

Here is a sample script I made. Originally the gui was inside a function (as the one I am working on is) but that did not work so I commented out the func and I still see no way of seeing any GUI editing capability anywhere in the entire program:

 

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>



Sleep(3000)
;~ CreateGUI()

;~ Func CreateGUI()
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 148, 81, 192, 124)
    $Button1 = GUICtrlCreateButton("Button1", 8, 8, 75, 25)
    $Input1 = GUICtrlCreateInput("Input1", 8, 40, 121, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit

        EndSwitch
    WEnd
;~ EndFunc   ;==>CreateGUI

 

Share this post


Link to post
Share on other sites

#13 ·  Posted (edited)

On 9/13/2016 at 3:42 PM, Morthawt said:

and I still see no way of seeing any GUI editing

<?xml version="1.0" encoding="windows-1251"?>
<object type="TAForm" name="Form1">
	<properties>
		<property name="Left" vt="Int16">254</property>
		<property name="Top" vt="Int16">188</property>
		<property name="Width" vt="Int16">156</property>
		<property name="Height" vt="Int8">108</property>
		<property name="Caption" vt="String">Form1</property>
		<property name="Color" vt="Ident">clBtnFace</property>
		<property name="Font.Charset" vt="Ident">DEFAULT_CHARSET</property>
		<property name="Font.Color" vt="Ident">clWindowText</property>
		<property name="Font.Height" vt="Int8">-11</property>
		<property name="Font.Name" vt="String">MS Sans Serif</property>
		<property name="Font.Style" vt="Set"/>
		<property name="OldCreateOrder" vt="True">True</property>
		<property name="Visible" vt="True">True</property>
		<property name="Style" vt="Int32">-1798701056</property>
		<property name="ExStyle" vt="Int16">256</property>
		<property name="Version" vt="String">1.04</property>
		<property name="FormOptOnEvent" vt="False">False</property>
		<property name="FormOptExpVars" vt="False">False</property>
		<property name="FormOptPopulate" vt="False">False</property>
		<property name="FormOptVarsForSet" vt="False">False</property>
		<property name="FormOptIndentChar" vt="Int8">0</property>
		<property name="FormOptIndentCount" vt="Int8">1</property>
		<property name="FormOptIndentInit" vt="Int8">0</property>
		<property name="FormOptVarScope" vt="Int8">2</property>
		<property name="Resizing" vt="Set"/>
		<property name="PixelsPerInch" vt="Int8">96</property>
		<property name="TextHeight" vt="Int8">13</property>
	</properties>
	<components>
		<object type="TAButton" name="Button1">
			<properties>
				<property name="Left" vt="Int8">8</property>
				<property name="Top" vt="Int8">8</property>
				<property name="Width" vt="Int8">75</property>
				<property name="Height" vt="Int8">25</property>
				<property name="Caption" vt="String">Button1</property>
				<property name="TabOrder" vt="Int8">0</property>
				<property name="Color" vt="Ident">clBtnFace</property>
				<property name="CtrlStyle" vt="Int32">1342373888</property>
				<property name="CtrlExStyle" vt="Int8">0</property>
				<property name="Resizing" vt="Set">DockWidth, DockHeight</property>
			</properties>
			<components/>
		</object>
		<object type="TAInput" name="Input1">
			<properties>
				<property name="Left" vt="Int8">8</property>
				<property name="Top" vt="Int8">40</property>
				<property name="Width" vt="Int8">121</property>
				<property name="Height" vt="Int8">21</property>
				<property name="TabOrder" vt="Int8">1</property>
				<property name="Text" vt="String">Input1</property>
				<property name="CtrlStyle" vt="Int32">1342374016</property>
				<property name="CtrlExStyle" vt="Int16">512</property>
				<property name="Resizing" vt="Set">DockHeight</property>
			</properties>
			<components/>
		</object>
	</components>
</object>

I don't see anything wrong or missing in Koda. Did I say that I use Koda for everything. I use Koda for everything. :D 
2016.09.16koda.png

Edited by argumentum
added the pic. to show where to import from

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Similar Content

    • krasnoshtan
      By krasnoshtan
      Hello all! Recently I wanted to create settings window for my app, but if i want to close only child window, еhen all windows are closed. 
      #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("fisrt", 385, 248, 192, 114) $Button1 = GUICtrlCreateButton("settings", 40, 8, 97, 33) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 sett() EndSwitch WEnd Func sett() $settings_window = GUICreate("settings", 380, 100, 100, 114) $exit_button = GUICtrlCreateButton("close", 34, 80, 9, 33) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE MsgBox (0, "exit", "exit") Case $exit_button Exit EndSwitch WEnd EndFunc Help please!
    • anoig
      By anoig
      Hi all, 

      First, I want to give a huge shout-out to the community. I'm completely self-taught, and have never had to actually ask a question before because the forum is that good at answering questions and explaining things. However, I'm kind of stumped here, and I've been stuck on this problem for almost a full day.

      I'm working on a script to populate drafts of deeds at work. I have the main GUI and  a function (ctrl($n) and read()) for adding fields to find and data to replace it with to an array for later use with _word_docfindreplace. All of that works. However, due to the way I have the forms set up, I need to create additional fields and info based on the data that's there. Specifically, if there's only one buyer, I need to add the field [Buyer1&2] and the data in $aArray_Base for [Buyer 1]. I also need to add a field [Buyer 2] and have a blank data set in the next column over in the array, and I need to do the same for the Seller. To this end, the function parties() sets boolean variables $2buyers and $2sellers accordingly. Then, I have buyers() and sellers() to populate the data. 

      The problem that I'm running into is that each function works... when ONLY the buyer 1 name field is filled, and when ONLY the seller 1 field is filled.

      So if I fill Buyer 1 Name and save it, the data is populated correctly. But when I fill Buyer 1 and Seller 1 name, only the buyer 1 data populates correctly. Worse, when I fill several fields, neither populate correctly. I have no idea why this happens. I've added messageboxes to debug throughout the entire process and can't pinpoint what's causing the issue. The entire script is below. The function(s) in question are buyers() and sellers(). Only Sellers() has messageboxes throughout.

      Can someone help walk me through what might be causing this and help me find a solution? Thanks a ton in advance, and sorry for the wall of text.
      -Anoig
       
    • Skeletor
      By Skeletor
      Hi Guys,
      I've been reading this post ...
      When I came accross the examples, non of them had what I was looking for.
      I basically want to "snapshot" my GUI's multiple tabs and send them into the pdf.
      A little nudge from you guys would be great.
      Im really stuck with this one, therefore I have no code.
      Lets discuss or point me in a right direction... thanks alot
       

    • FrancescoDiMuro
      By FrancescoDiMuro
      Good morning guys
      I was trying to not open another post, writing here my little issue, but seems that no one cares about, and so, I'm opening another post
      What I'm trying to do, is detect the event close sent from the virtual keyboard.
      Why?
      Because, I have an application which, when I set the focus on a textbox, if the virtual keyboard does not exist, then it is created, else, it's not created
      But, everytime I try to close the virtual keyboard, the focus remains on the textbox, and another $EN_FOCUS event it's launched and detected from my WM_COMMAND, and so, the virtual keyboard is opened again. 
      How can I solve this little "issue"? 
      I was trying to detect the event sent from the virtual keyboard, storing the handle of it in a variable, and setting:
      GUISetOnEvent($GUI_EVENT_CLOSE, "CloseVK", $hVirtualKeyboard) without any result.
      Can someone please help me?
      Thanks  
      EDIT:
      Here I'd like to see @Melba23, @water, @Danyfirex...
       
    • zetaimmersion
      By zetaimmersion
      I have 2 items (a field box and a bypass checkbox). every time the box is checked i need the field to become writable. unchecked is read only displaying some text.
      this is as far as i got as I am stuck at making it read/write toggle
      #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <EditConstants.au3> #include <WindowsConstants.au3> $hGUI = GUICreate("Test", 500, 500) Global $hCombo = GUICtrlCreateInput("", 10, 10, 200, 20, BitOR($ES_AUTOHSCROLL,$ES_READONLY)) GUICtrlSetBkColor($hCombo,0xe7e5e5) Global $cbox = GUICtrlCreateCheckbox ("", 40,50,10,20) GUICtrlSetState($cbox, $GUI_Unchecked) GUISetState() Global $sCurrCombo = "" While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $cbox If GUICtrlRead($cbox) <> $sCurrCombo Then $sCurrCombo = GUICtrlRead($cbox) GUICtrlSetStyle ($hCombo, $SS_LEFTNOWORDWRAP) GUICtrlSetBkColor($hCombo,0xFFFFFF) MsgBox(0, "Choice", "PLease enter the text") EndIf EndSwitch WEnd