- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
void __fastcall TForm1::ShowBits(unsigned char data)
{
if(data&0x1)ImBit0->Canvas->Brush->Color=0x0000FF00;
else ImBit0->Canvas->Brush->Color=clRed;
ImBit0->Canvas->FillRect(TRect(0,0,ImBit0->Width,ImBit0->Height));
if(data&0x2)ImBit1->Canvas->Brush->Color=0x0000FF00;
else ImBit1->Canvas->Brush->Color=clRed;
ImBit1->Canvas->FillRect(TRect(0,0,ImBit1->Width,ImBit1->Height));
if(data&0x4)ImBit2->Canvas->Brush->Color=0x0000FF00;
else ImBit2->Canvas->Brush->Color=clRed;
ImBit2->Canvas->FillRect(TRect(0,0,ImBit2->Width,ImBit2->Height));
if(data&0x8)ImBit3->Canvas->Brush->Color=0x0000FF00;
else ImBit3->Canvas->Brush->Color=clRed;
ImBit3->Canvas->FillRect(TRect(0,0,ImBit3->Width,ImBit3->Height));
if(data&0x10)ImBit4->Canvas->Brush->Color=0x0000FF00;
else ImBit4->Canvas->Brush->Color=clRed;
ImBit4->Canvas->FillRect(TRect(0,0,ImBit4->Width,ImBit4->Height));
if(data&0x20)ImBit5->Canvas->Brush->Color=0x0000FF00;
else ImBit5->Canvas->Brush->Color=clRed;
ImBit5->Canvas->FillRect(TRect(0,0,ImBit5->Width,ImBit5->Height));
if(data&0x40)ImBit6->Canvas->Brush->Color=0x0000FF00;
else ImBit6->Canvas->Brush->Color=clRed;
ImBit6->Canvas->FillRect(TRect(0,0,ImBit6->Width,ImBit6->Height));
if(data&0x80)ImBit7->Canvas->Brush->Color=0x0000FF00;
else ImBit7->Canvas->Brush->Color=clRed;
ImBit7->Canvas->FillRect(TRect(0,0,ImBit7->Width,ImBit7->Height));
}
defecate-plusplus 17.10.2011 11:29 # +8
absolut 17.10.2011 11:33 # +1
alexoy 17.10.2011 11:47 # −9
absolut 17.10.2011 11:57 # +14
alexoy 17.10.2011 11:58 # −10
upd: Я про задачу говнокод-стартера.
bugmenot 17.10.2011 14:16 # +14
2. съебать с говнокодика
absolut 17.10.2011 22:07 # −4
ohlol 17.10.2011 22:12 # +1
absolut 17.10.2011 22:14 # 0
более того - говнокод!
defecate-plusplus 17.10.2011 11:59 # +3
gegMOPO4 17.10.2011 12:13 # +1
defecate-plusplus 17.10.2011 12:31 # 0
gegMOPO4 17.10.2011 12:49 # +2
defecate-plusplus 17.10.2011 12:57 # 0
gegMOPO4 17.10.2011 13:04 # 0
Нужно просто не хачить с переполнением, а записать условие цикла как i < 8.
defecate-plusplus 17.10.2011 13:08 # 0
пришлось освежить свои познания, что в "байте" на платформе может быть не 8 бит.
и как, доводилось иметь дело с такими платформами?
defecate-plusplus 17.10.2011 13:16 # +2
bugmenot 01.03.2012 19:38 # +1
чтобы собрать быдлер, нужны броландские костыли, а они гвоздями прибиты к интелу
gegMOPO4 17.10.2011 13:24 # 0
absolut 17.10.2011 15:07 # +2
defecate-plusplus 17.10.2011 15:08 # 0
absolut 17.10.2011 15:12 # 0
defecate-plusplus 17.10.2011 15:22 # 0
absolut 17.10.2011 15:24 # 0
d_dev 17.10.2011 15:24 # +1
defecate-plusplus 17.10.2011 15:44 # 0
флеймить что круче не собираюсь, и vcl и mfc равно мерзки
d_dev 17.10.2011 16:04 # +1
а насчет того что vcl мерзка, вы ведь не знаток...
krypt 01.03.2012 14:56 # 0
A - прозрачность
Psionic 17.10.2011 14:48 # 0
d_dev 17.10.2011 14:53 # +3
ctm 17.10.2011 15:02 # +2
2. 0x0000FF00 - почему не clLime?
3. нафига индусятину писать? сразу же просится функция с двумя параметрами
4. Вместо ImBit# можно завести массив ImBit[]. тогда будет уместен цикл. В качестве альтернативы можно поюзать локально продефайненные макросы - тут это вполне уместно, код будет красивым.
5. ImBit2->Canvas->Brush->Color = (data & 0x4) ? clRed : clLime;
может еще что?
absolut 17.10.2011 15:15 # 0
ctm 18.10.2011 08:51 # 0
roman-kashitsyn 17.10.2011 15:31 # −1
Деметра негодуэ