Вверх ↑
Этот топик читают: Гость
Ответов: 676
Рейтинг: 5
#16: 2005-11-06 15:56:47 ЛС | профиль | цитата
Galkov, я сам не знаю как использовать взял из проги
посылаю сообщение все работает
Wparam= номер вкладки
Lparam=не используется
прописываю в SendMessage это сообщение не компилит


карма: 1

0
Ответов: 9906
Рейтинг: 351
#17: 2005-11-06 16:03:09 ЛС | профиль | цитата
Блин, наверное ИК попроще будет, чем заморочки с доработкой 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

0
Ответов: 9906
Рейтинг: 351
#18: 2005-11-06 16:05:26 ЛС | профиль | цитата
-=Dima=-, да это я так
Есть у меня какая ни то версия MSDN .....
карма: 9

0
Ответов: 838
Рейтинг: 4
#19: 2005-11-06 17:09:04 ЛС | профиль | цитата
А может сделаем так: 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
Coder
0
Ответов: 9906
Рейтинг: 351
#20: 2005-11-06 17:23:27 ЛС | профиль | цитата
Amper, проблема с SendMessage остается.
Найди на форуме про WM_COPYDATA к примеру.
карма: 9

0
Ответов: 838
Рейтинг: 4
#21: 2005-11-06 17:28:17 ЛС | профиль | цитата
Galkov, мне лень читать , можешь кратко объяснить в чём проблема?
карма: 0
Coder
0
Ответов: 9906
Рейтинг: 351
#22: 2005-11-06 17:34:34 ЛС | профиль | цитата
Лень читать, лень будет и решать...
А проблему обрисовал выше (или тоже лень ?): хороший элемент, но как только захочешь им воспользоваться - фиг тебе.
карма: 9

0
Ответов: 838
Рейтинг: 4
#23: 2005-11-06 17:41:13 ЛС | профиль | цитата
Galkov, И всё же мне не понятно: Проблема в том, что SendMessage не знает нужным сообщений или в том, что он отказывается понимать сообщения?
карма: 0
Coder
0
Ответов: 676
Рейтинг: 5
#24: 2005-11-06 18:09:54 ЛС | профиль | цитата
Amper, у тебя что раздвоение личности в одном посту ты используеш старый профиль в другом новый ты уж определись
и вобще зачем новый регил
карма: 1

0
Ответов: 838
Рейтинг: 4
#25: 2005-11-06 18:44:41 ЛС | профиль | цитата
-=Dima=-, Просто я в настройках тарого профиля поставил стиль форма на black, а он нерабочий... ошибку выдавал.. я не мог на форм войти... вот и пришлось другой регистрировать... теперь-то уже всегда под старым буду... )
карма: 0
Coder
0
Гость
Ответов: 17029
Рейтинг: 0
#26: 2005-11-06 18:49:37 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-03 09:55:13
карма: 0

0
Ответов: 838
Рейтинг: 4
#27: 2005-11-06 19:10:10 ЛС | профиль | цитата
CASPER_Y, С чего ты взял, что "у Ампера не получается"... Смотри выше внимательней....
карма: 0
Coder
0
Гость
Ответов: 17029
Рейтинг: 0
#28: 2005-11-06 19:29:51 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-03 09:55:15
карма: 0

0
Ответов: 9906
Рейтинг: 351
#29: 2005-11-06 19:47:22 ЛС | профиль | цитата
Amper, получается, это когда не просто выкладываешь файл, но еще и в правильной кодировке.
карма: 9

0
Ответов: 838
Рейтинг: 4
#30: 2005-11-06 19:52:26 ЛС | профиль | цитата
Galkov, подумаешь, коментарии... кто их читает...
карма: 0
Coder
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)