2 вопроса win-программистам C++ по билдеру (Embarcadero RAD)

markyzz

Что-то совсем от винды отвык, так непривычно и непонятно все :(
Два ламо-вопроса виндузятникам в надежде на то, что кто-то не в вижуале, а под билдером мастерит и сходу ответит.
1) у меня цельное окно билдера распалось на кучу окошек, что раздражает, шо твой пиздец. Как их соединить? у меня получилось только два маленьких соединить драг-энд-дропом, одно на другое навести (Object inspector + Structure). А дальше метод дал сбой (к верхней панели ничего не пристыковывается сколько я не тыкался)... Я в настройках нихрена не нашел, а в гугле этот запрос задать тож нихуя не знаю, как... Задавал, конечно, но ответ совсем не тот.
2 (уже чуть больше по прогерству, тож загадочная для меня херня, хотя и выглядит совсем детской Класс TBitmap. (изображение). Подскажите, как докопаться до конкретного пикселя. Ну, там RGB его получить или хоть что-нить изменить.
Заранее спасибо!

Dimon89

по первому ничего не скажу, а у TBitmap'а есть ScanLine, а дальше по указателю хоть читай, хоть пиши.

markyzz

у TBitmap'а есть ScanLine
Круто! спасибо! В гугле гуглится, во всяком случае :)
а можешь ткнуть носом в хороший пример, напоследок?

Dimon89

Круто! спасибо! В гугле гуглится, во всяком случае
а можешь ткнуть носом в хороший пример, напоследок?
Я последний раз с TBitmap работал лет 8 назад. Логика там простая как три копейки.

TBitmap b; //loaded from somewhere
int x = 10; //x coord
int y = 15; //y coord
int bitsPerPixel = 3; // b.PixelFormat == pf24bit
pRGBArray line = b[y]; //line
int r = line[x * bitsPerPixel];
int g = line[x * bitsPerPixel + 1];
int b = line[x * bitsPerPixel + 2];

Точно можно было оборачивать в TRGBTriple или обращаться по указателям, но это было ну очень давно, сейчас сходу не напишу.

sania1974

2) Bitmap.Canvas.Pixels[x,y]
либо через winapi: SetPixel, GetPixel для Bitmap.Canvas.Handle
Оставить комментарий
Имя или ник:
Комментарий: