-
Дмитрий (15.12.12 11:54) [0]Создаю библиотеку визуальный компонентов в частности кнопок для виртуальной клавиатуры, вот процедура:procedure TForm12.ShablonShow;//( Ser, Sender: PControl ):Boolean;
var
//ini: PIniFile;
j, i: Integer;
temp: PControl;
fileName:string;
procedure PrisvoiList(nomer: string);
var
obt: PGrushControl;
style, j: Integer;
s: array [1..5] of string;
d: array [1..40] of Integer;
dg: array [1..5] of string;
tStyle: TGRushGradientStyle;
b: TStream;
gf: PGRushData;
begin
for j := 1 to 35 do
d[j]:=Str2Int(listShablonKnopok.Values[nomer+int2str(j)]);
for j := 1 to 5 do
dg[j]:=listShablonKnopok.Values[nomer+int2str(j+35)];
Unit_Virtual_KLava_Config.Obt.Width:=d[1];
Unit_Virtual_KLava_Config.Obt.Height:=d[2];
Unit_Virtual_KLava_Config.Obt.Def_ColorFrom:= d[3];
Unit_Virtual_KLava_Config.Obt.Def_ColorTo:= d[4];
Unit_Virtual_KLava_Config.Obt.Def_ColorOuter:= d[5];
Unit_Virtual_KLava_Config.Obt.Def_ColorShadow:= d[6];
Unit_Virtual_KLava_Config.Obt.Def_ColorText:= d[7];
Unit_Virtual_KLava_Config.Obt.Def_BorderColor:= d[8];
Unit_Virtual_KLava_Config.Obt.Def_BorderWidth:= d[9];
Unit_Virtual_KLava_Config.Obt.Def_BorderRoundWidth:= d[10];
Unit_Virtual_KLava_Config.Obt.Def_BorderRoundHeight:= d[11];
Unit_Virtual_KLava_Config.Obt.Def_ShadowOffset:= d[12];
Unit_Virtual_KLava_Config.Obt.Over_ColorFrom:= d[13];
Unit_Virtual_KLava_Config.Obt.Over_ColorTo:= d[14];
Unit_Virtual_KLava_Config.Obt.Over_ColorOuter:= d[15];
Unit_Virtual_KLava_Config.Obt.Over_ColorShadow:= d[16];
Unit_Virtual_KLava_Config.Obt.Over_ColorText:= d[17];
Unit_Virtual_KLava_Config.Obt.Over_BorderColor:= d[18];
Unit_Virtual_KLava_Config.Obt.Over_BorderWidth:= d[19];
Unit_Virtual_KLava_Config.Obt.Over_BorderRoundWidth:= d[20];
Unit_Virtual_KLava_Config.Obt.Over_BorderRoundHeight:= d[21];
Unit_Virtual_KLava_Config.Obt.Over_ShadowOffset:= d[22];
Unit_Virtual_KLava_Config.Obt.Down_ColorFrom:= d[23];
Unit_Virtual_KLava_Config.Obt.Down_ColorTo:= d[24];
Unit_Virtual_KLava_Config.Obt.Down_ColorOuter:= d[25];
Unit_Virtual_KLava_Config.Obt.Down_ColorShadow:= d[26];
Unit_Virtual_KLava_Config.Obt.Down_ColorText:= d[27];
Unit_Virtual_KLava_Config.Obt.Down_BorderColor:= d[28];
Unit_Virtual_KLava_Config.Obt.Down_BorderWidth:= d[29];
Unit_Virtual_KLava_Config.Obt.Down_BorderRoundWidth:= d[30];
Unit_Virtual_KLava_Config.Obt.Down_BorderRoundHeight:= d[31];
Unit_Virtual_KLava_Config.Obt.Down_ShadowOffset:= d[32];
style:=d[33];
case style of
1: tStyle:=gsSolid;
2: tStyle:=gsVertical;
3: tStyle:=gsHorizontal;
4: tStyle:=gsDoubleVert;
5: tStyle:=gsDoubleHorz;
6: tStyle:=gsFromTopLeft;
7: tStyle:=gsFromTopRight;
end;
Unit_Virtual_KLava_Config.Obt.Down_GradientStyle:=tStyle;
style:=d[34];
case style of
1: tStyle:=gsSolid;
2: tStyle:=gsVertical;
3: tStyle:=gsHorizontal;
4: tStyle:=gsDoubleVert;
5: tStyle:=gsDoubleHorz;
6: tStyle:=gsFromTopLeft;
7: tStyle:=gsFromTopRight;
end;
Unit_Virtual_KLava_Config.Obt.Def_GradientStyle:=tStyle;
style:=d[35];
case style of
1: tStyle:=gsSolid;
2: tStyle:=gsVertical;
3: tStyle:=gsHorizontal;
4: tStyle:=gsDoubleVert;
5: tStyle:=gsDoubleHorz;
6: tStyle:=gsFromTopLeft;
7: tStyle:=gsFromTopRight;
end;
Unit_Virtual_KLava_Config.Obt.Over_GradientStyle:=tStyle;
for j := 1 to 5 do
s[j]:=dg[j];
//----считыванье шрифта
Unit_Virtual_KLava_Config.Obt.Font.FontName:=S[1];
Unit_Virtual_KLava_Config.Obt.font.Color:=Str2int(S[2]);
Unit_Virtual_KLava_Config.Obt.font.FontHeight:=Str2Int(S[3]);
if pos('SD291',s[4])<>0 then Unit_Virtual_KLava_Config.Obt.font.fontStyle:=Unit_Virtual_KLava_Config.Obt.font .fontStyle+[fsBold];
if pos('SD292',s[4])<>0 then Unit_Virtual_KLava_Config.Obt.font.fontStyle:=Unit_Virtual_KLava_Config.Obt.font .fontStyle+[fsItalic];
if pos('SD293',s[4])<>0 then Unit_Virtual_KLava_Config.Obt.font.fontStyle:=Unit_Virtual_KLava_Config.Obt.font .fontStyle+[fsUnderline];
if pos('SD294',s[4])<>0 then Unit_Virtual_KLava_Config.Obt.font.fontStyle:=Unit_Virtual_KLava_Config.Obt.font .fontStyle+[fsStrikeOut];
Unit_Virtual_KLava_Config.Obt.font.fontCharset:=Str2Int(S[5]);
//---
end;
var m: Integer;
b: PGRushData;
p, p1: PStream;
begin
//---------------Загрука библиотеки кнопок-----------
if FlagLoadKnopLib then
begin
FlagLoadKnopLib:=False ;
//----------------НАЧАЛО-----------------------------
fileName:=GetStartDir+'BiblotekKnopok.ini';
if not(FileExists(fileName)) then
exit;
listShablonKnopok.LoadFromFile(GetStartDir+'BiblotekKnopokList.ini');
m:=Str2Int(listShablonKnopok.Values['count']) ;
PrisvoiList('№ '+ Int2Str(0)+ 'в');
Obt.Left:=4;
Obt.Top:=4;
Obt.TabOrder:=-1 ;
Obt.Visible:=True;
Obt.OnClick:=TOnEvent( MakeMethod(nil, @TForm12.AddInActivShablon));
for i := 1 to m-1 do
begin
//ini.Section:='№ '+ Int2Str(i);
Obt:=NewGRushButton(ScrollBoxVisual,'№ '+ Int2Str(i)+ 'в');
PrisvoiList('№ '+ Int2Str(i)+ 'в');
// Prisvoi;
Obt.PlaceRight;
Obt.Top:=4;
Form12.Form.StatusText[0]:=PAnsiChar(Int2Str(i) + ' из '+ Int2Str(m));
Applet.ProcessPaintMessages;
Obt.OnClick:=TOnEvent( MakeMethod(nil, @TForm12.AddInActivShablon));
Obt.TabOrder:=-1 ;
Obt.Visible:=True;
end;
// ini.Free;
end;
//----------------КОНЕЦ-----------------------------
//SetFocus(Form12.EditShablonWidth.Handle);
//---------------Загрука библиотеки кнопок-----------
end;
Как более оптимально сохранять и закружат кнопки? -
QAZ9 (16.12.12 11:27) [1]в нормальных программах такого типа нет кнопок вообще, а есть 2 картинки нажатых\отжатых кнопок + простая формула определения куда ткнули
а нафига чегото там сохранять\загружать непонятно совсем -
RWolf © (16.12.12 12:03) [2]
-
Дмитрий (17.12.12 03:38) [3]Это хорошо в Delphi, а в с библиотекой KOL как это работает, реализуется?
-
RWolf © (17.12.12 10:26) [4]
> [3]
пардон, не обратил внимания на название форума.
в KOL это не работает. -
Здравствйте Дмитрий. У меня несколько вопросов:
1 Какую Delphi используете? У меня Delphi 7
2 Какую версию kol? почему спрашиваю у меня Grashconrols в новых
версиях не работает (даёт кучу ошибок) использую kol294
3 Можно ini скинуть? (думаю код из рабочей программы)
не удобно все таки и так проще сделать рабочий пример.
4 кусокcase style of
1: tStyle:=gsSolid;
2: tStyle:=gsVertical;
3: tStyle:=gsHorizontal;
4: tStyle:=gsDoubleVert;
5: tStyle:=gsDoubleHorz;
6: tStyle:=gsFromTopLeft;
7: tStyle:=gsFromTopRight;
end;
идёт три раза попробуйте два последующих из трех убрать.
5 Undeclared identifier: 'Unit_Virtual_KLava_Config'-?
это вроде тоже GRushControls в качестве формы? -
QAZ9 (24.12.12 11:36) [6]Удалено модератором
-
coolface (24.12.12 12:11) [7]Кстати, вопрос Владимиру Кладову - он сейчас на чем "сидит"?
-
QAZ9 (24.12.12 14:20) [8]Удалено модератором
-
rdnks (25.12.12 13:12) [9]2 RusSun
Странно, grush нормально работал в последних версиях KOL, по крайней мере у меня =) -
Вот как вариант 2 примера:
Dm3m14.rar
https://yadi.sk/d/PdnWr3Z_e3T2D
Dm4m14.rar
https://yadi.sk/d/7uPreK3Ue3T2F
Два вместе
Dm3,4m14.rar
https://yadi.sk/d/DBpYkad3e3T2H