Anonymní profil unk – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil unk – Programujte.comAnonymní profil unk – Programujte.com

 

Příspěvky odeslané z IP adresy 62.152.234.–

unik421
Java › ActionListener+MouseListener
4. 4. 2014   #188942

Tak nakoniec som to vyriesil jednoduchsie, neuvedomil som si, ze repaint() automaticky zavola paintComponent.

Teraz mam vsak iny problem. Vzdy ked znovu nakreslim bod tak sa mi ten stary "vymaze". Viem ze sa to da vyriesit cez pole bodov ktore sa bude znovu  vykreslovat ale potrebujem pridavat aj ine prvky ako obdlzniky atd a teda by som potreboval nejake efektivnejsie riesenie.

unik421
Java › ActionListener+MouseListener
4. 4. 2014   #188920

Zdravim,

pracujem na projekte(jednoduchy graficky editor) a potreboval by som poradit.

Po stlaceni buttonu (actionlistener) potrebujem aby metoda v inej triede kreslila body na mouseclick(mouselistener) a neviem ako to spojit dokopy, kedze sa pri tom este prekonava paintComponent.

Chcel by som teda poprosit niekoho skusenejsieho aby mi nejako teoreticky popisal ako sa to da vyriesit.

Dakujem

unik
C / C++ › quickSort padá
19. 12. 2013   #185476

Dakujem za odpovede, ale vedeli by ste mi povedat aj ako to vyriesit? resp. ako zvysit ten 1MB tak aby mi spracoval pole o velkosti 1 000 000 integerov?

Volanie:

  random_numbers_temp1 = (int*)malloc(n*sizeof(int));
  random_numbers_temp1 = random_numbers;

  quickSort(random_numbers_temp1,n);

unik
C / C++ › quickSort padá
18. 12. 2013   #185439

Zdravim,

mam problem ze quickSort(kod som stiahol z netu) pada pri zoradovani vacsich poli(priblizne pri 4500 cislach).

Zaujimave je, ze pada rovnakym sposobom uz pri druhom, inak implementovanom quickSorte.

VS mi ukazuje, ze error je pri zvyraznenej zatvorke.

Dakujem.

Tu je kod :

void quickSort(int numbers[], int array_size)
{
  q_sort(numbers, 0, array_size - 1);
}
 
void q_sort(int numbers[], int left, int right)
{
  int pivot, l_hold, r_hold;
 
  l_hold = left;
  r_hold = right;
  pivot = numbers[left];
  while (left < right)
  {
    while ((numbers[right] >= pivot) && (left < right))
      right--;
    if (left != right)
    {
      numbers[left] = numbers[right];
      left++;
    }
    while ((numbers[left] <= pivot) && (left < right))
      left++;
    if (left != right)
    {
      numbers[right] = numbers[left];
      right--;
    }
  }
  numbers[left] = pivot;
  pivot = left;
  left = l_hold;
  right = r_hold;
  if (left < pivot)
    q_sort(numbers, left, pivot-1);
  if (right > pivot)
    q_sort(numbers, pivot+1, right);
}

Adam
C / C++ › ExcludeUpdateRgn
2. 6. 2013   #177158

Zdravim,

Chcel by som sa spytat, ze akym sposobom sa da odobrat cast RECT struktury...myslim to tak ,ze napriklad stred

obdlzniku nebude updatovany,konkretne pri RedrawWindow funkcii...Nasiel som nieco ako ExcludeUpdateRgn ale moc nechapem ako to funguje.Mate niekto nejake tipy/rady?

Dakujem.

Adam
C / C++ › Bitmap sa nezobrazuje
17. 4. 2013   #175144

Tak a je mi to jasne,chyba nebola v kode ale v kompilatore...

Ludia nepouzivajte DEV, potom hladate chyby tam, kde niesu.

Adam
C / C++ › Bitmap sa nezobrazuje
17. 4. 2013   #175141

Tak, spravil som ako si povedal, ale znova sa to nezobrazuje, ked tam dam podmienku na g_hbmBall == NULL

vypisuje ze je prazdna...co s tym?

Adam
C / C++ › Bitmap sa nezobrazuje
16. 4. 2013   #175086

Ospravedlnujem sa, vo chvili ako som to odoslal mi to doslo :D

g_hbmBall = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(100));

malo byt vo WM_PAINT , ale nechapem preco to v tutoriale bolo takto...

Adam
C / C++ › Bitmap sa nezobrazuje
16. 4. 2013   #175085

Zdravim,

pouzivam DevC++ a ked mam takyto kod :

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HBITMAP g_hbmBall = NULL;
    switch (message)                 
    {
        case WM_CREATE:
            
        g_hbmBall = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(100));
       
        case WM_PAINT:
            
        BITMAP bm;
        HBITMAP hbmOld;
        PAINTSTRUCT ps;
        HDC hdcMem;
        HDC hdc;
        hdc = BeginPaint(hwnd, &ps);
        hdcMem = CreateCompatibleDC(hdc);
        hbmOld =(HBITMAP) SelectObject(hdcMem, g_hbmBall);
        GetObject(g_hbmBall, sizeof(bm), &bm);
        BitBlt(hdc, 0, 0, 100, 200, hdcMem, 0, 0, SRCCOPY);
        SelectObject(hdcMem, hbmOld);
        DeleteDC(hdcMem);
        EndPaint(hwnd, &ps);
        break;
        return 0;
       
        case WM_DESTROY:
            
        PostQuitMessage (0);      
        break;
        default:                     
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}

Ked to spustim, zobrazi sa iba klasicke okno ale ani naznak nejakej bitmapy...Kde by mohol byt problem?

unk
C / C++ › WIN API WM_PAINT
11. 4. 2013   #174859

Hladal som vsade,guglil som ale nemohol som najst nejake prakticke pouzitie RedrawWindow...Mohol by si prosim ta napisat nejaku ukazku toho ako to pracuje?

unk
C / C++ › WIN API WM_PAINT
9. 4. 2013   #174749

okej, kod som zmenil na toto :

switch(LOWORD(wParam))
           {
                                    case 1000:
                                         hdc=BeginPaint(hWnd,&ps); 
                                         MoveToEx(hdc,100,100,NULL);
                                         LineTo(hdc,150,150);
                                         EndPaint(hWnd,&ps);
                                         break;
                                         return 0;
                                    case 1002:
                                         hdc=BeginPaint(hWnd,&ps);
                                         MoveToEx(hdc,50,50,NULL);
                                         LineTo(hdc,100,100);
                                         EndPaint(hWnd,&ps);
                                         break;
                                         return 0;
                 
           }
           return 0;

a bez najmensej zmeny...co by to este mohlo byt?

unk
C / C++ › WIN API WM_PAINT
9. 4. 2013   #174740

Som este zaciatocnik a preto by som sa chcel opytat, ze ked mam takyto kod:

switch(LOWORD(wParam))
           {
                                    case 1000:
                                         hdc=BeginPaint(hWnd,&ps);  
                                         MoveToEx(hdc,100,100,NULL);
                                         LineTo(hdc,150,150);
                                         EndPaint(hWnd,&ps); 
                                    case 1002:
                                         hdc=BeginPaint(hWnd,&ps);
                                         MoveToEx(hdc,50,50,NULL);
                                         LineTo(hdc,100,100);
                                         EndPaint(hWnd,&ps);
                  
           }

a stlacim napriklad tlacitko 1000 tak sa vykresli ciara a ked potom stlacim tlacitko 1002 tak sa nestane nic, a naopak...Chcel by som poradit ako to spravit tak , aby som cez tlacitka v menu mohol postupne vykreslit ciary.Pouzivam DEV C++.

Dakujem.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032019 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý