Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Оптимально сохранить большое количество кнопок [Delphi, Windows]


Дмитрий   (15.12.12 11:54

Создаю библиотеку визуальный компонентов в частности кнопок для виртуальной клавиатуры,  вот процедура:
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]

http://www.rsdn.ru/article/delphi/serialization.xml


Дмитрий   (17.12.12 03:38[3]

Это хорошо в Delphi, а в с библиотекой KOL как это работает, реализуется?


RWolf ©   (17.12.12 10:26[4]


> [3]

пардон, не обратил внимания на название форума.
в KOL это не работает.


RusSun ©   (20.12.12 19:25[5]

Здравствйте Дмитрий. У меня несколько вопросов:

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, по крайней мере у меня =)


RusSun ©   (17.01.15 07:50[10]

Вот как вариант 2 примера:
Dm3m14.rar
https://yadi.sk/d/PdnWr3Z_e3T2D
Dm4m14.rar
https://yadi.sk/d/7uPreK3Ue3T2F
Два вместе
Dm3,4m14.rar
https://yadi.sk/d/DBpYkad3e3T2H


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо