|
|
Delphi |
|
-
Interfejsy w Delphi... znowu
Kolejny problem z interfejsami i dealokacją obiektów w Delphi -
przekazywanie self obiektu implementującego interfejs jako parametr metody...
-
Weryfikacja "wiszących" procedur obsługi zdarzeń w formach Delphi
Lubię Visual Form Inheritance (VFI) w Delphi, ale wsparcie tego rozwiązania ze strony narzędzia mogłoby być znacznie lepsze.
Jedna z rzeczy, które lub się "rozjechać" podczas pracy na hierarchiach formularzy
jest mapowanie między zdarzeniami a procedurami obsługi zdarzeń.
Przedstawiam tutaj krótką procedurę pozwalającą sprawdzić niespójności w tej materii.
-
Przeciąganie plików na okno aplikacji
Krótki opis implementacji (w Delphi) głównego okna aplikacji,
które akceptuje przeciągane nań pliki spoza programu (np. przeciągane z Windows Explorera).
-
Intraweb a MaxConnections
Masz problem ze zbyt małą liczbą obsługiwanych połączeń przez Intraweb?
Sprawdź moje rozwiązanie - może Ci pomoże.
-
Argumenty za używaniem FreeAndNIL
Allen Bauer, Embarcadero Chief Scientist, dodał ciekawy wpis do swojego bloga -
A Case Against FreeAndNIL.
Generalnie zgadzam się z ogólnym przesłaniem artykułu
(gdy naprawiamy defekt, nie należy naprawiać symptomów, ale znaleźć źródło problemu i naprawić to),
nie zgadzam się, że problemem jest tutaj korzystanie z FreeAndNIL.
IMO, FreeAndNIL może pomóc w znajdywaniu defektów,
a jego używanie powinno być opisane jako obowiązkowe w standardach kodowania.
-
Intraweb jako moduł DSO Apache'a
Ile razy wygrwałem moduły Apache'a napisane w Delphi / Intraweb (VCL for the Web),
zawsze coś nie działało tak, jak bym tego chciał.
A to usługa się nie uruchamiało, a to Apache nie mógł znaleźć / uruchomić modułu, itp.
Oprócz niezbędnych zmian w HTTPD2.pas (zależnych od konkretnej wersji Apache'a),
należy jeszcze poprawnie skonfigurować dostęp do modułu w pliku httpd.conf.
I tym zajmuje się niniejszy tekst.
-
Intraweb a "Device not supported"
Twoja aplikacja Intraweb (VCL for the Web) zgłasza
wyjątek "Device not supported"
nawet gdy jest uruchamiania w standardowej przeglądarce internetowej?
Jeden możliwy powód omówiony został w tym krótkim tekście.
-
Zautomatyzowane testowanie GUI
Miałeś kiedyś problemy z testowaniem aplikacji GUI za pomocą zewnętrznych programów?
A może po prostu chcesz przetestować jedno okno/formę bez konieczności uruchamiania całego programu?
Zacznij pisać unit testy dla GUI swoich aplikacji - są równie proste co standardowe unit testy.
-
Zaokrąglanie i dokładność na FPU 8087
Po uruchomieniu testowania na maszynie wirtualnej okazało się,
że nowo generowane wyniki obliczeń statystycznych różnią się
od wyników referencyjnych (obliczonych i zapisanych wcześniej).
Mimo różnic tylko na ostatnich miejscach znaczących liczb zmienno-przecinkowych,
źródło problemu było mi nieznane, tym samym problem stał się poważny.
Rzecz sprawdza się do słowa kontrolnego na intelowskich koprocesorach numerycznych
a szczegóły opisane są w niniejszym tekście.
-
Intraweb a SessionTimeout
Pewne podejście do lepszej obsługi
automatycznego usuwania nieaktywnych sesji w Intraweb.
-
Używanie TChart w programach Intraweb
W tekście opisana jest jedna z możliwych metod wyświetlania wykresów TChart
w aplikacjach Delphi bazujących na bibliotece Intraweb (VCL for the Web).
-
Unknown driver: MySQL
Dostajesz komunikat "Unknown driver: MySQL" w twoim programie w Delphi?
Po prostu dodaj DBXMySql do instrukcji uses!
-
TIdMessage a CharSet
Chciałeś zakodować w Delphi teksty w TIdMessage za pomocą strony kodowej ISO (ISO character set), np. ISO-8859-2?
I miałeś z tym problemy? Mam nadzieję, że ten tekst nieco Ci pomoże.
-
Gwarancje oprogramowania
Jesteś użytkownikiem oprogramowania, które nie działa tak, jak na reklamie
i do którego nie możesz się doprosić darmowych poprawek w rozsądnym czasie - wywal je!
Programiści nie są czymś specjalnym, że nie muszą odpowiadać za jakość swojej pracy.
Gwarancje oprogramowania wcale nie zniszczą całej branży IT!
Więc śmiało głosuj za pomocą Twojego portfela!
-
Automatyczne testowanie formularzy okien
Masz już dość ciągłego weryfikowania kolejności kontrolek i poprawności skrótów na formularzach okien?
Ile razu wysłałeś już do klienta program, w którym skróty są zduplikowane,
w którym FocusControl w etykietach nie jest poprawnie ustawione,
w którym nie ma domyślnych przycisków w oknach dialogowych, itp.?
Ten tekst opisuje pewne podejście do automatycznego testowania formularzy okien
(a także i innych kontrolek, np. ramek).
Podejście, które, przynajmniej w moim przypadku, każdego tygodnia oszczędza kilka godzin na testowaniu.
-
TChart - brakujące etykiety w osiach
Opis problemu oraz rozwiązania brakujących etykiet w osiach wykresów TChart
przy różnych liczbach wartości w poszczególnych seriach danych.
-
Tracona pamięć i eksplozje połączeń w DBExpress
W Delphi 2009 poprawia oba problemy pojawiające się przy korzystaniu z biblioteki DBExpress do łączenia się z MySQL.
Jednakże, jeżeli nadal jesteś na Delphi 2007 i występują u Ciebie powyższe problemy,
możesz spróbować przenieść poprawkę z D2009 do D2007.
-
Kontrola dyrektyw kompilacji warunkowej oraz ustawień przełączników kompilacji
Pomysł na usprawnianie procesu kompilacji i przygotowywania oprogramowania do dystrybucji
poprzez automatyczną kontrolę ustawień kompilatora i kombinacji zdefiniowanych dyrektyw kompilacji warunkowej.
-
Wykrywanie traconej pamięci a DUnit
Znacznie łatwiej naprawia się błędy kodowania, gdy te zostaną wykryte w fazie testów modułów
niż gdy je wykryjemy podczas dalszych faz cyklu tworzenia oprogramowania.
Nie inaczej jest z przeciekaniem pamięci, szczególnie, że błąd ten może objawiać się nieregularnie,
a prześledzenie problemu do źródła może być trudne i czasochłonne.
Gdy korzystamy z Delphi, DUnit jest rozwiązaniem,
które ułatwia wykrywanie przecieków dzięki odpowiedniej opcji programu
(a dla innych języków istnieją rozwiązania podobne).
Jednakże, przy takim podejściu należy zwrócić uwagę na kilka niuansów,
z których jeden opisany jest w niniejszym tekście.
-
last_insert_id() a DBExpress
Funkcja last_insert_id() MySQLa zwraca ostatnio automatycznie wygenerowaną wartość dla danej tabeli.
Jest to dosyć przydatne, gdy np. wstawiamy rekordy i chcemy pobrać ich nowo wygenerowane identyfikatory.
Trochę czasu zajęło mi rozwiązanie zagadnienia podczas korzystania z bibliotek DBEXpress w Delphi,
a tekst ten sprawę dokumentuje.
-
Rejestracja rozszerzeń
Kod w Delphi pozwalający na rejestrację specyficznych dla aplikacji rozszerzeń plików w Windows.
-
DBExpress a dostęp wielowątkowy
Opis problemu oraz obejścia występowania nieregularnych błędów typu Access Violation
przy WideStrings.TWideStrings.GetValue oraz System.TObject.Free
podczas stosowania komponentów DBExpress do komunikacji z bazami danych MySQL (pod dużym obciążeniem).
-
Formy jak ramki
Osadzanie zwykłych form (TForm) jako ramek w innych formach.
-
Sprawdzanie błędnych odwołań a nowy menedżer pamięci
Opis problemu oraz rozwiązania występowania nieregularnych błędów typu Access Violation
podczas stosowania komponentów DBExpress do komunikacji z bazami danych MySQL.
-
Dostęp do składowych chronionych
Tekst opisuje prosty trik umożliwiający dostęp do składowych chronionych
instancji klas bez konieczności instancjonowania potomków tychże klas -
potomków, które upubliczniałyby składowe chronione.
-
Obiekty, interfejsy i obsługa pamięci w Delphi - ki czort?
Kto do jasnej ciasnej projektował interfejsy w Delphi?
Czy ten ktoś w ogóle miał pojęcie do czego się przydają interfejsy (poza COM)
i jak jego pomysł można ożenić z cała masą istniejącego kodu?
Kodu, w którym od zawsze, jeszcze od czasów Turba Pascala,
pamięć dla własnych obiektów alokowało się, i zwalniało, explicite?
No, proszę Pana(i), bardziej tego schrzanić to nie byłoby tak łatwo!
Góra
|
|
|
|