Перейти к содержимому

AvaL0N

AvaL0N

Регистрация: 07.08.2008, 17:33
Offline Активность: 08.08.2008, 18:06
-----

В теме: Delphi.

07.08.2008, 21:00:50

Вот, в поддержку темы о сохаранении настроек чек-боксов :rolleyes: :
procedure SaveValues( parnt: TWinControl);
var
  i: integer;
  IniFile : TIniFile;
begin
  IniFile := TIniFile.Create(confFN);
  with parnt do
  for i:= 0 to ControlCount-1 do
	if Controls[i] is TCheckBox then
	  with (Controls[i] as TCheckBox) do
		IniFile.WriteBool( parnt.Name, Name, Checked)
	else if (Controls[i] is TPanel)or(Controls[i] is TGroupBox) then
	  SaveValues( Controls[i] as TWinControl);  
  IniFile.Free;
end;

procedure LoadValues( parnt: TWinControl);
var
  i: integer;
  IniFile : TIniFile;
begin
  IniFile := TIniFile.Create(confFN);
  with parnt do
  for i:= 0 to ControlCount-1 do
	if Controls[i] is TCheckBox then
	  with (Controls[i] as TCheckBox) do
		Checked:= IniFile.ReadBool( parnt.Name, Name, Checked)
	else if (Controls[i] is TPanel)or(Controls[i] is TGroupBox) then
	  SaveValues( Controls[i] as TWinControl);
  IniFile.Free;
end;

Можно использовать так:
Form1OnCreate:
LoadValues( Form1);
...
Form1OnClose:
SaveValues( Form1);


Сохраняет все имеющиеся на форме CheckBox'ы, в том числе находящиеся на Panel'ях и GroupBox'ах. При желании можно легко модифицировать до состояния, в котором будет сохранять все свойства (не только Checked) всех контролов (не только CheckBox'ов) :p

В теме: Delphi.

07.08.2008, 20:12:12

Ребят подскажите как можно просмотреть и изменить файл побитово

первое, что приходит на ум:
var
  buff: byte;
  blah: boolean;
...
begin
... // чтение файла в переменную типа байт
//получить  значение 5-го бита из прочитанного байта:
  asm
	mov al, buff
	and al, 00100000b
	mov blah, al
  end;
// если 5-й бит был равен еденице, значение blah- true

Или даже вот такая функция:
function ByteToBool(b: byte; const index: byte): boolean; assembler;
asm
@lb:  ror al, 1
	  dec dl
	  jnz @lb
	  and al, 1b
end;
На вход - собственно байт, и индекс бита, на выходе - значение бита

Надеюсь, все понятно. Если есть вопросы - спрашивайте

В теме: high tech for human

07.08.2008, 18:25:07

Сорри за офтом. Нет прав для создания новых тем :rolleyes: Модераторы, плз, поместите в новую тему.
Заголовок: Разработка ГИС

Пожалста, подскажите какую-нибудь базу для разработки интерактивных карт. Хочу создать ГИС для своего региона, но времени на создание ядра карты (создание индексированной карты, ее отрисовка и т.п.) совершенно нет времени. Заглянув в подобные проекты (2GIS "Дубльгис" Новосибирск, Навигатор Павлодара и некоторые другие) становится понятно, что несмотря на абсолютно разные реализации (см.пояснение), эти проэкты имеют схожее ядро интерактивной карты. Чувствуется только небольшая разница в версиях :spy: . Вывод во всех проектах производится в TPaintBox (все они писаны под RAD DELPHI/C++ Builder). В Навигаторе я заметил подключение модуля с довольно однозначным именем "MAP". В событиях методов OnPain этих PaintBox'ов происходит вызов процедуры, в которой твоиртся просто ужос :p В смысле очень много строк кода.

пояснение:
в российских разработках ДубльГИС используется ядро grym, и в качестве входа используется зипованный архив; а в Навигаторе используются различные файлы, в которых хранятся слои карты (*.map), а данные хранятся в символьныж списках (*.sps) и в отдельной базе данных msaccess. *.map файлы я никак не смог опознать. Похоже на какой-то типизированный файл записей...

В интернете ничего не нашел ;) Пожалста, подскажите, принимаются любые советы

надеюсь понятно описал проблему, сорри за оффтоп. Проблема действительно животрепещущая .".


по теме: по асму могу посоветовать только курсы Калашникова Олега, и естественно уроки Iczelion'а (на wasm.ru есть русский перевод). Асм Питера Абеля - неактуальное старье, которое, тем не менее, наверняка будет использоваться в школьных программах обучения. Из подобного российского стаффа - почитай Юрова. В интернете полных сканов/ЭВ не видел, читал только на бумаге - очень много косяков (второе издание) и введений читателя в заблуждение. И непозволительное количество воды, порой можно заснуть, читая Юрова :D

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.