flat assembler
Message board for the users of flat assembler.

Index > IDE Development > "Fresh" after some radical rebuild...

Goto page Previous  1, 2, 3  Next
Author
Thread Post new topic Reply to topic
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
Betov wrote:
I have not DLGITEMTEMPLATEEX in my doc, but i think i understand what the Help ID is for. Nevertheless, this does not answer to the question: "How does the user define the IDs of the Controls?... Must have...


Betov.

PS. What is the lower Windows version assuming DLGITEMTEMPLATEEX?
You have it under 95?


Of course you are right about control ID - it will be there.

About DLGITEMTEMPLATEEX, it's strange that you have not it in your docs. Here is a quote from my Win32 API reference:

Quote:
The DLGITEMTEMPLATEEX structure is not defined in any standard header file. The structure definition is provided here to explain the format of an extended template for a dialog box.

For each control in a dialog box, an extended dialog box template has a block of data that uses the DLGITEMTEMPLATEEX format to describe the control. For a description of the format of an extended dialog box template, see DLGTEMPLATEEX.

// typedef struct {
// DWORD helpID;
// DWORD exStyle;
// DWORD style;
// short x;
// short y;
// short cx;
// short cy;
// WORD id;
// sz_Or_Ord windowClass; // name or ordinal of a window class
// sz_Or_Ord title; // title string or ordinal of a resource
// WORD extraCount; // bytes of following creation data
// } DLGITEMTEMPLATEEX;


Members

helpID

Specifies the help context identifier for the control. When the system sends a WM_HELP message, it passes the helpID value in the dwContextId member of the HELPINFO structure.

dwExtendedStyle

Specifies extended styles for a window. This member is not used to create controls in dialog boxes, but applications that use dialog box templates can use it to create other types of windows.

style

Specifies the style of the control. This member can be a combination of window style values (such as WS_BORDER) and one or more of the control style values (such as BS_PUSHBUTTON and ES_LEFT).

x

Specifies the x-coordinate, in dialog box units, of the upper-left corner of the control. This coordinate is always relative to the upper-left corner of the dialog box's client area.

y

Specifies the y-coordinate, in dialog box units, of the upper-left corner of the control. This coordinate is always relative to the upper-left corner of the dialog box's client area.

cx

Specifies the width, in dialog box units, of the control.

cy

Specifies the height, in dialog box units, of the control.

id

Specifies the control identifier.

windowClass

Specifies a variable-length array of 16-bit elements that identifies the window class of the control. If the first element of this array is any value other than 0xFFFF, the system treats the array as a null-terminated Unicode string that specifies the name of a registered window class.
If the first element is 0xFFFF, the array has one additional element that specifies the ordinal value of a predefined system class. The ordinal can be one of the following atom values.

Value Meaning
0x0080 Button
0x0081 Edit
0x0082 Static
0x0083 List box
0x0084 Scroll bar
0x0085 Combo box


title

Specifies a variable-length array of 16-bit elements that contains the initial text or resource identifier of the control. If the first element of this array is 0xFFFF, the array has one additional element that specifies an ordinal value that identifies a resource, such as an icon, in an executable file. You can use a resource identifier for controls, such as static icon controls, that load and display an icon or other resource rather than text.

If the first element is any value other than 0xFFFF, the system treats the array as a null-terminated Unicode string that specifies the initial text.

extraCount

Specifies the number of bytes of creation data that follow this member. If this value is greater than zero, the creation data begins at the next DWORD boundary. This creation data can be of any size and format. The control's window procedure must be able to interpret the data. When the system creates the control, it passes a pointer to this data in the lParam parameter of the WM_CREATE message that it sends to the control.



Remarks

An extended template for a dialog box consists of a DLGTEMPLATEEX header followed by a DLGITEMTEMPLATEEX structure for each control in the dialog box.
Each DLGITEMTEMPLATEEX structure must be aligned on a DWORD boundary. The variable-length windowClass and title arrays must be aligned on WORD boundaries. The creation data array, if any, must be aligned on a DWORD boundary.
If you specify character strings in the windowClass and title arrays, you must use Unicode strings. To create code that works on both Windows NT and Windows 95, use the MultiByteToWideChar function to generate these Unicode strings.

The x, y, cx, and cy members specify values in dialog box units. You can convert these values to screen units (pixels) by using the MapDialogRect function.

