3PPC.net
Старый 16.05.2008, 00:12 #1
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
Устройство: HP iPAQ H1930
Objective-C

Objective-C это язык программирования сочетающий в себе синтаксис СИ и SMALLTALK.
В его основе лежит концепция обмена сообениями между классами,что придаёт ему необыкновенную гибкость при разработке программ.
В частности это нативный рантайм не требующий никаких дополнительных библиотек!
неплохое описание дано здесь:

Скрытый текст (вы должны зарегистрироваться или войти под своим логином):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.


objCce это тулчейн для сборки программ на языке Objective-C для запуска на КПК
в данный момент это делается при помощи cygwin,для этого есть пакеты для существующего cygwin и для тех у кого cygwin ещё не стоит
Скрытый текст (вы должны зарегистрироваться или войти под своим логином):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.
tz-lom вне форума   Ответить с цитированием Цитировать выделенное
Старый 07.06.2008, 23:37 #21
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
Устройство: HP iPAQ H1930
почти допилил скроллбар,попутно модифицировав все компоненты
теперь GUIbaseWindow и все наследники имеют штатный механизм привязки к размеру окна (по умолчанию-жёстко фиксированны)
изменил логику CString и ConstObjectList для поддержания идеологии
теперь окна удаляют себя из списка наследования,получили метод free-полностью динамический цикл жизни окна
api.tar.gz
tz-lom вне форума   Ответить с цитированием Цитировать выделенное
Старый 07.06.2008, 23:39 #22
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
Устройство: HP iPAQ H1930
да,косяк с прокруткой скролла остался,никто не подскажет что же делаю не так?
tz-lom вне форума   Ответить с цитированием Цитировать выделенное
Старый 16.06.2008, 20:47 #23
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
Устройство: HP iPAQ H1930
последняя версия АПИ
большой багфикс ;)
сейчас пишу программулину для демонстрации возможностей
api.tar.gz
tz-lom вне форума   Ответить с цитированием Цитировать выделенное
Старый 04.07.2008, 21:19 #24
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
Устройство: HP iPAQ H1930
обновил шапку ;)
tz-lom вне форума   Ответить с цитированием Цитировать выделенное
Старый 06.07.2008, 00:34 #25
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
Устройство: HP iPAQ H1930
тыксь народ,есть вопросег
добавляю к кнопарю возможность рисунка,а он зараза чёт не хочет-то текст не кажет,то рисунок,а вот почему не понятно,на мсдн вроде как сказанно мол сеть на него рисунок при отсутствии стиля и будет всё ОК,ан нет,не работает
новый гуйбаттон.м
Код:
#import "GUIapplication.h"

@implementation GUIbutton

+ create: (GUIwindow *) par : (CString *) name
{
	if(par==0) return 0;
	GUIbutton * b = [[GUIbutton alloc] init];
	b->parent = par;
	b->app = [par belongsToApplication];
	b->hwnd = CreateWindow (TEXT("BUTTON"),[name cString],WS_VISIBLE|WS_CHILD|BS_BITMAP,
		0 , 0, 0, 0,
		[par getHandle], NULL,[b->app getInstance],0);
	if(b->hwnd==0) return 0;
	[par addChild:b];
	return b;
}

- (void) onClick
{
	[id_onClick perform:sel_onClick with: self];
}

- (void) registerEvent: (int) event target:(id) target action:(SEL) action
{
	if(event==0)
	{
		id_onClick = target;
		sel_onClick = action;
	}
}

- free
{
	[parent removeChild:self];
	[super free];
}

- (void) setImage: (GUIimage *) image
{
	SendMessage(hwnd,BM_SETIMAGE,IMAGE_BITMAP,(WPARAM)[image getImageHandle]);
}

@end
гуйимейдж это контейнер HBITMAP пока без функций,контейнер работает (там нечему неработать )
вопрос в том что не так?
tz-lom вне форума   Ответить с цитированием Цитировать выделенное
Старый 08.07.2008, 23:35 #26
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
Устройство: HP iPAQ H1930
небольшая программа:
Код:
#import "GUIapplication.h"
#import "SYSregistry.h"
#import "resource.h"

/*///////// прём на пролом
DWORD
SetSystemPowerState(
	LPCWSTR pwsSystemState,
	DWORD   StateFlags,
    	DWORD   Options
	);*/
