Как загрузить строку в ячейку в таблице - не могу понять, блин ... :?: Вот достал нормальный рабочий пример таблички с горизонтальной и вертикальной прокруткой. Но не могу ячейки инициализировать своими строками, что и где тут нужно втыкнуть, чтобы програмно оприделить ячейке, например с координатами (3, 3) строку "Hello"? Это ж должно быть просто?!
/*****************************************************************************
*
* Created with Falch.net DeveloperStudio
* http://www.falch.net/
*
* Created : 20.11.2000 13:05:31
* Creator : Steffen
*
****************************************************************************/
#include <PalmOS.h>
#include <SysEvtMgr.h>
#include "ScrollTest.h"
#include "ScrollTest_res.h"
static Boolean frmMain_sclOne_OnRepeat(EventPtr event)
{
Int16 value, min, max, pageSize;
UInt16 scrollPos, textHeight, fieldHeight;
FormPtr form = FrmGetActiveForm();
FieldPtr field = FrmGetObjectPtr(form, FrmGetObjectIndex(form, fldOne));
ScrollBarPtr bar = FrmGetObjectPtr(form, FrmGetObjectIndex(form, sclOne));
// Get the current position of the scroll bar:
SclGetScrollBar(bar, &value, &min, &max, &pageSize);
// Get the current scroll position of the field:
FldGetScrollValues(field, &scrollPos, &textHeight, &fieldHeight);
// Scroll the field according to the scroll bar's position:
if(scrollPos > value)
FldScrollField(field, scrollPos-value, winUp);
else if(scrollPos < value)
FldScrollField(field, value-scrollPos, winDown);
return true;
}
static Boolean frmMain_fldOne_OnChanged(EventPtr event)
{
UInt16 scrollPos, textHeight, fieldHeight;
Int16 maxScrollPos;
FormPtr form = FrmGetActiveForm();
FieldPtr field = FrmGetObjectPtr(form, FrmGetObjectIndex(form, fldOne));
ScrollBarPtr bar = FrmGetObjectPtr(form, FrmGetObjectIndex(form, sclOne));
// Get the current scroll position of the field, the total number of
// lines in the field, and the number of lines visible in the field:
FldGetScrollValues(field, &scrollPos, &textHeight, &fieldHeight);
// Calculate the maximum scroll position:
if(textHeight > fieldHeight)
maxScrollPos = textHeight-fieldHeight;
else
maxScrollPos = scrollPos;
// Set the scroll bar's position:
// Use the page size fieldHeight-1; this sets the size of the scroll car,
// and gives an overlap of 1 line when page scrolling.
SclSetScrollBar(bar, scrollPos, 0, maxScrollPos, fieldHeight-1);
return true;
}
static Boolean frmMain_cmdClose_OnSelect(EventPtr event)
{
EventType e;
e.eType = appStopEvent;
EvtAddEventToQueue(&e);
return true;
}
Boolean frmMain_HandleEvent(EventPtr event)
{
FormPtr form;
Boolean handled = false;
switch (event->eType)
{
case sclRepeatEvent:
switch (event->data.sclRepeat.scrollBarID)
{
// sclOne receives an event
case sclOne:
handled = frmMain_sclOne_OnRepeat(event);
break;
}
break;
case fldChangedEvent:
switch (event->data.fldChanged.fieldID)
{
// fldOne receives an event
case fldOne:
handled = frmMain_fldOne_OnChanged(event);
break;
}
break;
case ctlSelectEvent:
switch (event->data.ctlSelect.controlID)
{
// cmdClose receives an event
case cmdClose:
handled = frmMain_cmdClose_OnSelect(event);
break;
}
break;
case frmOpenEvent:
// Repaint form on open
form = FrmGetActiveForm();
FrmDrawForm(form);
handled = true;
break;
default:
break;
}
return handled;
}