See Also
CreateDialogIndirect, CreateDialogIndirectParam, CreateWindowEx, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATE, DLGTEMPLATE, DLGTEMPLATEEX, MapDialogRect, MultiByteToWideChar
Post 30 Jul 2003, 16:12
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
So, here are the source files for Fresh. So, don't laugh at me. It's just the begin. Wink

You will need my StrLib. I will atach it here. Place files from StrLib in "%include%/StrLib/" directory (or you will need to change paths in source files of Fresh).

[EDIT] Outdated version of Fresh 1.0 is removed [/EDIT]

See: http://board.flatassembler.net/topic.php?t=144 for the last version.

Enjoy:


Last edited by JohnFound on 02 Aug 2003, 11:12; edited 2 times in total
Post 30 Jul 2003, 16:19
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Blag



Joined: 04 Jul 2003
Posts: 90
Location: Perú
Blag
Hi John Found:

As i promised....i have tested FRESH on my WinXP....and guess what??? No errors or exceptions when i press the "X" to close the program Wink
The only bug, i have found (And it's not necessarily a bug - sorry my bad english Embarassed ), is that when i make a new form, i can modify it's size, but as soon as it lost it's focus....i can't do it anymore......well, i just test all the controls....all the resizes and everything is OK! Rolling Eyes

Thanx a lot for the source codes....i kinda not understand a little bit Crying or Very sad but it great to look at them and realize, that they're wonderfull piece of code.
I hope i can help you someday, keep on!

_________________
Alvaro Tejada Galindo
SinglePath games design
http://www.iespana.es/singlepath
Post 31 Jul 2003, 07:20
View user's profile Send private message MSN Messenger Reply with quote
RobotBob



Joined: 18 Jun 2003
Posts: 12
Location: USA
RobotBob
Quote:

And it's not necessarily a bug - sorry my bad english Embarassed


your english is fine, better than some native speakers lol.
Post 01 Aug 2003, 02:54
View user's profile Send private message Reply with quote
Blag



Joined: 04 Jul 2003
Posts: 90
Location: Perú
Blag
Thanx a lot RobotBob Very Happy
I try to do my best. Cool

_________________
Alvaro Tejada Galindo
SinglePath games design
http://www.iespana.es/singlepath
Post 01 Aug 2003, 06:03
View user's profile Send private message MSN Messenger Reply with quote
scientica
Retired moderator


Joined: 16 Jun 2003
Posts: 689
Location: Linköping, Sweden
scientica
JohnFound wrote:
Maybe this will attract some potential volunteers to help with the project. Because I really need help with this project, it's too big for one programmer.

I can't promiss you that I'll be able to provide help on a regular basis, but to day I got some time over and decided to play a little with you'r sources (I hope you don't mind Laughing ).
What I've done is add the lines below (at the line specified, the line number is from the original sources unless others is wirtten, sometimes unmodyfied code is include to ease teh finding of the lines (if I made some digit typo)).

So, what medival surgery and rites have I performed on the poor sources?
I've tried to get the X-button-hides-window working (and un-hiding the window when the form is selected in the proj. manager, I just can't get IsWindowVisible to work, herefore those lines are commented out)
When I use the IsWindowVisible-testing lines the hiden window won't show (it's resizers does however, perhaps the IsWindowVisible (when it works) should be somewhere in the begining of ProjManProc
.selectitem, to prevent them from showing when the window is hidden)

Code:
projmanager.asm (line 109, after ProjManProc.showsizers):
.showsizers:
        invoke  ShowWindow, [esi+TBaseWin.SizerLU], ebx
        invoke  ShowWindow, [esi+TBaseWin.SizerL],  ebx
        invoke  ShowWindow, [esi+TBaseWin.SizerLD], ebx
        invoke  ShowWindow, [esi+TBaseWin.SizerU],  ebx
        invoke  ShowWindow, [esi+TBaseWin.SizerD],  ebx
        invoke  ShowWindow, [esi+TBaseWin.SizerRU], ebx
        invoke  ShowWindow, [esi+TBaseWin.SizerR],  ebx
        invoke  ShowWindow, [esi+TBaseWin.SizerRD], ebx

        invoke  SendMessage, [hProjTree], TVM_SELECTITEM, TVGN_CARET, [esi+TBaseWin.tvItem]

; Set selected item bold.
        mov     [.tvi.item.stateMask], TVIS_BOLD
        mov     [.tvi.item.mask], TVIF_STATE
        push    [esi+TBaseWin.tvItem]
        pop     [.tvi.item.hItem]
        lea     eax, [.tvi.item]
        invoke  SendMessage, [hProjTree], TVM_SETITEM, 0, eax  

;--- scientica:
        ;assuming titForm is the image number too...
        push    edi
        sub     esp, sizeof.TVITEM
        mov     edi, esp

        push    [esi+TBaseWin.tvItem]
        pop     [edi+TVITEM.hItem]
        mov     [edi+TVITEM.mask], TVIF_IMAGE or TVIF_PARAM
        lea     eax, [edi]
        invoke  SendMessage, [hProjTree], TVM_GETITEM, 0, eax
        ;test    eax, eax
        ;jz      .error         ; TODO: add error code


        mov     eax, [edi+TVITEM.iImage]
        cmp     eax, titForm+1
        jz      byte .not_titForm
;                invoke IsWindowVisible, [esi+TBaseWin.hwnd]    ; don't work for me :/

;                jnz    byte .Visible
                       invoke   ShowWindow,[esi+TBaseWin.hwnd],SW_RESTORE

      .Visible:
      .not_titForm:

      add       esp, sizeof.TVITEM
      pop       edi
;---
  jmp     .qfalse
    


Code:
formclass.asm (line 44, FormWindowProc):
      cmp     eax, WM_SETFONT
     je      .setfont

        cmp     eax, WM_CLOSE   ; scientica
        je      .dontclose      ; scientica

.default:
     invoke  DefWindowProc, [hwnd],[wmsg],[wparam],[lparam]
      jmp     .finish

;----- WM_CLOSE ------------------------------
; Hide window instead of closing it.
.dontclose:     ; scientica
       invoke   ShowWindow, [hwnd],SW_HIDE
       xor      eax,eax
       jmp      .finish

;----- WM_SETFONT ----------------------------

    


last minute "bug", when the window that's to be hiden via the X-button is already selected in teh project manager it will show again when an other form is selected. solution: Select some other item in the list project treeview and then hit the windows X-button (selecting the window in the project manager un-hides the window).

_________________
... a professor saying: "use this proprietary software to learn computer science" is the same as English professor handing you a copy of Shakespeare and saying: "use this book to learn Shakespeare without opening the book itself.
- Bradley Kuhn
Post 01 Aug 2003, 08:45
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
Thank you Scientica. I will implement your sources as soon as possible. Maybe with some edition Smile. For example: Why to play around "sub esp, sizeof.TVITEM " when you can use local variable.

BTW: I fix [X] button problem, making the windows not to close at all. But your approach is better. Thanks.

I have a question about whole design of Fresh. Do you like current look. Because I think about making Fresh in one window. See the attachement. In the center will be source editor. What is better in your opininon. (Other members opinions are welcome too Smile )

Regards.
John Found

[EDIT]Outdated picture attachement removed.[/EDIT]


Last edited by JohnFound on 22 Sep 2003, 09:02; edited 1 time in total
Post 01 Aug 2003, 09:08
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Tommy



Joined: 17 Jun 2003
Posts: 489
Location: Norway
Tommy
Hi JohnFound!

I prefer to have everything in one window (as in FasmW).. Wink
Keep up the good work! Your tool seems to be very good and handy! Wink
So long! Take care!

Regards,
Tommy
Post 01 Aug 2003, 09:16
View user's profile Send private message Visit poster's website Reply with quote
scientica
Retired moderator


Joined: 16 Jun 2003
Posts: 689
Location: Linköping, Sweden
scientica
JohnFound wrote:
Why to play around "sub esp, sizeof.TVITEM " when you can use local variable.

Saving stack space, we don't live in a world of unlimited resources and by dynamically allocate the "locals" (what I'm doing is basically to create a local, but it's placed within the "procedure frame space"), and it's also a very quick way of keeping track of which locals are used and which are just dead code (left overs after some test, my older sources are rather full of them Rolling Eyes )
I use this technique a lot now days, it allows me to quickly allocte a small amount of memory with out needing to allocate a whole 4 kb page wiht some API, this method means, no API overhead.

Quote:
I have a question about whole design of Fresh. Do you like current look. Because I think about making Fresh in one window. See the attachement. In the center will be source editor. What is better in your opininon.

