Canvas.Draw('D:\Documents and Settings\krzys\Pulpit\Moje obrazy\domek.bmp'); Tak nie można :> Draw(X, Y, Bitmap); Więc... Bitmap.loadFromFile('d:\doc........ Canvas.Draw(0,0,Bitmap);
Zamknij projekt i do pliku Unit1.dfm dopisz linijkę kodu: OnPaint = FormPaint Albo po prostu w Object Inspektorze w zakładce Events kliknij 2x na OnPaint
Najprościej chyba będzie dziedziczyć po TPaintBox, oprogramować zdarzenie OnPaint i dodatkowo zaaplikować Timera, który będzie odświeżał.
OnPaint wykonujesz wtedy, kiedy taki komunikat dostajesz. Na BMP rysujesz równolegle lecz bez kropki. Nie używaj TImage ze względów wydajnościowych oraz zajętości pamięci. Wystartczy Bmp:=TBitmap.Create; A na końcu zwalnianie.
Jeżeli rysujesz w zdarzeniu OnPaint formy to, jak sama nazwa wskazuje, rysujesz tylko po formie, nie po jej kontrolkach. Jeżeli chcesz rysować po kontrolkach typu PictureBox, musisz podłączyć się pod ich zdarzenie OnPaint, i w nim rysować linę dla każdej kontrolki: [syntax=csharp]for (int j= 0; j < 16; j++) for (int i = 0; i < 25; i++) { PictureBox...
float x = 2.6543210; String tekst = FloatToStrF(x, ffNumber, 7, 2); Label1->Caption = "Wynik = " + tekst; Przy okazji, Refresh jest bezużyteczny chyba, że dalej w kodzie masz zdarzenie OnPaint.
Generalnie kanwa kontrolek umożliwia rysowanie, ale trzeba pamiętać, że sama kontrolka też się przerysowuje właśnie w odpowiedzi na zdarzenie onPaint. Zmiana Captiona m.in. wywołuje konieczność odrysowania, a jako, że jest to efekt zdarzeniowy, to wystąpi tuż po Twoim rysowaniu, zatem... wymaże zawartość. Drugi raz już nie ma tego efektu, bo ponowne...
1. Przerysowanie w OnPaint, nie OnResize ;) Zmiana rozmiaru w OnResize tylko wystarczy ;) 2. Na pewno jest szybsze w przypadku przerysowywania całych powierzchni. Co innego, gdyby fragmentarycznie trzeba było przerysowywać. 4. W najlepszym przypadku - 1 bajt, w najgorszym - nic :D Ale po coś ta własność jest - co ma leżeć i się marnować :D
W Visual Studio C# w zdarzeniu OnPaint panela bądź formy działa taki kod, spróbuj podbnie: [syntax=cpp]private void panel1_Paint(object sender, PaintEventArgs e) { e.Graphics.FillRectangle(Brushes.Red, 20, 20, 1, 1); //1px czerwony punkt }[/syntax]
Public Class Form1 Private Sub Form1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove Me.Refresh() End Sub Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs) e.Graphics.DrawLine(Pens.Gainsboro, 0, 0, Me.MousePosition.X, Me.MousePosition.Y)...
Nie jeśli wyłączyłeś obszar przez Invalidate. Spróbuj poniższy przykład [syntax=csharp] using System; using System.Drawing; using System.Windows.Forms; class invalidateTest:Form { Point pt; public int dyWynik; public bool clip = false; public static void Main() { Application.Run(new invalidateTest()); } public invalidateTest() { Text = "Invalidate Test";...
Tu masz przykład na przełączanie koloru po kliknięciu przycisku. Pamiętaj, żeby robić Dispose() dla obiektów Pan czy Brush. [syntax=csharp]public partial class Form1 : Form { int x = 100; int y = 320; Color color = Color.Red; public Form1() { InitializeComponent(); } protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; Pen a...
A skąd bierzesz obiekt Graphics - jakaś kontrka? Mam tu na myśli że jeżeli rysujesz po jakiejś kontrolce to najlepiej jest z niej dziedziczyć własną klasę, włączyć podwójne buforowanie dla tej kontrolki i całe rysowanie wykonywać w nadpisanej metodzie OnPaint - czy coś w tym stylu. Ona jest wywoływana automatycznie w momencie kiedy jest taka potrzeba...
Witam zrobiłem program w którym na Canvasie można rysować prostokąty. Tylko jest problem z zamazywaniem się linii. Teraz muszę jakoś zapamiętać wszystkie współrzędne X i Y do tablicy a następnie odtworzyć je w OnPaint. Tylko nie wiem za bardzo jak sie za to zabrać. Oto część kodu: void __fastcall TForm::ProstokatyBTNClick(TO... *Sender)...
Jeśli jest gdzieś błąd w kodzie ze względu na moje myślenie proszę abyście pomogli naprawić Sporo tego jest, prościej będzie jak wrzucę poprawny kod, to możesz sobie porównać ze swoim... protected override void OnPaint(PaintEventArgs e) ) i w nim umieścić kod odpowiedzialny za rysowanie. Dzięki temu za każdym razem, kiedy jest taka potrzeba, zostanie...
Jakie OnPaint?? Przecież wtedy będzie się to rysowało przy każdym przesunięciu okna, jego zasłonięciu itp. Tylko przy odkrywaniu więc nie wprowadzaj ludzi w błąd. Przecież to logiczne, że musi zostać odrysowane to co zostało zakryte. Należy zdefiniować sobie zdarzenie AfterShow, czytaj tutaj: http://utak3r.pl/index.php?/archives/37-...
Możesz malować po canvas, a co do czyszczenia to nie ma takiej gotowej funkcji, najprościej rysować wypełniony prostokąt. A co do konstrukcji programu to polecam najpierw wygenerować obraz tła (osie, zarysy etc) w obiekcie TBitmap, następnie utworzyć nowy obiekt TBitmap skopiować do niego obiekt z tłem, następnie namalować interesujący obraz a na końcu...
Nie ma chyba w zasadzie czego wyjaśniać, przy callbacku dla wave in (dostępne są nowe próbki) wywoływany (Resume) jest wątek DrawThread który zawłaszcza sobie dostęp do TPaintbox (lock/unlock), rysuje to co wynika z próbek i usypia się (Suspend). Gdyby nowe próbki nie były dostarczane na bieżąco przydałoby się też obsłużyć OnPaint dla TPaintBox (przechowywać...
Znalazłem ten program zagrzebany na dysku, całość działała jak generator i oscyloskop w jednym przy użyciu karty akwizycyjnej Advantech'a, tutaj jest fragment dotyczący rysowania przybiegu. Na samym początku plików jest deklaracja i definicja klasy CDrawStatic dziedzicząca po CStatic. Do rysowania trzeba nadpisać metodę OnPaint (wcześniej pomyłkowo...
robienie tego na zwykłych win formach nie da takiego efektu jak w przypadku użycia bibliteki do tego przeznaczonej A to akurat nieprawda. Kontrolka wygląda tak, jak ją sobie wystylizujesz. Jeżeli nie odpowiada Ci standardowy wygląd - zawsze możesz go sobie od podstaw zrobić nadpisując odpowiednie zdarzenia (OnPaint etc.). Ten przykład który podajesz...
Możesz użyć takiej funkcji - znalezione na google. Tracbkar ustawiony na -100...+ 100 [syntax=csharp]public partial class Form1 : Form { int x = 100; int y = 320; Color color = Color.Red; Color baseColor = Color.Red; public Form1() { InitializeComponent(); } protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; Pen a = new Pen(Color.Black,...
bo kazde przerysowanie powoduje zamazanie Canvy. Nalezy obsłużyć zdarzenie OnPaint.
Bo jak robisz refresh, to ponownie wywołujesz w konsekwencji zdarzenie OnPaint.
OnPaint Alternatywnie rysować po Canvie TImage - on sam się przerysowuje.
Bałem się, że na zdarzenie OnPaint odświerzone będzie tylko te pole, w którym ten element aktualnie się znajduje. W takim wypadku zwracam honor.
Zaznaczę że kodu: "Controls("CheckBox" & x).Checked" VB mi nie przyjmuje. Jak to zrobić inaczej? Niestety, ale w VB.NET czeka dużo więcej niespodzianek. To co było proste w VB6 zaczyna być skomplikowane w VB.NET, no ale taka jest droga postępu... najwidoczniej... mimo wszystko sam bardzo sobie chwalę przejście z VB6 na VB.NET (jeżeli ktoś może...
Proponuję żeby zamiast PicutreBoxa wykorzystać rysownie GDI+ bezpośrednio po formie lub np. po panelu. W obu wypadkach wykonujesz te same czynności: nadpisujesz zdarzenie OnPaint formy lub panelu, pobierasz obiekt Graphics i wykorzystujesz go do rysowania np. obrazka za pomocą .DrawImage() czy punktów. Oczywiście wszystko musisz samemu oprogramować...
Usiadłem znów do tego problemu. Chciałbym samemu wszystko rysować w metodzie OnPaint listy, jest jednak jeden problem: void CMyList::OnPaint() { CPaintDC dc(this); CRect rc; GetClientRect(&rc); CDC MemoryDC; CBitmap Bitmap; CBrush Brush; MemoryDC.CreateCompatibleDC(&dc)... Bitmap.CreateCompatibleBitmap(&dc,.....
Hmmm, to można rozwiązać przynajmniej na dwa sposoby: 1.) Bardziej skomplikowany, ale i bardziej profesjonalny: tworzysz własną kontrolkę na podstawie TabControl, w DrawMode wybierasz OwnerDrawFixed i podpinasz swoje własne metody rysujące kontrolkę w zdarzeniu OnPaint. Po szczegóły musiałbyś pogooglać jak tworzyć własne kontrolki w języku w którym...
ad.1. Kształty Form które łatwo określić jako zbiór podstawowych figur (okręgi, elipsy, prostokąty, linie) najlepiej ustawić nadpisując wartość Region formy swoją własną. Dodatkowo musisz zadbać o parę usprawnień związanych z brakiem belki z przyciskami: przesuwanie formy myszą, zamykanie etc. Sądzę że najlepiej ilustruje to poniższy przykład: [syntax=csharp]using...
Przerysowanie jest odpowiedzią na otrzymany komunikat nakazujący przerysowanie (stąd istnienie zdarzenia OnPaint). W ciągu instrukcji wątek (jeśli jest to główny) nie ma czasu na obsłużenie komunikatu przerysowania. To się WYKONUJE! Tylko nie dokonuje przerysowania. Gdyby każda zmiana miała wymuszać przerysowanie, to ani 10 procesorów w komputerze by...
Lepiej przykryj TImage obiektem TPaintBox. Odpadnie Ci konieczność przerysowywania obrazka oraz zapamiętywania przykrytych linii obrazu. Jeśli te linie chcesz na stałe, pamiętaj o obsłudze zdarzenia OnPaint. A kwestia "chwytania" i przeciągania to musisz już sam oprogramować w zdarzeniach OnMouseMove/OnMouseDown/Up
ja1: wszystko co jest na aplikacji jest w rzeczywistości malowane bezpośrednio do karty graficznej.. jeśli fragment zostanie zasłonięty i ponownie odsłonięty to uzyskamy kolor tła aplikacji.. aby uniknąć tego efektu musisz w zdażeniu OnPaint odrysowywać całą część aplikacji, która niejest automatycznie odrysowywana.. teraz testując wspomniany efekt...
Mam pytanie jak można narysować swoje kontrolki np. buttony. Próbowałem to zrobić robiąc nowa klasę dziedzicząca po starej (np. CButton lub CComboBox) i nadpisując metodę OnPaint. Wszystko było by ok, ale wtedy kontrolkę trzeba rysować całkowicie od początku (w combobxie nawet wyświetlać napisy). Czy ktoś już coś takiego robil? A może wykorzystać OnCustomDraw?...
Gotowego komponentu nie znam. A jak napisac to moze i bym wiedzial gdyby bylo wiadomo o co w ogole chodzi. Wszystko zalezy czy to ma byc prosty wykres ktory zawsze w calosci widac na ekranie czy moze trzeba oprogramowac mnostwo detali takich jak skalowanie tego wykresu w poziomie i pionie tak zeby pokazac i edytowac jakis fragment wykresu. Najprostrzy...
Komponenty są typu Label. Jedyną opcją jest stworzenie własnej kontrolki. 1. Tworzysz nową klasę TransparentLabel i wklejasz kod: http://obrazki.elektroda.pl/6323861300_1...
Witajcie, zostałem poproszony o pomoc przy projektowaniu systemu wtyczek do aplikacji w Delphi. Wydaje mi się że najsensowniejszym rozwiązaniem jest udostępnianie interfejsów "nakładek" (wrappers) na funkcje aplikacji... jednak pozostaje pytanie jak przechwytywać zdarzenia z aplikacji we wtyczkach, czy lepiej by wtyczka implementowała jakiś interfejs...
Dzięki za odpowiedzi, troche poczytalem w międzyczasie i znalazłem 2 sposoby żeby obrazek nie znikał. 1. umiścić rysowanie obiektu w evencie OnPaint Formu, lecz jeśli zrobie zmiany w rysunku to te zmiany będą znikać i bedzie 'migotać' przy odświerzaniu ale nadaje się do statycznych rysunków umieszczanych na formie 2. posłużyć się Timage i na nich już...
Rozwiązałem to w ten sposób, że dodałem obsługę zdarzenia OnPaint. Grafika jest przerysowywana za każdym razem gdy zdarzenie jest wywoływane. W ten sposób realizaowane jest odświeżenie. Mam jednak kolejne pytanie. Czy jest możliwa konwersja obiektów narysowanych na Panelu do bitmapy? Zależałoby mi, żeby móc zapisać obszar panelu wraz z narysowanymi...
Dziękuję bardzo za pomoc, przerobiłem to na coś takiego: [syntax=csharp] using System; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; /// <summary> /// Tworzy przezroczystą kontrolkę etykiety /// </summary> /// <remarks>http://www.neowin.net/for... public...
Temat nawet ciekawy, aż sobie na szybko coś takiego zrobiłem, żeby sprawdzić czy zadziała ;) To w zasadzie pierwsza myśl - ewentualne wyjście do dalszej optymalizacji / uszczegóławiania, opiszę Ci jak to można zrobić, a Ty wybierz sobie to, co Ci pasuje. Krok 1 - cyfrowa mapa 1. Znajdź na necie konturową mapę polski z podziałem na województwa, w rozsądnym...
Witam Mam problem, jak zrealizować funkcję żeby wszystkie okna programu były zawsze na wierzchu (tj miały atrybut HWND_TOPMOST, i tylko inne okna z tym atrybutem mogły je przykrywać)? Problem jest taki że jeśli użyje fsStayOnTop albo SetWindowPos ustawiające HWND_TOPMOST, to działa to wyłącznie dla okna głównego a nie innych okien programu. Funkcjonalność...
Witam, po odpaleniu programu rysunek od razu się pojawia. Chcę aby pojawił się dopiero po przyciśnięciu na Button. Dodatkowo nie działa mi ustawienie wielkości sceny (SetView). Obrazek się zmniejszy dopiero po odpaleniu programu i ręcznym zmniejszeniu/zwiększeniu okna. Wielość sceny w kodzie powinna się ustawić automatycznie do wielkości okna, ale działa...
Te = na == poprawiłem sam i nie pamiętałem że tak napisałem w poście . Ale Dobra A jeżeli o dawanie tego selectedIndex to myślałem że trzeba wpisać np . if(listBox1.SelectedIndex (1)) albo if (listBox1.SelectedIndex == 1) Puki co zbieram się dalej do programowania , w razie problemów odezwę się Dodano po 31 Szczerze mówiąc myślałem że to będzie łatwiejsze...
System Windows 10 16Gb RAM 30 Gb na dysku i błąd brak pamięci Mi dzisiaj już trzykrotnie wyświetliło to : ________________________________________... Szczegółowe informacje na temat wywoływania debugowania w trybie JIT (just in time) zamiast tego okna dialogowego znajdują się na końcu tego komunikatu....
Wolałbym to jednak rysować na panelu, bo to nie będzie jedyny "ekran" tej aplikacji, inaczej rzut hemisfery narysowałbym w OnPaintBackground głównego formularza. 3D to trochę za dużo jak na moje zdolności geometryczne... Satelity same przesyłają swoją pozycję, to obok czasu z pokładowego zegara atomowego (a właściwie 4 zegarów atomowych - 2 cezowych...
volvo silnika moment dokręcania półosi voice kraft alton
Jak ustawić język polski w telewizorze Grundig? Windows 10: Kursor myszki biega, ekran miga w trybie awaryjnym