#define POWER_STATE_RESET        (DWORD)(0x00800000)        // reset state
#define POWER_FORCE             (DWORD)(0x00001000)
///////// и точно :)

@interface Program:Object
{
	GUIapplication * app;
	GUIwindow * mainwindow;
	/*GUIimageButton * wifi;
	GUIimageButton * cam;*/
	GUIbutton * wifi;
	GUIbutton * cam;
	GUIstatictext * wifi_t;
	GUIstatictext * cam_t;
	GUIimage * wifi_on;
	GUIimage * wifi_off;
	GUIimage * cam_on;
	GUIimage * cam_off;
	GUIbutton * apply;
	GUIbutton * exit;
	BOOL s_cam,k_cam;
	BOOL s_wifi,k_wifi;
}
- init;
- (void) onCamClick:(id) from;
- (void) onWifiClick:(id) from;
- (void) onExitClick:(id) from;
- (void) onApplyClick:(id) from;

@end

@implementation Program

- init
{
	[super init];
	app= [GUIapplication start];
	/*
	 *   Create Main Window
	 */
	mainwindow = [app createWindow:STR("arteTweaks")];
	wifi_off = [GUIimage initFromResource:BMP_WIFI_OFF:app];
	wifi_on = [GUIimage initFromResource:BMP_WIFI_ON:app];
	cam_off = [GUIimage initFromResource:BMP_CAMERA_OFF:app];
	cam_on = [GUIimage initFromResource:BMP_CAMERA_ON:app];
	//cam = [GUIimageButton create:mainwindow];
	cam = [GUIbutton create:mainwindow:STR("Camera turned ON")];
	[cam resize:0 y:0 w:66 h:66];
	//[cam _ide_setFullAnchorInfo:((_ide_FullAnchorsInfo){ANCHORS(akMoving,akMoving,akNone,akNone),0.05,0.05,0,0})];
	[cam _ide_setFullAnchorInfo:((_ide_FullAnchorsInfo){ANCHORS(akMoving,akMoving,akMoving,akMoving),0.05,0.05,0.95,0.3})];
	[cam registerEvent:0 target:self action:@selector(onCamClick:)];
	//wifi = [GUIimageButton create:mainwindow];
	wifi = [GUIbutton create:mainwindow:STR("Wifi turned ON")];
	[wifi resize:0 y:0 w:66 h:66];
	//[wifi _ide_setFullAnchorInfo:((_ide_FullAnchorsInfo){ANCHORS(akMoving,akMoving,akNone,akNone),0.5,0.05,0,0})];
	[wifi _ide_setFullAnchorInfo:((_ide_FullAnchorsInfo){ANCHORS(akMoving,akMoving,akMoving,akMoving),0.05,0.35,0.95,0.7})];
	[wifi registerEvent:0 target:self action:@selector(onWifiClick:)];
	
	exit = [GUIbutton create:mainwindow:STR("exit")];
	[exit resize:100 y:100 w:66 h:66];
	[exit _ide_setFullAnchorInfo:((_ide_FullAnchorsInfo){ANCHORS(akMoving,akMoving,akMoving,akMoving),0.505,0.75,0.95,0.95})];
	[exit registerEvent:0 target:self action:@selector(onExitClick:)];
	
	apply = [GUIbutton create:mainwindow:STR("apply")];
	[apply _ide_setFullAnchorInfo:((_ide_FullAnchorsInfo){ANCHORS(akMoving,akMoving,akMoving,akMoving),0.05,0.75,0.495,0.95})];
	[apply registerEvent:0 target:self action:@selector(onApplyClick:)];
	
	if(([[[SYSregistry open:STR("HKLM\\Drivers\\BuiltIn\\Camera")] getString:STR("Dll"):0] compare:STR("S5K3BAFX.dll")]==YES)&&
	   ([[[SYSregistry open:STR("HKLM\\Drivers\\BuiltIn\\CameraDriver")] getString:STR("Dll"):0] compare:STR("CameraDriver.dll")]==YES))
		s_cam=YES;
	else
		s_cam=NO;
	if([[SYSregistry open:STR("HKLM\\Comm\\TNETWLN1\\Parms")] getDWORD:STR("HTCPreloadWifi"):0]==1)
		s_wifi=YES;
	else
		s_wifi=NO;
	k_wifi = s_wifi;
	k_cam = s_cam;
	if(k_wifi==YES)
		//[wifi setImage:wifi_on];
		[wifi setTitle:STR("Wifi turned ON")];
	else
		//[wifi setImage:wifi_off];
		[wifi setTitle:STR("Wifi turned OFF")];
	if(k_cam==YES)
		//[cam setImage:cam_on];
		[cam setTitle:STR("Camera turned ON")];
	else
		//[cam setImage:cam_off];
		[cam setTitle:STR("Camera turned OFF")];
	[app run];
}


