Spróbuj jeszcze po Refresh wykonać Application->ProcessMEssages.
//laduj BMP Application->ProcessMessages(); //petla FOR
Może spróbuj wstawić w tę pętlę także: [syntax=cpp]Application->ProcessMessages...
Witam. Jak w temacie. Piszę sobie programik, który ma mi wyświetlać animację złożoną z kilkuset klatek wyświetlanych w określonym odstępie czasu. Oto fragment kodu za to odpowiedzialny: Sleep(40) . Program działa, ale pojawia się migotanie pomiędzy kolejnymi klatkami, spowodowane zapewne fragmentem Application->ProcessMessages(); , jednak bez niego...
Możesz spróbować zrobić tak że w przypadku ustawienia się jakieś flagi to przestajesz rysować a kliknięcie ustawia flagę. Do tego BARDZO WAŻNE jest wstawienie w pętli rysującej metody która odpowiada za odbieranie i przetwarzanie komunikatów. Dla delphi jest to metoda ProcessMessages klasy application.
Przetworzenie obrazka przed sleepem zapewni Ci Application->ProcessMessages(); Przydaje się to w dłuższych funkcjach obliczeniowych, ale w Twoim przypadku jak już koledzy wspomnieli - lepszy byłby oddzielny wątek, albo użycie TTimer.
Tak - najlepiej wątki. Względnie w pętli umieścić komunikat przetwarzania kolejki wiadomości (Application.ProcessMessages).
Jak doda do petli Application.ProcessMessages; wtedy bedzie mogl wcisnac przycisk...
Nie są pomijane, tylko nie ma czasu na ich przerysowanie. Wstaw wymuszenie przerysowania (Repaint) lub przetwarzanie kolejki komunikatów (Application.ProcessMessages).
Ad. 1 Zrób to w wątku, teraz nie chodzą message przez co żadna akcja (kliknięcie czy coś innego) nie dojdzie. Spróbuj ewentualnie wywoływać ProcessMessages z Application w tej pętli (ale to rozwiązanie nigdy mi się nie podobało :wink: ). Na wątku po prostu robisz Terminate a w wątki sprawdzasz czy Terminated. W przypadku używania ProcessMessages możesz...
W pętli musisz wstawić: Application.ProcessMessages; żeby pozwolić aplikacji obsłużyć komunikaty Jeżeli chodzi o litery to użyj "randomize". Litery przemapuj (A=1, B=2, ...). Czyli jeśli wylosuje się 2 to będzie B. Pozdrawiam.
I forma zostanie oświeżona dopiero po zwróceniu sterownia. Dodaj w programie Application.ProcessMessages; druga możliwość to obliczenia prowadzone w oddzielnym wątku (ma to swoje zalety).
Aż tak szeroko nie analizowałem. Ale spróbuj po pierwsze zredukować liczbę wywołań funkcji - to jest dość kosztowne. Po drugie chyba zbyt często wywołujesz Application.ProcessMessages. Po trzecie, jak wspominałem, unikaj przekazywania przez wartość parametrów! Zerknij do tego linka, co mam w stopce na samym dole. Może coś jeszcze Ci się nasunie ;)
Bardzo dawno Delphi nie używałem, ale mam pewne podejrzenie. Odczyt pewnie działa, ale że nie zrobiłeś czytania w osobnym wątku, to blokujesz cały program w tej pętli i nie ma on kiedy narysować sobie okienka. Jeśli nie umiesz zrobić wątków i ich prawidłowo synchronizować, to dodaj po prostu Application.ProcessMessages; po ustawieniu etykiety, chyba...
Możesz tak zmodyfikować źródło projektu (u mnie działa): program Project1; uses Forms,windows, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} var hMapping: thandle; begin hMapping:=CreateFileMapping(THAN... if GetLastError=ERROR_ALREADY_EXISTS then begin CloseHandle(hMapping);...
Twoja liczba musi być 64 bitowa. Taka liczba nie może być użyta w "for", ale w "while" oczywiście może być, np.: procedure TForm1.Button1Click(Sender: TObject); var i: Int64; begin i:= 1; while i< 9999999999999999 do begin Label1.Caption:= FormatFloat(',#0', i); if i mod 100= 0 then Application.ProcessMessages; i:=...
Sprawdz czy o takie cos chodzi.Narazie tylko CTRL+ALT+W,CTRL+ALT+S. [syntax=cpp] //--------------------------------------... #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include <Clipbrd.hpp> //--------------------------------------... #pragma package(smart_init)...
To o czym piszesz moim zdaniem idealnie nadaje się do zaimplementowania wielowątkowości :) Co prawda w Delphi już od bardzo dawna nie piszę, ale na pewno jest tam taki mechanizm - musiałbyś algorytm uruchomić w nowym wątku, którym możesz sterować z formy głównej (wystartować, zatrzymać, uruchomić ponownie). Ewentualnie możesz spróbować zapuścić algorytm...
Jaką wartość dałeś w Sleep() ? Pamiętaj, że argumentem jest czas podawany w ms (1s = 1000ms), więc jeśli dałeś 1 to nic dziwnego, że nie odczułeś przerwy. I nie rób takiej pętli, bo to czyste marnotrawstwo procesora, lepiej tam wrzucić jakiegoś niedużego Sleepa. Pamiętaj, że ProcessMessages też trochę zabiera więc po kliknięciu Button2 równo po sekundzie...
Już znalazłem i poprawiłem :D Ale nasuwa się kolejne pytanie :idea: Jak w komponencie Memo1 robić żeby najpierw załadować 1 literę a potem kolejną do bufora :?: czy jest taka możliwość :?: NP napisze patryk i chcę po kolei ładować do zmiennej char a najpierw znak a='p' następnie a='a' ... a='k' char a; for (int i = 1; i <= Memo1->Lines->Strings[0].L...
Witam, do dokładnego odliczenia jednostki czasu możesz wykorzystać funkcje GetTickCount, jest to w miarę proste rozwiązanie lub skorzystać z dwóch funkcji QueryPerformanceFrequency(); i QueryPerformanceCounter(); zamieszczam kawałek kodu z użyciem GetTickCount. procedure DelayM(interwal_w_milisekundach:... var Start:longint; begin...
Czy mogl by to ktos sprawdzic i powytykac wszystkie bledy bo prawie ze chodzi a mianowicie laczyc sie laczy lecz nie wyswietla plikow jak przegrywam na serwer to ten plik zostaje wrzucony lecz go nie widac. pomocy zalaczam kod zrodlowy aha i jest to kod z delphi przerobiony na BCB moze gdzies cos zle zrobilem, a pochodzi z http://4programmers.net/article.php?id=7...
A i program nie reaguje jak pisałem parę postów wyżej co zrobić? W każdą pętlę wstaw gdzieś (właściwie w dowolne miejsce) [syntax=delphi]Application.ProcessMessag... Ale obawiam się, że z tymi poleceniami "Sleep()" nie będzie tak prosto. Wstaw przed i za każdym z nich Application.ProcessMessages.
Można zastosować np. coś takiego : http://obrazki.elektroda.pl/2134176200_1...
Rozumiem, ale jak się pozbyć tego błędu, kod skompilowany w Delphi 5 nie ma tego błędu, zapewne w jakiś sposób obcina nadwyżkę; próbowałem zbyt duże wartości zamienić na try net:= tbret[i+o_idx]; tmp:= f_activate( net ); // poddajemy nieliniowej funcji aktywacji // Form1.MInfo.Lines.Add(' ob: '+#9 + FloatToStr(net));...
witoldwitoldowicz A co zrobić żeby wpisywać prędkość i ilosć kroków w polu edit1? Dodano po 21 Dodano po 2 I czy można zmienić położenie 'Sterownik załadowany poprawnie.' na przykład na dole? Dodano po 5 Po naciśnięciu przycisku program robi tylko 2-3-4-5 w polu edit muszę wpisywać ile ma być takich cykli a w prędkość wpisywać czas w Dodano po 10 http://obrazki.elektroda.pl/5089478600_1...
Nie ma sensy zatrudniać do tego Timer-ów :) Wystarczy rysować bezpośrednio na widocznym komponencie i application.ProcessMessages; po każdym narysowanym kawałku... Świetnie będzie wydać jak wykres "się rysuje" :)
używam Image.Canvas. no tak. ja dorysowuję... Nawet coś tak prostego : for I := 0 to 500 do begin Image1.Canvas.LineTo(i,100); application.ProcessMessages; end; Trwa całe wieki .... :(
Spróbuj może zamiast osobnego wątku użyć funkcji Application.ProcessMessages w funkcji obciążającej procesor - dzięki niej po każdej iteracji na chwilę sterowanie będzie oddawane do OSa, a więc będą aktualizowane wartości pasków postępu itd...
Normalne. Jeśli zajmiesz główny wątek programu, to nie ma czasu na przetwarzanie komunikatów. Wyjściem pośrednim jest wymuszenie przetworzenia kolejki komunikatów (przykładowo w Delphi: Application.ProcessMessages). Jednak najlepiej byłoby stworzyć zasobożerny kawałek programu jako osobną procedurę, która będzie odpalana na odrębnym wątku.
Tylko zapomnieliście napisać że wywołanie sleep-a powoduje wywalenie się innych wontków absługujących comy. Jeżeli będziesz używał sleepa to inne programy kożystające z zależności czasowych mogą ci działać nieprawidłowo. Zastosuj lepiej typ nal: tdatetime; nal:=now; repeat application.ProcessMessages; until (now > (nal+20/msecsperday));
Spróbuj tak: PostMessage(hwnd, WM_KeyDown, key_code, $00020001); Application.ProcessMessages; PostMessage(hwnd, WM_KeyUp, key_code, $C002001); gdzie hwnd to uchwyt do wybranego okna (znajdziesz np. funkcja FindWindow), key_code to kod klawisza; Pozdrawiam,
Spróbuj przy pojawieniu się formularza (OnShow) za każdym razem wywołać : Application.ProcessMessages; to powinno odświeżyć formatkę z przyciskami. A jak nie to tworzymy forme dynamicznie: np. ButtonClick i : if not Assigned(Form1) then Form1:=TForm1.Create(Application); Form1.Show; i zwolnienie w TForm1.FormClose: procedure TForm1.FormClose(Sender:...
mi wstrzymuje wykonywanie pętli ( choćby testowo z "beep" ) jeśli nie jest w osobnym wątku. Dodano po 1 ps.win xp wiem że mogę użyć wątków które działają niezależnie ale nie zawsze jest taka potrzeba...
Poszukiwałem różnych sposobów sprawdzania, kiedy strona jest w pełni załadowana przez składnik TChromium - na razie bezskutecznie. Próbowałem użyć opóźnienia ładowania strony i przesłać informacje o zakończeniu przez dodatkową zmienną, ale zdarzenie OnLoadEnd jest wyzwalane przed JS i innymi podobnymi, więc nie zawsze uzyskać poprawne informacje. [syntax=delphi]procedure...
Witam, Procedura dotycząca zapisu pliku do pamięci FLASH nie działa. Właściwy kod powinien znajdować się w procedurze: procedure TForm1.SpeedButtonLoadUploadFWClick(Send... TObject); Najpierw program kasuje poprzednią zawartość pamięci FLASH w mikrokontrolerze AVR: [syntax=pascal]if ComPort.Connected then begin ComPort.WriteStr('u'); ComPort.WriteStr('w');...
dzięki folkien - właśnie czasami ciężko mi wpaść na rzecz oczywistą, mogę dopiero w funkcji parsującej stringa odjąć wykorzystywaną tam jego długość :)... niestety w delphi ReadLn nie zwraca długości stringa. JacekCZ - niestety jestem kiepsko resocjalizowany i jak już się tego za młodu nauczyłem to się tego trzymam do dziś. Application.ProcessMessages();...
Znalazłem dość ciekawy kodzik w delphi, i mysle ze przydałby się wielu osobom ale trzeba go przetłumaczyc z delphi :) Niestyety sam sobie z tym poradzić nie dam rady :( function ExecuteConsole(Executable:PChar; CommandLine:PChar; Directory:PChar):boolean; const bufSize = 256; var readPipe :THandle; writePipe :THandle;...
Spróbuj może raczej czego takiego : [syntax=delphi]unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; Shape1: TShape; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations...
Program się wiesza bo jest zbyt zajęty pętlą repeat-until. Jeżeli by to miało być tylko opóźnienie 100ms, to wystarczy sleep(100). Jeżeli konieczna jest pętla repeat-until, to w jej wnętrzu proponuję dodanie jeszcze np sleep(10) - aby system mógł wykonać inne operacje np. procedurę od Timera. Niestety nawet przy bardzo dużych parametrach dla Sleep...
Kiedys napisalem sobie programik do "glosowania" na posty napisane na onet.pl. Jest tam wlasnie wykonywany js + czyszczenie cookie zeby mozna bylo oddac glos powtornie ,closc umieszczona w timerze zliczajacy ilosc glosow jak i z ustawialnym intervalem (w zaleznosc od szybkosci ladowania strony). Kod (jedna linijka) js umieszoczny jest w edt3.Text. Calosc...
Probowales mimo to ,ze nie mogles ustawic flag uzyskac polaczenie na comport? Kiedys napisalem programik ,ktory komunikowal sie z urzadzeniem ale nie chcial wlasnie wspolpracowac ze standardowym onrxchar. Wklejam tu fragmenty powycinane (postaram sie zeby stanowily jakas calosc) i mozesz sprobowac zrobic wg tego: for i:=1 to 1023 do begin //wysylam...
Witam, pisze aplikacje do Call of Duty 7 Black Ops gdyz nie można tam zbindowac niczego i tutaj jest moja prośba :) Chcę zrobić tak że na jedno przesunięcie (klikniecie) rolki w górę w myszce klika dwa razy przycisk 1 na klawiaturze, i za każdym jednym przesunięciem kilka dwa razy przycisk 1 ktory ma przybindowany 'weapnext" w grze co odzwierciedli...
Racja. Bardzo dziękuję za tę uwagę. Ale chyba jednak zostanę z tym obiektem TImage na Formie, bo wygodniej mi go utworzyć na TScrollBarze. Z drugiej zaś strony nie potrafię odświeżyć z poziomu wątku, który dotychczas obsługiwał bezpośrednio rysowanie na Canvas formy Tlo: [syntax=delphi]Tlo.Canvas.Rectangle(a, b, c, d); [/syntax] a który zamieniałem...
Niby mam napisane takie coś i działa: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DXSounds, MMSystem, Wave, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations...
Mniej - więcej tak wygląda procedura wysyłania maila z załącznikiem : procedure TForm1.Button1Click(Sender: TObject); begin Try IdMessage1.Body.Append('abcdef jakas tresc maila'); IdMessage1.Recipients.EMailAddresses := '*********(at)o2.pl'; IdMessage1.Subject := 'temat maila'; IdMessage1.From.Name := 'Od kogo - nadawca';...
W trybie asynchronicznym FIFO osiągaliśmy transfer pod 16MB/s. Po przekopaniu AN'ów z FTDI, uzyskałem w końcu 40MB/s !! Daleko powyżej moich potrzeb !! Tryb FIFO, ale synchroniczny. http://www.ftdichip.com/Support/Document... Fragment kodu Delphi: procedure TForm1.Button11Click(Sender:...
Kod ma bardzo dużo linii ale właśnie porównuję z poprzednik kodem co miałem na obiekcie image... i jedyną różnicę którą zauważyłem to poprzednio używałem funkcji Application.ProcessMessage a teraz jej nie używam w procedurach rysujących - jak ją dodałem teraz po zakończonym rysowaniu to wszystko działa jak należy - występuje zdarzenie raz/ 1 przesunięcie...
Dzięki za podpowiedzi. No ok.. testuję ten QueryPerformanceCounter ponieważ wydaje mi się idealny bo można nim odmierzyć szas jak najdokładniej konkretny komputer potrafi (licznik cykli maszynowych / częstotliwość pracy procesora ) i jest prawie dobrze - napisałem procedurkę, która przez 10s wyświetla co 1/4s (żeby dobrze zauważać) czas jaki odmierzyła...
Ok wiec dolaczam caly kod. Zebym jeszcze wiedzial w ktorym miejscu mam to lapac, bo z tym czyszczeniem to nie bedzie chyba problemu i wstawianiem. Jak masz jakis pomysl co do tego to bylbym wdzieczny :) Pozdro :) unit TrayForm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ShellAPI, ExtCtrls, Menus, StdCtrls,...
Odpowiedź jest prosta : VtChart służy raczej do robienia wykresów słupkowych i tego typu rzeczy, a nie do wykreślania sinusa czy cosinus. Funkcje trygonometryczne można bardzo łatwo rysować w Delphi, na piechotę, ze wzorów, praktycznie z dowolną dokładnością i dowolną ilością kroków. I tutaj pojawia się problem, gdyż nie mogę zwiększyć liczby próbek...
JmL(TM) --> z tą nazwą procka to już sobie poradziłem tak, że wysyłam ją jako string wprawdzie ale nie deklaruję jej już w programie (tak jak było widać to wyżej) - tylko leci nazwa procka podana w makefile, a to dzięki takiej konstukcji: #define STRINGIFY(x) #x #define TOSTRING(x) STRINGIFY(x) uart_putstr("\r\n"...
Ale to tak funkcjonuje ;) Wycinek z programu, który dokonywał konwersji BMP na WAV (tak, to nie pomyłka - analizator XY dźwięku pokazywał obraz!) with FS do begin Write('RIFF',4); len:=Round(MediaPlayer1.Length*&... // freq/1000 * 2 fps:=MediaPlayer1.Length; MediaPlayer1.TimeFormat:=tfFrames; ProgressBar1.Max:=MediaPlayer1.Lengt...
dawno, dawno temu, gdy pisałem aplikację "zdalnego pulpitu", używałem następującej funkcji: procedure PostKeyExHWND(hWindow: HWnd; key: Word; const shift: TShiftState; specialkey: Boolean); type TBuffers = array [0..1] of TKeyboardState; var pKeyBuffers: ^TBuffers; lParam: LongInt; begin if IsWindow(hWindow)...
Problem polega na tym że chyba mam coś źle skonfigurowane na COMie. Jak urządzenie zewnętrze dostarcza mi dane po 256bajtów to ja za pierwszym odczytem otrzymuje 33bajty, kolejny odczyt to dane po 33bajcie Czyli buffor wypełnia się na dwa razy. Czy posiadacie może sprawdzony sposób na odbiór danych przez RS'a bez gubienia danych w buforze? Jak sprawdzam...
Witam Mam taki problem: nie wiem jak wysłać orbazek do przeglądarki www. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,IdBaseComponent, IdComponent, IdCustomHTTPServer, IdContext, IdHTTPServer, StdCtrls, ComCtrls, IdCustomTCPServer, IdSocketHandle, MMSystem, CPort, CPortCtl, GR32_Image,...
Okij, wyciągnąłem funkcje sterujące FT ze swojego programiku. Ponieważ pisalem go dawno temu, trochę zapomiałem niektore szczegóły, ale powinno to dzialac. W każdym bądź razie u mnie działało. No to po koleii : Na początek wykrywanie podłączonych urządzeń : FT_ListDevices((at)ile,nil,FT_LIST_NUMBE... gdzie ile jest typu word. I jeśli znajdzie jakiś...
Niestety nawet zmienienie textu to pare wiadomosci musi przetworzyc np. WM_PAINT. Niewiem jak to C# ale np. CBuilder ma do tego Application->ProcessMessage().
Witam, próbuje napisać aplikację serwer klient do przesyłania plików w Borland C++ w program się kompiluję jednak przesyłanie plików nie działa - nie mam już siły ... Po stronę serwera : [syntax=cpp]void __fastcall TForm1::SerwerClientRead(TObject *Sender, TCustomWinSocket *Socket) { int Odczytane ; char Buf[1024] ; String Wiadomosc, Tmp ; String NazwaPliku...
Mam dziwny kłopot. Napisałem prostą funkcje której zadaniem jest dopisanie linijki tekstu do komponentu TRichEdit. Przykładowe wywołanie funkcji: Dodano po 1 Dodam że jak usunę instrukcje Switch i zostawie tylko zmiane parametrów tekstu to dzieje się to samo.
Witam Piszę prosty serwerek za pomocą komponentu IdFTPServer z Indy10, mam problem z odczytem listy, upload/download działa prawidłowo, natomiast przy próbie odczytu listy plików u klienta w ListBoksie wyświetla się 'total 0' :| pomimo, że pliki tam są. W evencie OnListDirectory mam następujący kod: String Folde; //zmienna globalna głównego folderu...
Witam. Poniżej standardowa procedura do ściągania pliku, która chciałbym usprawnić, mam nadzieję że nie przestarzała, ale u mnie się na razie sprawdza. Szukam informacji na temat jak ograniczyć prędkość ściągania a konkretnie idealne było by: 1. Jak sprawdzić prędkość pobierania z danego stanowiska np. SpeedNet=?B. 2. Jak zabezpieczyć się przed zawieszeniem...
Gdyby był ktoś tak miły i znał się na Delphi oraz C++ to prosiłbym o przerobienie poniżej podanego Unitu Delphi, tak aby był Unitem includowanym dla C++. Oto kod: Delphi unit sensescriptRun; interface uses Classes, Forms; var cod:TStrings; procedure _AddCodeLine(line:PChar); stdcall external 'sense_script.dll' name '_AddCodeLine'; procedure...
Kiedy jeden z graczy wygra to nie blokuje wykonania ruchu drugiego gracza. Dopiero po wykonaniu ruchu drugiego gracza otrzymuje on komunikat o wygranej pierwszego gracza. Proszę o pomoc [syntax=java][/syntax] kod zawiera dwie klasy [syntax=java]import java.awt.*; import java.awt.event.*; import java.net.*; import java.io.*; import javax.swing.*; public...
application volatile application getopenfilename application launcher
wykrywacz metal monet zacisk hamulcowy ręczny bezpiecznik zasilacza komputera
electrolux ew8tn3372p politechnika łódzka
Fendt 720 - Sterownik nie uruchamia rozrusznika: Diagnostyka i rozwiązania Uszczelki do dyszy pary AEG EA150 i Zelmer Maestro - jakie wybrać?