I prefer the multi window approach, since it (could) enables one to hide (close) some of the unsused tool windows, and to move around them freely so I can have clear overview of the project, or move a window that is "in the way".

fasmw, well IMO that an other kind of app, "only" a window with tabs, a menu and a workspace/writing area, Fresh however, forms, menu icon bar, project manager _window_, style _window_. Some might like to have the proj. mngr. at the bottom of the screen the style window to the right of the screen and the "main" window on the top, not easy to do if all tool windows were one big window.

_________________
... a professor saying: "use this proprietary software to learn computer science" is the same as English professor handing you a copy of Shakespeare and saying: "use this book to learn Shakespeare without opening the book itself.
- Bradley Kuhn
Post 01 Aug 2003, 10:17
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
scientica wrote:
Saving stack space, we don't live in a world of unlimited resources and by dynamically allocate the "locals" (what I'm doing is basically to create a local, but it's placed within the "procedure frame space"), and it's also a very quick way of keeping track of which locals are used and which are just dead code (left overs after some test, my older sources are rather full of them Rolling Eyes )
I use this technique a lot now days, it allows me to quickly allocte a small amount of memory with out needing to allocate a whole 4 kb page wiht some API, this method means, no API overhead.


Some misunderstood maybe. I am not talking about API memory allocation. I am talking about the same stack frame, but using "local" definitions: ( see stdcall.inc for details ) The advantage is that you have label names and you still can use the stack.

Code:
proc MyProc, arg1, arg2, arg2

.local1   dd  ?    ; when you declare variables here, between "proc" and "enter" they becomes local (refered by [bp-??])
.local2   dd  ?    ; they are defined in the stack
        enter
;   ...     some code
        return
    




About Fresh look/behaviout. I simply don't know. I think about making some Drag&Dock engine to allow users to dock the windows where they want. But let wait a little for more opinions.

Regards
Post 01 Aug 2003, 10:44
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
scientica
Retired moderator


Joined: 16 Jun 2003
Posts: 689
Location: Linköping, Sweden
scientica
JohnFound wrote:
scientica wrote:
Saving stack space, we don't live in a world of unlimited resources and by dynamically allocate the "locals" (what I'm doing is basically to create a local, but it's placed within the "procedure frame space"), and it's also a very quick way of keeping track of which locals are used and which are just dead code (left overs after some test, my older sources are rather full of them Rolling Eyes )
I use this technique a lot now days, it allows me to quickly allocte a small amount of memory with out needing to allocate a whole 4 kb page wiht some API, this method means, no API overhead.


Some misunderstood maybe. I am not talking about API memory allocation. I am talking about the same stack frame, but using "local" definitions: ( see stdcall.inc for details ) The advantage is that you have label names and you still can use the stack.

Code:
proc MyProc, arg1, arg2, arg2

.local1   dd  ?    ; when you declare variables here, between "proc" and "enter" they becomes local (refered by [bp-??])
.local2   dd  ?    ; they are defined in the stack
        enter
;   ...     some code
        return
    

The only difference with "mine" locals (compared to "real") are that they are added after the enter macro. If you wan't some name/label for "my" locals it easy done like this:
Code:
        sub     esp, sizeof.RECT
        mov     ebx, esp
        virtual at ebx
         .rect RECT
        end virtual 
...
        add     esp, sizeof.RECT    