- (void) onCamClick:(id) from
{
	k_cam=!k_cam;
	if(k_cam==YES)
		//[cam setImage:cam_on];
		[cam setTitle:STR("Camera turned ON")];
	else
		//[cam setImage:cam_off];
		[cam setTitle:STR("Camera turned OFF")];
}

- (void) onWifiClick:(id) from
{
	k_wifi=!k_wifi;
	if(k_wifi==YES)
		//[wifi setImage:wifi_on];
		[wifi setTitle:STR("Wifi turned ON")];
	else
		//[wifi setImage:wifi_off];
		[wifi setTitle:STR("Wifi turned OFF")];
}

- (void) onExitClick:(id) from
{
	[app exit];
}

- (void) onApplyClick:(id) from
{
	if(s_cam!=k_cam)
	{
		if(k_cam==YES)
		{
			[[SYSregistry open:STR("HKLM\\Drivers\\BuiltIn\\Camera")] setString:STR("S5K3BAFX.dll") to:STR("Dll")];
			[[SYSregistry open:STR("HKLM\\Drivers\\BuiltIn\\CameraDriver")] setString:STR("CameraDriver.dll") to:STR("Dll")];
		}
		else
		{
			[[SYSregistry open:STR("HKLM\\Drivers\\BuiltIn\\Camera")] deleteValue:STR("Dll")];
			[[SYSregistry open:STR("HKLM\\Drivers\\BuiltIn\\CameraDriver")] deleteValue:STR("Dll")];
		}
	}
	if(s_wifi!=k_wifi)
	{
		if(k_wifi==YES)
		{
			[[SYSregistry open:STR("HKLM\\Comm\\TNETWLN1\\Parms")] setDWORD:1 to:STR("HTCPreloadWifi")];
		}
		else
		{
			[[SYSregistry open:STR("HKLM\\Comm\\TNETWLN1\\Parms")] setDWORD:0 to:STR("HTCPreloadWifi")];
		}
	}
	if((s_wifi!=k_wifi)||(s_cam!=k_cam))
	{
		if(IDYES==MessageBox([mainwindow getHandle],TEXT("Reset?"),TEXT("Finished"),MB_YESNO|MB_ICONWARNING))
		{
			#ifdef UNDER_CE
			SetSystemPowerState(NULL,POWER_STATE_RESET, POWER_FORCE);
			#endif
		}
	}
	[app exit];
}

@end

int main(int argc,char *agrv[])
{
	Program * prog = [[Program alloc] init];
	[prog free];
	return 0;
}
tz-lom вне форума   Ответить с цитированием Цитировать выделенное
Старый 11.07.2008, 00:31 #27
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
Устройство: HP iPAQ H1930
Процесс двигается

делаю поддержку Меню,работает на ББ и не работает на КПК,т.к. это 2 совершенно разных реализации
размер файлов можно уменьшать strip ом,126 КБ для оконной программы вроде как нормально
tz-lom вне форума   Ответить с цитированием Цитировать выделенное
Старый 14.07.2008, 22:43 #28
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
tz-lom tz-lom вне форума
Former Staff
 
Регистрация: 19.06.2007
Адрес: в сети
Сообщений: 680
Репутация: 134
Устройство: HP iPAQ H1930
ГЫГЫ,нашёл ошибки в классе строки =)
ошибки довольно критические,ждёмс пока исправлю и доделаю работу с меню
(хотя я вижу кроме меня это никому не нужно, а зря)
tz-lom вне форума   Ответить с цитированием Цитировать выделенное
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Objective-C:API tz-lom Программирование под Windows Mobile 2 29.05.2008 23:24

 


Текущее время: 02:45. Часовой пояс GMT +3.


Powered by vBulletin®
Copyright ©2000 - 2017, vBulletin Solutions, Inc.