Jaskinie Podróże Nurki Grafika Mizar Teksty Kulinaria Lemkov Namiary Mapa RSS English
Spelunka Trybików Teksty Delphi YAC Software
  Wróć

Spis

Charsets

Wykresy

DBExpress

Delphi

HTML

Intraweb

PHP

Programowanie

Rhino Mocks

Software

Testowanie

VB.NET

VCL

WPF

Delphi
  • 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.

  • 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.
Góra