btw, teh real loacals are referenced by [ebp-#]

Code:
you example would look like this after enter macro:

ESP+24  EBP+16  ; arg3
ESP+20  EBP+12  ; arg2
ESP+16  EBP+8   ; arg1
ESP+12  EBP+4       ; return address
ESP+8   EBP     ; saved ebp
ESP+4   EBP-4   ; local 0
ESP     EBP-8   ; local 1

what I'm doint is simply to add a local at the stack. Thus
if I "allocate" a dword like this:
  sub esp,4
  mov ebx, esp
the stack look like this:
ESP+28  EBP+16  ; arg3
ESP+24  EBP+12  ; arg2
ESP+20  EBP+8   ; arg1
ESP+16  EBP+4       ; return address
ESP+12  EBP     ; saved ebp
ESP+8   EBP-4   ; local 0
ESP+4   EBP-8   ; local 1
ESP     EBP-12  ; <--- my just "allocated" dword --->

add esp,4

the stack look like this after above:
ESP+24  EBP+16  ; arg3
ESP+20  EBP+12  ; arg2
ESP+16  EBP+8   ; arg1
ESP+12  EBP+4     ; return address
ESP+8   EBP     ; saved ebp
ESP+4   EBP-4   ; local 0
ESP     EBP-8   ; local 1
    

_________________
... a professor saying: "use this proprietary software to learn computer science" is the same as English professor handing you a copy of Shakespeare and saying: "use this book to learn Shakespeare without opening the book itself.
- Bradley Kuhn
Post 01 Aug 2003, 11:04
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
Yea, that is the same I want to say. I am agree. But, this is the point of individual style.

BTW, what you think about Drag&Dock behaviour. I hope you understand what I mean. This is when you can drag the window near the border of some other window (dock site) and draged window becomes child of the dock site window. Then you can drag the caption of the window and undock it as separate window. When the window is docked, you have visible splitters to resize it.
Post 01 Aug 2003, 11:40
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
scientica
Retired moderator


Joined: 16 Jun 2003
Posts: 689
Location: Linköping, Sweden
scientica
JohnFound wrote:
BTW, what you think about Drag&Dock behaviour. I hope you understand what I mean. This is when you can drag the window near the border of some other window (dock site) and draged window becomes child of the dock site window. Then you can drag the caption of the window and undock it as separate window. When the window is docked, you have visible splitters to resize it.

It sounds like the kind of stuff I'd put in version 2 or "Fresh XP" version, it sounds like too much cooding for the first version, but yeah, that would be usefull/cool, but as I said, too much coding for a first version. I think priority should be set on getting the app to to what it's supposed to do, the non-form.design-GUI stuff is a later head ace Confused Wink

_________________
... a professor saying: "use this proprietary software to learn computer science" is the same as English professor handing you a copy of Shakespeare and saying: "use this book to learn Shakespeare without opening the book itself.
- Bradley Kuhn
Post 01 Aug 2003, 11:55
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
scientica wrote:
It sounds like the kind of stuff I'd put in version 2 or "Fresh XP" version, it sounds like too much cooding for the first version, but yeah, that would be usefull/cool, but as I said, too much coding for a first version. I think priority should be set on getting the app to to what it's supposed to do, the non-form.design-GUI stuff is a later head ace Confused Wink


Yea, Sad (unfortunately) you are right. Sometimes I have a leaning to improve user interface more than it's necessary on the current stage. OK. End variant for version 1 will be with separate windows. Version 2 - feature to dock the separate windows as childs to the source edit window.

Now I will take the text editor. (I intend to use Privalov's AsmEdit, but I must understand how it works Smile )

Scientica, do you want to take "styles editor". It's very important, but I can't make it just now. This is the window opened when button beside "Style" or "ExStyle" edit windows is pressed. The common idea is to use ListView with check boxes to edit window Styles/ExStyles.

If someone else want to write this or any other part of Fresh, please just post a message, to avoid double work.

Regards
Post 01 Aug 2003, 12:59
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
scientica
Retired moderator


Joined: 16 Jun 2003
Posts: 689
Location: Linköping, Sweden
scientica
JohnFound wrote:
Yea, Sad (unfortunately) you are right. Sometimes I have a leaning to improve user interface more than it's necessary on the current stage. OK.

Here's a secret: I tend to do so sometime too, that's what kills my projects Wink

JohnFound wrote:
Scientica, do you want to take "styles editor". It's very important, but I can't make it just now. This is the window opened when button beside "Style" or "ExStyle" edit windows is pressed. The common idea is to use ListView with check boxes to edit window Styles/ExStyles.

I'll see what I can do. Smile

[EDIT]Hmm, some comments look like greek (bulgarian?) to me (the font I use has mapped greek chars and some math "chars") Smile
Could you please translate these lines:
\; Òîâà å íîìåð íà âèäà íà áóòîíà à íå å áèòîâà ìàñêà
\; Òîâà âå÷å å áèòîâà ìàñêà.
[/EDIT]

_________________
... a professor saying: "use this proprietary software to learn computer science" is the same as English professor handing you a copy of Shakespeare and saying: "use this book to learn Shakespeare without opening the book itself.
- Bradley Kuhn
Post 01 Aug 2003, 13:08
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
scientica wrote:

[EDIT]Hmm, some comments look like greek (bulgarian?) to me (the font I use has mapped greek chars and some math "chars") Smile
Could you please translate these lines:
\; Òîâà å íîìåð íà âèäà íà áóòîíà à íå å áèòîâà ìàñêà
\; Òîâà âå÷å å áèòîâà ìàñêà.
[/EDIT]


This is not a Greek, it's Cyrillic. You must switch to win-1251 to see them corectly. (try in the browser)
I translate these comments. Here is the fixed file.
But, this is only very very very raw draft. Smile These data structures by the idea are description of the acceptable styles for every separate class. But they not work at all now. Sad

[EDIT]Outdated attachement removed. There must be newer version. possibly in another thread.[/EDIT]


Last edited by JohnFound on 22 Sep 2003, 09:04; edited 1 time in total
Post 01 Aug 2003, 14:49
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
scientica
Retired moderator


Joined: 16 Jun 2003
Posts: 689
Location: Linköping, Sweden
scientica
I've made some major (or minor, don't know what to calss it as) changes to the WinStyle struct/macro, the bindedMask is replaced with _dsc (description). I'm currently debugging the code (the last column doesn't work when I fixed so that the other two column display data, I'll post the file as soon as I've gotten teh alst column to display the data correctly, which is soon I hope Rolling Eyes

[offtopic]btw, I don't know if it's international, but when something look like jibberish (even though one know it has some real meaning), it said that it looks like greek, thus there was an attempt to be a little pun there. /me, no comedian so you don't have to laught Wink [/offtopic]

_________________
... a professor saying: "use this proprietary software to learn computer science" is the same as English professor handing you a copy of Shakespeare and saying: "use this book to learn Shakespeare without opening the book itself.
- Bradley Kuhn
Post 01 Aug 2003, 16:00
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
scientica wrote:
I've made some major (or minor, don't know what to calss it as) changes to the WinStyle struct/macro, the bindedMask is replaced with _dsc (description). I'm currently debugging the code (the last column doesn't work when I fixed so that the other two column display data, I'll post the file as soon as I've gotten teh alst column to display the data correctly, which is soon I hope Rolling Eyes

