Galkov, я сам не знаю как использовать взял из проги
посылаю сообщение все работает
Wparam= номер вкладки
Lparam=не используется
прописываю в SendMessage это сообщение не компилит
Этот топик читают: Гость
Ответов: 676
Рейтинг: 5
|
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Блин, наверное ИК попроще будет, чем заморочки с доработкой SendMessage. Хотя это одно и тоже:
[code:1]Add(MainForm,2258519,168,56) { Left=20 Top=105 Width=522 Height=316 Point(onDblClick) } Add(TabControl,4564170,231,77) { Left=10 Top=5 Width=375 Height=255 Tabs=#4:1111|4:2222|4:3333| Bitmaps=[] Point(Handle) link(onChange,8323571:doEvent,[]) } Add(IndexToChanel,8323571,301,77) { Count=3 link(onEvent1,9029063:doWork1,[(352,83)(352,48)]) link(onEvent2,1313665:doWork1,[]) link(onEvent3,14576301:doWork1,[(352,97)(352,132)]) } Add(ChildPanel,1313665,371,84) { } BEGIN_SDK Add(EditMulti,12650050,3,3) { WorkCount=1 link(doWork1,11960159:doBringToFront,[(29,9)(29,125)]) } Add(Panel,11960159,56,105) { Left=20 Top=40 Width=355 Height=205 Point(doColor) Point(doBringToFront) } Add(CheckBox,9603198,91,42) { Left=90 Top=40 } END_SDK Add(ChildPanel,14576301,371,126) { } BEGIN_SDK Add(EditMulti,12650050,3,3) { WorkCount=1 link(doWork1,11960159:doBringToFront,[(29,9)(29,125)]) } Add(Panel,11960159,56,105) { Left=20 Top=40 Width=355 Height=205 Point(doColor) Point(doBringToFront) } Add(Button,16133404,98,49) { Left=95 Top=45 } END_SDK Add(ChildPanel,9029063,371,42) { } BEGIN_SDK Add(EditMulti,12650050,3,3) { WorkCount=1 link(doWork1,11960159:doBringToFront,[(29,9)(29,125)]) } Add(Panel,11960159,56,105) { Left=20 Top=40 Width=355 Height=205 Point(doColor) Point(doBringToFront) } Add(Edit,9798290,70,63) { Left=75 Top=75 } END_SDK Add(InlineCode,14028155,238,133) { WorkPoints=#9:doTCIndex| DataPoints=#6:Handle| Code=#15:unit HiAsmUnit;|0:|9:interface|0:|38:uses kol,Share,Debug,Messages,Windows;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|21: Handle:THI_Event;|53: procedure doTCIndex(var _Data:TData; Index:word);|5: end;|0:|14:implementation|32:procedure THiAsmClass.doTCIndex;|5:begin|78: SendMessage(ReadInteger(_Data,Handle,0),TCM_SETCURFOCUS,ToInteger(_Data),0);|4:end;|0:|4:end.| link(Handle,4564170:Handle,[]) } Add(Button,6728415,112,98) { Left=405 Top=30 Width=95 Height=15 Caption="1111" link(onClick,8617036:doWork1,[(156,104)(156,139)]) } Add(Button,5067833,112,140) { Left=405 Top=55 Width=95 Height=15 Caption="2222" link(onClick,8617036:doWork2,[]) } Add(Button,14426865,112,182) { Left=405 Top=85 Width=95 Height=15 Caption="3333" link(onClick,8617036:doWork3,[(156,188)(156,153)]) } Add(ChanelToIndex,8617036,168,133) { Count=3 link(onIndex,14028155:doTCIndex,[]) } [/code:1] |
|||
карма: 9 |
|
Ответов: 9906
Рейтинг: 351
|
|||
-=Dima=-, да это я так
Есть у меня какая ни то версия MSDN ..... |
|||
карма: 9 |
|
Ответов: 838
Рейтинг: 4
|
|||
А может сделаем так: pas-файл:
[code:1] unit hiTabControl; interface {$I share.inc} uses Kol,Share,Win,Windows,Messages; type THITabControl = class(THIWin) private procedure _OnChange(Obj:PObj); public Arr:Array Of AnsiString; Ars:array of string; ImgLst:PImageList; _prop_Tabs:string; _prop_Buttons:boolean; _prop_HotTrack:boolean; _prop_FocusTabs:boolean; _prop_Vertical:boolean; _prop_Bottom:boolean; _prop_Icons:boolean; _prop_Border:boolean; _prop_Bitmaps:PStrListEx; _data_NewPageText:THI_Event; _data_Index:THI_Event; _event_onChange:THI_Event; procedure Init; override; procedure _work_PageInsert(var _Data:TData;Index:word); procedure _var_CurTabIndx(var _Data:TData; Index:word); procedure _var_CurTabCaption(var _Data:TData; Index:word); procedure _work_PageDelete(var _Data:TData; Index:word); procedure _var_TabCount(var _Data:TData; Index:word); procedure _work_GoToPage(var _Data:TData; Index:word); end; implementation procedure THITabControl.Init; var i:integer; Lst:PStrList; s:string; tco:TTabControlOptions; bmp:PBitmap; begin tco:=[]; if _prop_Buttons then tco:=[tcoButtons]; if _prop_HotTrack then include(tco,tcoHotTrack); if _prop_FocusTabs then include(tco,tcoFocusTabs); if _prop_Vertical then include(tco,tcoVertical); if _prop_Bottom then include(tco,tcoBottom); if _prop_Border then include(tco,tcoBorder); //Ñîçäàíèå array Of AnsiString; Lst := NewStrList; Lst.text := _prop_Tabs; if Lst.Count > 0 then begin SetLength(Arr,Lst.Count); SetLength(Ars,Lst.Count); for i := 0 to Lst.Count-1 do begin Ars[i] := Lst.Items[i]; Arr[i] := PChar(Ars[i]); end; end; //Ñîçäàíèå ImageList if Assigned(_prop_Bitmaps) {and _prop_Bitmaps.Count > 0} then begin ImgLst := NewImageList(Applet); //bmp := NewBitmap(0,0); //if _prop_Icons then include(tco,tcoIconLeft); for i := 0 to _prop_Bitmaps.Count-1 do begin //bmp.Handle := _prop_Bitmaps.Objects[i]; //bmp.PixelFormat := pf24bit; //BmpTransparent(bmp); ImgLst.BlendColor := clWhite; //ImgLst.BkColor := ImgLst.BlendColor; ImgLst.ImgWidth := 16; ImgLst.ImgHeight := 16; ImgLst.Add(_prop_Bitmaps.Objects[i],i); end; end; //Ñîçäàíèå êîíòðîëà Control :=NewTabControl(FParent,Arr,tco,ImgLst,0); inherited; with Control{$ifndef F_P}^{$endif}do OnSelChange := _OnChange; end; procedure THITabControl._OnChange; begin _hi_OnEvent(_event_onChange,Control.CurIndex); end; procedure THITabControl._work_PageInsert; var s:string; begin s:=ReadString(_Data,_data_NewPageText,'); Control.TC_Insert(0,s,3); end; procedure THITabControl._work_GoToPage; var s:string; begin SendMessage(Control.Handle,TCM_SETCURFOCUS,ReadInteger(_Data,null,0),0); end; procedure THITabControl._work_PageDelete; var ind:integer; begin ind:=ReadInteger(_Data,_data_Index,0); Control.TC_Delete(ind); end; procedure THITabControl._var_CurTabIndx; begin _Data.Data_type := data_int; _Data.idata := Control.CurIndex; end; procedure THITabControl._var_CurTabCaption; begin _Data.Data_type := data_str; _Data.sdata := Control.TC_Items[Control.CurIndex]; end; procedure THITabControl._var_TabCount; begin _Data.Data_type := data_int; _Data.idata := Control.Count; end; end. [/code:1] ini-файл: [code:1] [About] Version=1.0 Author=EvilGeo [Type] Class=WinElement Info=Контроллёр страниц [Edit] Class=Tab Tabs=Tabs Color=Color [Property] ##Place=Позиция и габариты элемента @Left=Отступ элемента слева|1|0 @Top=Отступ элемента от верха|1|0 @Width=Длинна элемента|1|145 @Height=Высота элемента|1|155 ## @Align=Выравнивание элемента|14|0|caNone,caLeft,caTop,caRight,caBottom,caClient Ctl3D=При установленном False 3-х мерная рамка вокруг элемента рисоваться не будет|4|0|True,False @Font=Шрифт элемента|15 +Tabs=Определяет страницы|5| Bitmaps=Массив картинок для страниц(16-цветные рисунки)|13|11 ParentFont=Использовать шрифт родительского компонента|14|1|True,False @Visible=Элемент виден/скрыт|14|0|True,False @Enabled=Элемент разрешен/заблокирован|14|0|True,False Buttons=Кнопки или обычные страницы|14|1|True,False HotTrack=Включить подсвечивание страниц|14|1|True,False FocusTabs=Страницы с установленным фокусом ввода|14|1|True,False Vertical=Ориентация элемента на форме|14|1|True,False Border=Элемент вписанный в форму|14|1|True,False Bottom=Ориентация элемента на форма|14|1|True,False Cursor=Курсор|14|0|crDefault,crIBeam,crHandPoint,crHourGlass,crHelp, crBusy,crWait,crCross,crSize,crNo,crSizeAll,crSizeNESW,crSizeNS, crSizeNWSE, crSizeWE,crUpArrow,crPen,crCD [Methods] PageInsert=Создаёт новую страницу|1| GoToPage=Переходит на страницу с индексом из потока|1| *PageDelete=Удаляет страницу с индексом|1| *doSendToBack=Помещает элемент под всеми другими элементами формы|1| *doBringToFront=Помещает элемент над всеми другими элементами формы|1| onChange=Сoбытиe пpoиcxoдит вcякий paз пpи изменение текущей страницы|2| *onMouseDown=событие происходит всякий раз при клике в области компонента( перед событием onClick) и возвращает в поток код нажатой кнопки|2| *onMouseUp=событие происходит всякий раз при отпускание кнопки мыши и возвращает в поток код нажатой кнопки|2| *onMouseMove=Событие происходит всякий раз при перемещение окна по экрану|2| *CurTabIndx=Хpaнит индекс текущей страницы|3|int *CurTabCaption=Хpaнит название текущей страницы|3|int TabCount=Кол-во страниц|3|int *Width=Ширина картинки|3|int *Height=Высота картинки|3|int *Left=Содержит отступ элемента слева от родительского компонента|3|int *Top=Содержит отступ элемента от верха родительского компонента|3|int *Handle=Содержит идентификатор элемента|3|int NewPageText=Определяет текст новой страницы|4|str *Index=Индекс страницы для метода PageDelete|4|int [/code:1] |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Amper, проблема с SendMessage остается.
Найди на форуме про WM_COPYDATA к примеру. |
|||
карма: 9 |
|
Ответов: 838
Рейтинг: 4
|
|||
Galkov, мне лень читать , можешь кратко объяснить в чём проблема?
|
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Лень читать, лень будет и решать...
А проблему обрисовал выше (или тоже лень ?): хороший элемент, но как только захочешь им воспользоваться - фиг тебе. |
|||
карма: 9 |
|
Ответов: 838
Рейтинг: 4
|
|||
Galkov, И всё же мне не понятно: Проблема в том, что SendMessage не знает нужным сообщений или в том, что он отказывается понимать сообщения?
|
|||
карма: 0 |
|
Ответов: 676
Рейтинг: 5
|
|||
Amper, у тебя что раздвоение личности в одном посту ты используеш старый профиль в другом новый ты уж определись
и вобще зачем новый регил |
|||
карма: 1 |
|
Ответов: 838
Рейтинг: 4
|
|||
-=Dima=-, Просто я в настройках тарого профиля поставил стиль форма на black, а он нерабочий... ошибку выдавал.. я не мог на форм войти... вот и пришлось другой регистрировать... теперь-то уже всегда под старым буду... )
|
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 1 раз(а), последний 2017-03-03 09:55:13 |
|||
карма: 0 |
|
Ответов: 838
Рейтинг: 4
|
|||
CASPER_Y, С чего ты взял, что "у Ампера не получается"... Смотри выше внимательней....
|
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 1 раз(а), последний 2017-03-03 09:55:15 |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Amper, получается, это когда не просто выкладываешь файл, но еще и в правильной кодировке.
|
|||
карма: 9 |
|
Ответов: 838
Рейтинг: 4
|
|||
Galkov, подумаешь, коментарии... кто их читает...
|
|||
карма: 0 |
|