Тема: Less Toolkit
Показать сообщение отдельно
Старый 25.01.2009, 23:41   #13 (Ссылка на пост)
Lester
Гаденыш
 
Аватар для Lester
Пол:
 
Активность Longevity
2/20 16/20
Today Сообщения
0/5 sssss4648
Благодарил(а): 2,442
Благодарили 5,834 раз в 2,093 постах
Галерея: 0
Вес репутации: 78 Lester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторы
Цитата:
Сообщение от TIGR Посмотреть сообщение
если мне не изменяет память - от того что это разные вещи их и разделили в vcl TPicture вроде как вообще просто компонент, который умеет показывать TImage.
в том же wx есть два класса wxBitmap, wxImage - но там идет разделение на платформозависимое и платформонезависимое( первое по сути оббертка для HBITMAP, PicHandle, GdkImage, а второе - уже честно хранит все изображение в буфере ), для билдера такое не нужно - т.к. целевая ОС одна

Google говорит, что TPicture класс для хранения изображения, а TImage - виджет, странно, что zwitter привел его в пример

Цитата:
Сообщение от TIGR Посмотреть сообщение
в vcl делать над изображениями эффекты наверное так же как и везде... если нужен эффект берешь и пишешь его
скорее всего там это через канву делается

Lester добавил 26.01.2009 в 03:57
в продолжении темы про BitmapRepository, в тулките есть большой набор предопределенных ID - например ID_BMP_CUT, ID_BMP_PRINT, ID_BMP_BACK и т.п., стандартый набор иконок для этих ID с разными размерами лежит в отдельном расширении к тулкиту( .so, .dll, .dylib ), можно использовать его( а также иметь несколько таких расширений - и выбирать тему ), можно самому загружать иконки для используемых ID, можно использовать тему иконок KDE/Gnome( в том числе и в виндовс - достаточно указать путь ) - для них есть десятки отличных тем, т.е. можно писать, например, так:

PHP код:
Menu menu;
menu.AddID_ACTION_NEW"New...", , CTRL 'N' )->SetBitmaptheBitmapRepository->GetBitmapID_BMP_NEW16 ) );
menu.AddID_ACTION_OPEN"Open..."CTRL 'O' )->SetBitmaptheBitmapRepository->GetBitmapID_BMP_OPEN16 ) );
menu.AddID_ACTION_PREVIEW"Preview..." )->SetBitmaptheBitmapRepository->GetBitmapID_BMP_PREVIEW16 ) );
menu.Popup(); 
и вообще не думать об загрузке иконок

Lester добавил 26.01.2009 в 08:52
добавил макрос - BITMAP, теперь пример выглядит так:

PHP код:
Menu menu;
menu.AddID_ACTION_NEW"New...", , CTRL 'N' )->SetBitmapBITMAPID_BMP_NEW16 ) );
menu.AddID_ACTION_OPEN"Open..."CTRL 'O' )->SetBitmapBITMAPID_BMP_OPEN16 ) );
menu.AddID_ACTION_PREVIEW"Preview..." )->SetBitmapBITMAPID_BMP_PREVIEW16 ) );
menu.Popup(); 
Lester добавил 26.01.2009 в 11:40
добавил возможность связать action с bitmap, для всех стандартных это можно включить( при старте приложения ) через:

theSystemOptions->Write( "/Actions/EnableDefaultAutoBitmaps", true );

для своих actions можно создать связку через:

AssignActionBitmap( MY_ID_ACTION_NEW, MY_ID_BMP_NEW );

пока это тестовый вариант, потом подумаю как сделать( назвать ) лучше

пример:

PHP код:
    theSystemOptions->Write"/Actions/EnableDefaultAutoBitmaps"true );

    
// Нестандартные ID
    
AssignActionBitmapvsID_ACTION_NEW_DATABASE,  vsID_BMP_NEW_DATABASE );
    
AssignActionBitmapvsID_ACTION_OPEN_DATABASEvsID_BMP_OPEN_DATABASE );
     ...

    
MenuBarbar = new MenuBarthis );
         
//////////////////////////////////////////////////////////////////////////
     // File
    
Menumenu bar->Add"File" );
    
menu->AddID_ACTION_NEW_WINDOW,               "New Window",                CTRL SHIFT 'N' );
    
menu->AddID_ACTION_CLOSE_WINDOW,             "Close Window",              CTRL SHIFT 'W' );
    
menu->AddID_ACTION_CLOSE_TAB,                "Close Tab",                   CTRL 'W' );
    
menu->AddSeparator(); //---------------------------------------------------------------------
    
menu->AddID_ACTION_SAVE_FILE,                "Save",                            CTRL 'S' );
    
menu->AddID_ACTION_SAVE_ALL_FILES,           "Save All",                   CTRL SHIFT 'S' );
    
menu->AddSeparator(); //---------------------------------------------------------------------
    
menu->AddvsID_ACTION_NEW_DATABASE,           "New Database...",           CTRL 'N' );
    
menu->AddvsID_ACTION_OPEN_DATABASE,          "Open Database...",          CTRL 'O' );
    
menu->Add( -1,                                 "Open Recent Database" );
    
menu->AddvsID_ACTION_CLOSE_DATABASE,         "Close Database",            CTRL ALT 'W' );
    
menu->AddvsID_ACTION_CLOSE_ALL_DATABASES,    "Close All Databases" );
    
menu->AddSeparator(); //---------------------------------------------------------------------
    
menu->AddID_ACTION_IMPORT,                   "Import..." );
    
menu->AddID_ACTION_EXPORT,                   "Export..." );
    
menu->AddSeparator(); //---------------------------------------------------------------------
    
MenudumpMenu menu->AddMenu(                "Dump Database..." );
    
dumpMenu->AddvsID_ACTION_DUMP_SQL,           "SQL..." );
    
dumpMenu->AddvsID_ACTION_DUMP_XML,           "XML..." );
    
MenuloadMenu menu->AddMenu(                "Load Dump..." );
    
loadMenu->AddvsID_ACTION_LOAD_SQL,           "SQL..." );
    
loadMenu->AddvsID_ACTION_LOAD_XML,           "XML..." );
    
menu->AddSeparator(); //---------------------------------------------------------------------
    
menu->AddID_ACTION_PRINT_SETUP,              "Page Setup..." );
    
menu->AddID_ACTION_PRINT,                    "Print...",                 CTRL 'P' );
    
menu->AddID_ACTION_PRINT_PREVIEW,            "Print preview" );
    
menu->AddSeparator(); //---------------------------------------------------------------------
    
menu->AddID_ACTION_QUIT,                     "Exit",                     ALT 'X' ); 
форматирование как всегда побилось
__________________
- Слава Україні! - закричали они, вместо приветствия.
- Что это за фашизм?! - возмутился журналист Гундырев. - Откуда у них столько ненависти к русским?

Последний раз редактировалось Lester, 26.01.2009 в 10:43. Причина: Добавлено сообщение
Lester вне форума  
Ответить с цитированием