[offtopic]btw, I don't know if it's international, but when something look like jibberish (even though one know it has some real meaning), it said that it looks like greek, thus there was an attempt to be a little pun there. /me, no comedian so you don't have to laught Wink [/offtopic]


1. Feel free to make any changes you want. It was just a 10-minutes draft.
only idea is to have list of right styles maybe with short comments about any ot them.
2. Some wrapper function will be great:
Code:

proc EditStyle, style, flags, ...whatever you need...

return edited/not edited style - depending how the user exit the window.
    


3. offtopic: I was afraid for a moment that you may think bulgarians writes using all these horrible letters. Wink
Post 01 Aug 2003, 16:13
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
scientica
Retired moderator


Joined: 16 Jun 2003
Posts: 689
Location: Linköping, Sweden
scientica
JohnFound wrote:
3. offtopic: I was afraid for a moment that you may think bulgarians writes using all these horrible letters. Wink

I didn't _know_ Bulgarian uses cyrillic, but I _thought_ you use it, now I _know_ you use it Smile

Here's a work copy (+1 hour draft Wink), I zipped it and included teh fresh compiled with it. I'll make some more equates and put them in the beginning of the file or styleedit.inc. It's safe to assume that all contolls use the common window style, shall I assume WS_EX_ styles always present too?
[EDIT]Embarassed Oops forgot to attach the files, here it is:[/EDIT]

[EDIT2]---Deleted obsolete attacment---[/EDIT2]

_________________
... a professor saying: "use this proprietary software to learn computer science" is the same as English professor handing you a copy of Shakespeare and saying: "use this book to learn Shakespeare without opening the book itself.
- Bradley Kuhn


Last edited by scientica on 01 Aug 2003, 18:05; edited 1 time in total
Post 01 Aug 2003, 16:34
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
Looks very good. With some notes:

1. You don't need to compute the length of description. Simply compute the length in compile time and put it in the field before description string.
Code:
; I am talking about this part.
  invoke  lstrlen, esi
  mov     ebx, eax
  inc     ebx
    


2. In strutils.asm there are two procedures: NumToStr and NumToStrU that I use very often to convert numbers to hex (or any other radix).

Well, keep good working.
I must go off-line.
Post 01 Aug 2003, 16:58
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2, 3  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2020, Tomasz Grysztar.

Powered by rwasa.