C--
-
Что интересно, некоторые кадры гифки попадают на середину перерисовки кнопок.
Это из-за того, что при использовании элемента окно становится неактивным, а потом полностью перерисовывается.
Не могу понять почему Ctrl+C / Ctrl+V не работают в С-- программах.
Может кто может помочь? Может есть у кого-то идеи?
Может кто может помочь? Может есть у кого-то идеи?
Из хаоса в космос
Ты про editbox?Leency wrote:Не могу понять почему Ctrl+C / Ctrl+V не работают в С-- программах.
Может кто может помочь? Может есть у кого-то идеи?
to infinity and beyond
Например, в Eolite Ctrl+C / Ctrl+V не работает при именовании нового файла.
Да, про editbox.
Из хаоса в космос
editbox работает только в ASCII mode, соответственно ждет коды 46, 47Leency wrote:Не могу понять почему Ctrl+C / Ctrl+V не работают в С-- программах.
Может кто может помочь? Может есть у кого-то идеи?
Last edited by Siemargl on Mon Oct 31, 2016 10:46 am, edited 1 time in total.
Ну ты хоть бы код привёл тогда.Leency wrote: Ctrl+C / Ctrl+V
Я нашел проблему.
Из хаоса в космос
Ждемс описания Я вчера пытался разобраться с этим, но не преуспел пока.Leency wrote:Я нашел проблему.
to infinity and beyond
Сутьили так
В программах использовать или так:
Code: Select all
GetKeys();
edit_box_key stdcall(#edit1);
Code: Select all
GetKeys();
SomeCodeBlaBlaBla();
SomeCodeBlaBlaBla();
EAX = key_editbox;
edit_box_key stdcall(#edit1);
Из хаоса в космос
Исправлено для всех программ С--.
Из хаоса в космос
Устав заново изобретать элемент список, сделал его паттерном SelectList.
cmm/lib/patterns/select_list.h
Теперь запилить любую программу со списком на С-- проще простого.
cmm/lib/patterns/select_list.h
Теперь запилить любую программу со списком на С-- проще простого.
- Attachments
-
-
Screenshot_1.png (62.79 KiB)Viewed 13119 times
-
Из хаоса в космос
Решил попробовать использовать вместе с С-- KolibriOS.lib(её можно взять из темы "Delphi7 examples"), а заодно и статическую libc.
Оказалось, что С-- не делает COFF, хотя
вон там http://masm32.com/board/index.php?&topi ... 9#msg66479
товарищ Emil_halim пишет
Но сконвертировть OMF->COFF это не проблема.
Есть вот эти ключи:
Но при использовании /OBJ при попытке сконвертровать ругается вот так:
Однако, другой ключ /SOBJ вполне работает.
То есть, получается, что вместе с С-- можно использовать и KolibriOS.lib, и libc, ну и что-нибудь другое тоже.
Вот некоторые примеры:
Оказалось, что С-- не делает COFF, хотя
вон там http://masm32.com/board/index.php?&topi ... 9#msg66479
товарищ Emil_halim пишет
C-- делает OMF, действительно, это можно посмотроеть, например, с помощью TDUMP.So SphinxC-- ,HJWasm , fasm always compile to Coff object file
Но сконвертировть OMF->COFF это не проблема.
Есть вот эти ключи:
Code: Select all
/SOBJ создать ведомый OBJ файл (slave)
/OBJ создать основной модуль (master)
Наверное, С-- сделал кривой объектник.fatal error LNK1178: missing MODEND record; file is invalid or corrupt
Однако, другой ключ /SOBJ вполне работает.
То есть, получается, что вместе с С-- можно использовать и KolibriOS.lib, и libc, ну и что-нибудь другое тоже.
Вот некоторые примеры:
Spoiler:
Code: Select all
/* Event Constants */
#define REDRAW_EVENT 1
#define KEY_EVENT 2
#define BUTTON_EVENT 3
/* Window Style Constants */
#define WS_SKINNED_FIXED 0x4000000
#define WS_COORD_CLIENT 0x20000000
#define WS_CAPTION 0x10000000
/* Caption Style Constants */
#define CS_MOVABLE 0
struct TButtonInput{
byte MouseButton;
word ID;
byte HiID;
};
// Import from KolibriOS.lib:
extern dword stdcall GetButton();
extern dword stdcall GetKey();
extern dword stdcall WaitEvent();
extern void stdcall BeginDraw();
extern void stdcall EndDraw();
extern void stdcall DrawWindow(int Left, Top, Right, Bottom; char* Caption; dword BackColor, Style, CapStyle);
extern void stdcall ThreadTerminate();
void Main(){
TButtonInput Button;
while(){
switch (WaitEvent()){
case BUTTON_EVENT:
Button = GetButton();
if (Button.ID == 1) ThreadTerminate();
break;
case KEY_EVENT:
GetKey();
break;
case REDRAW_EVENT:
BeginDraw();
DrawWindow(300, 200, 400, 250, "C-- with KolibriOS.lib", 0x00C0DDEE, WS_SKINNED_FIXED | WS_COORD_CLIENT | WS_CAPTION, CS_MOVABLE);
EndDraw();
break;
}
}
}
Spoiler:
Code: Select all
// Import from libc:
extern char* cdecl _strcpy(char* dst, char* src);
extern char* cdecl _strupr(char* str);
extern char* cdecl _strlwr(char* str);
// Import from KolibriOS.lib:
extern void stdcall ThreadTerminate();
extern int stdcall RunFile(char* Path, CmdLine);
#define NOTIFY_APP "/sys/@notify"
void Main(){
char* Str0 = "The String For a Testing!";
char Str1[30];
char Str2[30];
_strcpy(#Str1, Str0);
_strcpy(#Str2, Str0);
_strlwr(#Str1);
_strupr(#Str2);
RunFile(NOTIFY_APP, Str0);
RunFile(NOTIFY_APP, #Str1);
RunFile(NOTIFY_APP, #Str2);
ThreadTerminate();
}
Spoiler:
Code: Select all
// Import from libc:
extern int cdecl _atoi(char* str);
// Import from KolibriOS.lib:
extern void stdcall ThreadTerminate();
extern int stdcall CreateFile(char* Path);
extern int stdcall WriteFile(char* Path, Buffer; dword Count, LoPos, HiPos; dword* BytesWritten);
extern int stdcall RunFile(char* Path, CmdLine);
#define STR_EQUAL "Equal"
#define STR_NOT_EQUAL "Not equal"
#define FILE_PATH "/sys/!test.txt"
void Main(){
dword BytesWritten;
char* StrResult;
dword SizeOfStrResult;
CreateFile(FILE_PATH);
if (_atoi(" -100500 ") == -100500)
{
StrResult = STR_EQUAL;
SizeOfStrResult = sizeof(STR_EQUAL);
}
else
{
StrResult = STR_NOT_EQUAL;
SizeOfStrResult = sizeof(STR_NOT_EQUAL);
}
WriteFile(FILE_PATH, StrResult, SizeOfStrResult - 1, 0, 0, #BytesWritten);
RunFile("/sys/txtread", FILE_PATH);
ThreadTerminate();
}
Spoiler:
Code: Select all
// Import from libc:
extern int cdecl