помощь новичкам » Страница 16

-

Программирование на С++



Derail


репутация: 317
на сайте с 2005 года
сообщений: 2253

Минск

Возраст - 40

151

kolayuk, есть и другие макросы, кроме EKA2. Да и можно просто свой создать и менять его для компиляции на разные сдк.

kolayuk


репутация: 889
на сайте с 2006 года
сообщений: 575

LG Nexus 4 (LG-E960)

Санкт-Петербург

Возраст - 35

152

угу ifdef __S60_32__ для 9.3 вроде как...

Stim777


репутация:
на сайте с 1970 года
сообщений:

153

кто с RWsSprite работал? как его скрывать и показывать?

kolayuk


репутация: 889
на сайте с 2006 года
сообщений: 575

LG Nexus 4 (LG-E960)

Санкт-Петербург

Возраст - 35

154

Можно как то StatusPane'у (где значки блютуза, гарнитуры и тп) послать сигнал обновления? Смотрю класс CEikStatusPane, там нет ни DrawNow() ни Update()... 

Derail


репутация: 317
на сайте с 2005 года
сообщений: 2253

Минск

Возраст - 40

155

kolayuk, вообще-то есть в CEikStatusPane DrawNow()

kolayuk


репутация: 889
на сайте с 2006 года
сообщений: 575

LG Nexus 4 (LG-E960)

Санкт-Петербург

Возраст - 35

156

Тема почти из одних моих вопросов состоит  wink

Кому нибудь удавалось рисовать на CFbsBitmap в дебаггере?
При попытке iBitGc->DrawRect(TRect(0, 0, iBitmap->SizeInPixels().iWidth, iBitmap->SizeInPixels().iHeight)); вылазит FBSCLI 22. Причем эта паника вылетает только в дебаггере, и вообще она странная, тк в сдк сказано 

CFbsBitmap::LockHeap() has not been called prior to calling CFbsBitmap::DataAddress() (debug builds only).
 
А я не использую ни LockHeap() ни DataAddress(). Видимо они системой при рисовании используются. 

Derail


репутация: 317
на сайте с 2005 года
сообщений: 2253

Минск

Возраст - 40

157

Всегда рисовало нормально.

iOffScreenBitmap = new(ELeave) CFbsBitmap();

iOffScreenBitmap->Create(ImageSize, EColor16M);

iOffScreenBitmapDevice = CFbsBitmapDevice::NewL(iOffScreenBitmap);

iOffScreenBitmapDevice->CreateContext(iGc);



и потом в iGc рисуешь как угодно. В эмуле работает.

kolayuk


репутация: 889
на сайте с 2006 года
сообщений: 575

LG Nexus 4 (LG-E960)

Санкт-Петербург

Возраст - 35

158

Derail, странно вроде то же самое


void CCClock::ConstructL()
{
ReadSettings();

iBitmap=new (ELeave) CFbsBitmap();
iBitmap->Create(TSize(1, 1), EColor16M);
iBitDevice = CFbsBitmapDevice::NewL(iBitmap);
iBitDevice->CreateContext(iBitGc);

iMask=new (ELeave) CFbsBitmap();
iMask->Create(TSize(1, 1), EColor16M);
iMaskDevice = CFbsBitmapDevice::NewL(iMask);
iMaskDevice->CreateContext(iMaskGc);

TFontSpec MyeFontSpec (KFontArial, iSettings[2]*iSettings[2]);
MyeFontSpec.iTypeface.SetIsProportional(ETrue);
User::LeaveIfError(iMaskDevice->GetNearestFontInTwips(iFont, MyeFontSpec));

  //...

Redraw();
//...
}

void CCClock::Redraw()
{
TRgb Black(0, 0, 0);
TTime currTime;
currTime.HomeTime();
TBuf<255> time;
currTime.FormatL(time, KTimeFormat);

iBitmap->Resize(TSize(iFont->TextWidthInPixels(time), iFont->HeightInPixels()));
iMask->Resize(TSize(iFont->TextWidthInPixels(time), iFont->HeightInPixels()));

iBitGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
iBitGc->SetBrushColor(Black);
iBitGc->DrawRect(TRect(0, 0, iBitmap->SizeInPixels().iWidth, iBitmap->SizeInPixels().iHeight)); // тут вываливается паника

iMaskGc->UseFont(iFont);
iMaskGc->SetPenColor(Black);
iMaskGc->Clear();
iMaskGc->DrawText(time, TRect(0, 0, iMask->SizeInPixels().iWidth, iMask->SizeInPixels().iHeight));
}

kolayuk


репутация: 889
на сайте с 2006 года
сообщений: 575

LG Nexus 4 (LG-E960)

Санкт-Петербург

Возраст - 35

159

Вопрос такой нужно делать некоторые действия со всеми задачами. То есть с экземплярами TApaTask, думал заюзать TApaTaskList но вот досада, у него нет ни метода возвращающего массив, ни At() ни Count()... То есть даже цикл не реализовать. В вики  по теме how to retrieve task LIST вместо этого самого LIST достается просто одна задача
-------------
добавлено в 22.48: Вопрос такой нужно делать некоторые действия со всеми задачами. То есть с экземплярами TApaTask, думал заюзать TApaTaskList но вот досада, у него нет ни метода возвращающего массив, ни At() ни Count()... То есть даже цикл не реализовать. В вики  по теме how to retrieve task LIST вместо этого самого LIST достается просто одна задача. Что делать?

Stim777


репутация:
на сайте с 1970 года
сообщений:

160

а ты просто создай массив нужного типа и все)
например:
struct TMyStruct
{
TInt iX;
TInt iY;
};

RArray iArray;

struct TMyStruct db;
db.iX=iScreenShirina/2-5;
db.iY=iScreenVisota/2-5;

// Добавление в массив
for (TInt i = 0; i < iCount; i++)
{
iArray.Append( db );
}