Processing/ControlP5 > C++ Builder의 TMemo에 해당하는 것을 구현

운영 환경
Processing 3.1.1 on Windows 8.1 pro(64bit)
ControlP5 v2.2.6

원하는 기능



C++ Builder의 TMemo와 같이, 복수행의 텍스트 표시 기능을 갖고 싶다.
텍스트의 행수가 많아진 시점에서, 위의 행이 사라지고 새로운 행이 추가된다고 하는 기능.

Processing이나 ControlP5 관련으로 API를 찾았지만, 그러한 것을 찾을 수 없었기 때문에 구현해 보았다.

code



split()이라는 함수가 있었기 때문에 그것을 사용했다.
import controlP5.*;

String dispLabel = "";
int count = 0;

void setup() {
  size(700,400);
  frameRate(1);
}

String suppressToNLines(String srcstr, int nlines)
{
  String[] wrk = split(srcstr, '\n');
  int loop = min(wrk.length, nlines + 1);

  int strt = 0;
  if ( wrk.length == (nlines + 1) ) {
     strt = 1; 
  }

  println(loop);

  String res = "";
  for(int idx = strt; idx < loop; idx++) {
    if (res.length() > 0) {
      res = res + '\n';
    }
    res = res + wrk[idx];
  }
  return res;
}

void draw() {
  background(255);
  count++;

  if (dispLabel.length() > 0) {
    dispLabel = dispLabel + "\r\n";
  }
  dispLabel = dispLabel + str(count);
  dispLabel = dispLabel + "  3.14  2.718  6.022  1023";
  dispLabel = suppressToNLines(dispLabel, /*nlines=*/5);

  if (dispLabel.length() > 0) {
    fill(50);
    text(dispLabel, 10, 10, 700, 80);
  }
}

결과



나름대로 움직이고 있다고 생각한다.



좋은 웹페이지 즐겨찾기