DZWON

Są tacy, którzy czytają tę wiadomość przed wami.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu

Artykuł powstał na podstawie wyników analizy programów napisanych przez młodych programistów z naszej grupy.

Poprawnie ułóż kolejność przełączania komponentów

Wielu użytkowników, szczególnie ci, którzy wcześniej pracowali w DOS, ma zwyczaj przełączania się między polami wejściowymi nie za pomocą myszy, ale za pomocą klawiatury z klawiszem Tab. Ponadto jest to znacznie szybsze niż wybieranie każdego pola za pomocą myszy. Dlatego kolejność przełączania komponentów musi być ustawiona prawidłowo. Dotyczy to zarówno komponentów wewnątrz wszystkich komponentów kontenera (paneli, GroupBoxów itp.), Jak i samych komponentów kontenera, jeśli w formularzu jest ich kilka.

Kolejność przełączania komponentów wewnątrz kontenera jest ustawiana przez właściwość TabOrder. Pierwszy staje się aktywnym składnikiem, w którym TabOrder ma wartość 0, drugi 1 i tak dalej, aż wszystkie składniki zostaną wyliczone. Ponadto składnik ma właściwość TabStop, która wskazuje, czy składnik zostanie aktywowany po przełączeniu za pomocą klawisza Tab. Jeśli chcesz zabronić przełączania się na dowolny składnik, ustaw jego TabStop \u003d false. W takim przypadku możesz przełączyć się na ten komponent tylko za pomocą myszy.

Są chwile, kiedy użytkownicy przyzwyczajeni do przełączania określonego klucza w jednym programie, z przyzwyczajenia, nadal używają go w innych. Zdarza się to często w przypadku użytkowników 1C, w których klawisz Enter może być używany do poruszania się po polach wejściowych. Cóż, dajmy im taką możliwość w naszych programach, jeśli o to poproszą. Ustaw właściwość KeyPreview formularza na true i napisz procedurę obsługi zdarzeń dla zdarzenia OnKeyPress:

Procedura TForm1.FormKeyPress (Sender: TObject; var Key: Char);
zaczynać
if ord (key) \u003d vk_Return to
Form1.SelectNext (PriemForm.ActiveControl, true, true);
koniec;

Taka procedura obsługi umożliwia nawigację po elementach formularza po naciśnięciu klawisza Enter. Należy zauważyć, że ta metoda nie będzie działać z przyciskami, ponieważ naciśnięcie klawisza Enter na przycisku powoduje jego naciśnięcie, a naciśnięcie klawisza Tab przenosi fokus wprowadzania do następnego składnika w sekwencji przełączania.

Domyślne przyciski

Wszyscy ci sami użytkownicy szybko przyzwyczajają się do tego, że w oknach dialogowych aplikacji z reguły wybór można potwierdzić klawiszem Enter, a anulować klawiszem Esc. Nie zawiedźmy ich w naszych programach, zwłaszcza że jest to bardzo łatwe. W przypadku przycisku, który reaguje na Enter, ustaw właściwość Default na true. W przypadku przycisku, który reaguje na klawisz Esc, ustaw właściwość Cancel na true. I to wszystko.

Tak lub nie

Wszystkie okna dialogowe żądające działań użytkownika muszą mieć co najmniej dwa przyciski: potwierdź akcję i anuluj akcję (Tak / Nie, Zapisz / Anuluj itp.). Anulowanie akcji można wykonać zamykając okno przyciskiem [X] w tytule okna. Niedopuszczalne jest, gdy jest tylko jeden przycisk potwierdzający akcję, a odmowa ma zamykać okno przyciskiem [X] w nagłówku lub nie ma możliwości odmowy w ogóle. To dezorientuje użytkownika i rodzi logiczne pytanie: jak odmówić?

Nie zapomnij również o tym, co zostało powiedziane powyżej w sekcji „Przyciski domyślne”.

Wszystkie okna dialogowe powinny otwierać się na środku ekranu

Wyśrodkowane, a nie tam, gdzie zostały utworzone w trybie projektowania. Po pierwsze jest jaśniejszy, a po drugie automatycznie eliminuje problem różnych rozdzielczości ekranu dla różnych użytkowników.

Wyjątkiem jest sytuacja, gdy okno dialogowe nie jest modalne, aw wyniku pracy użytkownika zmiany w oknie głównym od razu następują w tym oknie (na przykład filtrowanie zbioru danych, przerysowywanie wykresów itp.).

Rozmiary okien nie powinny przekraczać rozmiarów ekranu

W żadnym wypadku. To hańba, gdy część okna wyczołguje się z ekranu. To wymaganie nie zależy od rozdzielczości ekranu użytkownika, tj. wymówki takie jak „Niech otrzymają więcej pozwoleń” nie działają.

Popraw zmianę rozmiaru elementów okiennych

Elementy okna muszą zmieniać rozmiar lub przesuwać się poprawnie, gdy zmienia się rozmiar okna, gdy okno jest zmaksymalizowane i gdy okno jest przywracane po maksymalizacji.

Wszystko jest zawsze widoczne

Zmniejszenie rozmiaru okna nie powinno prowadzić do zniknięcia elementów okna, a najlepiej nie powinno prowadzić do pojawienia się pasków przewijania (scrollerów) samego okna. Możesz ograniczyć minimalny rozmiar okna, aby wszystkie elementy były widoczne i dostępne. Jeśli nie jest możliwe umieszczenie komponentów tak, aby wszystkie były widoczne w oknie, możesz użyć zakładek (takich jak PageControl), aby podzielić komponenty na grupy. Nie brakuje nam też wymówek dotyczących rozdzielczości ekranu.

Wszędzie podpowiedzi, zawsze podpowiedzi

W przypadku przycisków, zwłaszcza na paskach narzędzi (takich jak ToolBar), podpowiedzi powinny być ustawione tak, aby zawsze było jasne, dlaczego ten lub inny przycisk jest potrzebny.

Spektrum kolorów

Nie maluj elementów na formie wszystkimi kolorami tęczy. To męczy oczy i odwraca uwagę użytkownika. To nie wygląda fajnie. Podświetlanie stosuje się, gdy konieczne jest zwrócenie uwagi użytkownika na określony element lub określoną część okna. Na przykład, kolorowe rekordy z błędami są koloru jasnoczerwonego lub, odwrotnie, jasnozielone w rekordach, które zostały pomyślnie zweryfikowane.

Wniosek

Istnieje bardzo dobra metoda, która pozwala znaleźć ogólne wady programu, aw szczególności jego interfejs. To proste: wyobraź sobie siebie w miejscu użytkownika i przez pół godziny staraj się pracować tak, jak on. Jeszcze lepiej, jeśli Twój użytkownik jest w zasięgu (np. Pracuje w tej samej organizacji). W takim przypadku usiądź obok niego, a raczej zamiast niego i spróbuj wykonać jego pracę. Wprowadzaj dane, modyfikuj je, wyświetlaj raporty itp. Jeśli nie wiesz, jak to zrobić dobrze, zapytaj użytkownika. Nie wykonuj jednej lub dwóch operacji tego samego typu, jak w trybie debugowania, ale 20-30, a nawet więcej, różnych operacji w innej kolejności. Zapomnij o wpisaniu czegoś lub wpisz niepoprawnie i zobacz, jak zareaguje na to program. Szybko zobaczysz słabe punkty Twój program.

Autor artykułu zautomatyzował pracę biura rekrutacyjnego na uczelni, aw pierwszym roku wprowadzenia programu spędzał 3-4 godziny dziennie w biurze rekrutacyjnym, rejestrując kandydatów, uzupełniając ich dane osobowe i składając im raporty egzaminacyjne. W pozostałych godzinach pracy poprawiał błędy i niedociągnięcia. Uwierz mi, w przyszłym roku praktycznie nie ma już problemów. Podobnie było z wprowadzeniem modułu personalnego.

Dlatego pamiętaj o wrażeniach użytkownika. Ułatw im pracę z Twoimi programami.

Kreatura berło użytkownik sprowadza się do wyboru z palety komponentów komponentów Delphi niezbędnych do działania programu berło zarządzanie, jak również berło wyświetlanie informacji i przenoszenie ich do Formularza z późniejszym układem.

Tworzony interfejs użytkownika powinien wykorzystywać standardowe elementy znane użytkownikom i zapewniać maksymalną wygodę. Ostatecznie o wszystkim decyduje takie kryterium, jak efektywność interfejsu - maksymalny wynik przy minimalnym wysiłku.
Zasady tworzenia przyjazny dla użytkownika interfejs są znane. Jak najbardziej ogólne zasady przy tworzeniu interfejsy użytkownika należy wziąć pod uwagę trzy główne kwestie:

  1. Program powinien pomóc w wykonaniu zadania, a nie nim stać.
  2. Podczas pracy z programem użytkownik nie powinien czuć się głupcem.
  3. Program musi działać w taki sposób, aby użytkownik nie pomyślał, że komputer jest głupcem.
Pierwsza zasada - to tak zwana „przezroczystość” interfejsu. Interfejs użytkownika powinien być intuicyjny, łatwy do nauczenia i nie stwarzać użytkownikowi problemów, które będzie musiał przezwyciężyć w trakcie. Użyj standardowych, bez zbędnych elementów dekoracyjnych, użyj zwykłych metod sterowania używanych przez podobne programy, a osiągniesz kryteria wydajności pierwsza zasada.

Druga zasada to zaniedbanie zdolności intelektualnych użytkowników. Z własnego doświadczenia wiem, że często użytkownicy nie tylko nie wiedzą, jak pracować przy komputerze, ale po prostu boją się zrobić coś samodzielnie. Dlatego interfejs użytkownika powinien być jak najbardziej przyjazny.
Ponadto obawy użytkowników są często uzasadnione, ponieważ kosztu programu i samego komputera nie można porównać np. Z kosztem bazy danych stworzonej przez wiele lat pracy. Dlatego programista, tworząc interfejs użytkownika, musi zawsze wbudować program „niezawodny” - na błędne działania i wprowadzenie przez użytkownika nieprawidłowych danych. Jednak niektórzy programiści zbytnio dają się ponieść takiej ochronie, czynią ją zbyt uciążliwą, w wyniku czego działanie programu przypomina słynne „krok w lewo, krok w prawo to ucieczka”! A to, co programista tworzy jako rozwiązanie problemu, samo zaczyna stwarzać problemy.
Przestrzegać druga zasada nie ma potrzeby, aby program „poprawiał” działania użytkownika i wskazywał dokładnie, jak ma działać, wprowadzając go w wąskie ramy. Nie należy też zbytnio przejmować się wyświetlaniem podpowiedzi informacyjnych, zwłaszcza komunikatów dialogowych, ponieważ odwraca to uwagę użytkownika od pracy. Jeszcze lepiej, zapewnij możliwość wyłączenia monitów.

Trzecia zasada polega na stworzeniu programu o jak największej zdolności „umysłowej”. Pomimo szybkiego rozwoju technologia komputerowanawet szeroko rozpowszechnione programy można tylko warunkowo nazwać posiadającymi sztuczną inteligencję. Zakłócają pracę użytkownika, wyświetlając okna dialogowe z głupimi pytaniami, które powodują zamieszanie nawet w najprostszych sytuacjach. W rezultacie użytkownicy wykrzykują w swoich sercach: „Cóż, ta maszyna jest głupia!”
Osobiście denerwują mnie ciągłe pytania prawie wszystkich edytory tekstu o tym, czy zachować zmieniony tekst, chociaż tekst oryginalny i aktualny nie różnią się żadnym symbolem. Tak, wpisałem coś, ale potem wszystko zwróciłem, naprawdę nie możesz tego rozgryźć! Muszę sprawdzić, czy coś nie zepsułem.

Staraj się przestrzegać następujących zasad:

Standardowe elementy interfejsu
Użyj standardu dla tego elementu komponenty interfejsu. Po zapoznaniu się z Twoim programem użytkownik nie będzie tracił czasu na wzajemne poznanie się, ale od razu zacznie działać - to jeden z przejawów profesjonalnie wykonanego programu.
Mała paleta narzędzi
Staraj się nie używać zbyt wielu różnych komponentów. I oczywiście, po użyciu jednego standardowego komponentu gdzieś w jednym miejscu, w podobnym przypadku również go użyj.
Równe odstępy między kontrolkami
Umieść elementy interfejsu w tej samej odległości od siebie. Rozrzucone komponenty sprawiają wrażenie nieprofesjonalnego produktu. I odwrotnie, staranne rozmieszczenie przycisków, przycisków radiowych, pól wyboru i innych komponentów tworzących interfejs w formularzu jest oznaką dobrej pracy.
TabOrder. "Właściwa kolejność
TabOrder to kolejność, w jakiej kursor ekranowy przesuwa się między elementami sterującymi po naciśnięciu klawisza Patka... W poprawnie napisanym programie kursor przesuwa się zgodnie z logiką pracy użytkownika z programem. Podczas tworzenia programu programista często zmienia komponenty, usuwa niektóre i dodaje inne w razie potrzeby. W rezultacie w gotowym programie kursor przeskakuje losowo nad formularzem. Po zakończeniu programu nie zapomnij o konfiguracji TabOrder.
Wybór czcionki
Po prostu zostaw czcionki w spokoju. Własne domyślne czcionki Delphi będą działać na każdym systemie, na którym może działać Twój program. Użyj pogrubienia tylko do podkreślenia ważnych elementów. Zastosowanie italski a szczególnie podkreśleniektóry użytkownik mógłby pomylić z hiperłączem jest złą formą.
Wybór kolorów
Jeśli chodzi o kolory elementów interfejsu, podobnie jak w przypadku czcionek, lepiej pozostawić je w standardzie. Delphi korzysta z palety systemowej Windows, a użytkownik, zmieniając ją, może łatwo dostosować kolory dla siebie.
Alternatywne sterowanie
Profesjonalnie wykonany program powinien dać się obsługiwać nie tylko myszą, ale także klawiaturą. Nie powinno być funkcji, które można wykonać tylko myszą (rysowanie edytorzy graficzni nie liczy się!). W przypadku najczęściej używanych funkcji należy zapewnić „klawisze skrótu”, aby zapewnić im szybki dostęp.
Klocki interfejsu
Jeśli chodzi o poszczególne elementy interfejsu użytkownika, jakość interakcji użytkownika z programem zależy od: A teraz chcę pokazać, jakie narzędzia oferuje Delphi do zarządzania komponentami w formularzu, ich względną pozycję i zachowanie kursora po naciśnięciu klawisza Patka.

Najpierw należy ułożyć elementy względem siebie we właściwej kolejności trzeba je podkreślić... Możesz po prostu przeciągnąć myszą po obszarze formularza zawierającym wybrane komponenty. Lub przytrzymując „ Zmiana", wskaż tą samą myszą każdy komponent, który ma zostać wybrany. Wielokrotne kliknięcie myszą na wybrany komponent (kiedy" Zmiana”) usuwa zaznaczenie z niej.

Wybranymi komponentami można manipulować całością - można je przesuwać po Formularzu, przypisywać wartości do tych samych właściwości, kopiować (w celu instalacji np. Na innym Formularzu), a nawet usuwać.

Teraz kliknij prawym przyciskiem myszy jeden z komponentów iz wyskakującego menu wybierz Pozycja -\u003e Wyrównaj ... Zostanie wyświetlone okno dialogowe umożliwiające dostosowanie poziomego i pionowego położenia komponentów w grupie. Na przykład musimy wyrównać nasze cztery przyciski do lewej i upewnić się, że jest między nimi taka sama odległość w pionie. Aby to zrobić, wybierz przyciski opcji Poziomo: po lewej stronie i Vertikal: przestrzeń równomiernie.

Wybierając element Środek, rozmieścimy komponenty tak, aby ich środki znajdowały się na tej samej linii poziomo lub pionowo oraz punkt Wyśrodkuj w oknie przesuwa komponenty na środek okna, również w poziomie lub w pionie.

W tym samym menu linia Patka Order ... powoduje pojawienie się okna dialogowego kontrolującego ruch kursora nad elementami interfejsu po naciśnięciu klawisza Patka... Gdy Formularz pojawi się na ekranie, kursor będzie naturalnie znajdować się na komponencie znajdującym się w pierwszej linii okna dialogowego. Następnie przesunie się w dół listy. W oknie dialogowym dwie niebieskie strzałki w górę i w dół sterują położeniem wybranego komponentu. Wybierz wymagany komponent, użyj strzałek, aby przejść do wymaganej linii na liście i tak dalej.

Podczas wybierania pozycji menu Kontrola -\u003e pojawi się podmenu składające się z dwóch pozycji:

  • Przesuń na wierzch
  • Wyślij wstecz
Są to metody składowe, które są również dostępne programowo. Button1.SendToBack przenosi przycisk do „tła” i Button1.BringToFront - Przesuń na wierzch". Oznacza to, że jeśli jeden komponent jest umieszczony na drugim, te metody zamieniają je. Przypadki, w których można to zastosować, są dość oczywiste.

tylko dla wyniku

ścisłe przestrzeganie terminów

Przezroczystość

realizacja projektu

wsparcie techniczne jako prezent

Programowanie, weryfikacja konsultacji 1C

Jak pracujemy

1. Omawiamy problem przez telefon. W obecności zdalny dostęp - pokaż na ekranie komputera.

2. Pracę wyceniamy w rublach, jeśli projekt jest duży, jeśli nie - przybliżoną liczbę godzin.

3. Wykonujemy pracę.

4. Przyjmujesz pracę w swoim programie, jeśli są jakieś niedociągnięcia, poprawiamy je.

5. Wystawiamy fakturę, którą płacisz.

Koszt pracy

1. Wszystkie prace są podzielone na 3 kategorie: konsultacje, aktualizacje typowa konfiguracja, opracowanie lub programowanie nowego raportu, przetwarzanie, przyciski itp.

3. W przypadku pracy powyżej 10 godzin zadanie techniczne z opisem i kosztem pracy. Prace rozpoczynają się po uzgodnieniu z Tobą warunków umowy.

Pomoc techniczna

1. W przypadku stwierdzenia błędów we wcześniej zaakceptowanych pracach, w ciągu 3 miesięcy usuniemy je bezpłatnie.

2. Dla stałych klientów Wszelkie braki w naszej pracy usuwane są bezpłatnie przez cały rok.

Programy do zarządzania Twoją firmą.

Kup 1C: Enterprise

Jesteśmy oficjalnym sprzedawcą 1C, możesz kupować od nas różne oprogramowanie i licencje. Oprócz zakupu „boxa” pomożemy Ci w konfiguracji programu, doradzimy i dokonamy podstawowych ustawień.

  • Księgowość
  • Automatyzacja sklepu
  • Hurt
  • W pakiecie znajduje się pomoc dotycząca instalacji i początkowej konfiguracji!
  • Dostrajanie konfiguracji pod potrzeby klienta, rozwój nowych modułów w przypadku braku niezbędne funkcje w standardowej konfiguracji.
1c księgowość 1C: Zarządzanie handlem 1C: Handel detaliczny 1C: Zarządzanie wynagrodzeniami i personelem
Od 3300 rub. Od 6700 rub. Od 3300 rub. Od 7400 rub.

Udostępnianie serwera.

Serwer natychmiastowej konfiguracji + 1C.

Nie masz serwera? Nie ma to znaczenia, odbierzemy i szybko skonfigurujemy serwer w „chmurze”. Za niewielka opłata otrzymujesz bardzo niezawodne rozwiązanie.

  • Dostępność 24/7
  • Nie musisz mieć własnego administrator systemu (oszczędności pokryją koszty twojego serwera).
  • Szybka konfiguracja i instalacja 1C na serwerze, za 3 dni będziesz miał już w pełni działający system.
  • W każdej chwili możesz się przenieść do serwer lokalnyjeśli rozwiązanie Ci nie odpowiada.

SMS z Twojego 1C

Chcesz, aby klienci na czas wiedzieli o promocjach, rabatach? Klienci nie wracają? Skonfiguruj wysyłanie wiadomości SMS bezpośrednio z 1C!

Nasza firma będzie mogła szybko skonfigurować wysyłanie SMS-ów do Twoich klientów bezpośrednio z 1C. Przykłady zdarzeń, które można zautomatyzować:

  • Wdzięczność za zakup i naliczenie premii natychmiast po kolejnym zakupie.
  • Naliczenie bonusów do karty jako prezent na urodziny / na inne ważne lub święto.
  • Powiadomienie o przybyciu towaru do magazynu.
  • Wygaśnięcie bonusów prezentowych.
  • Powiadomienie o otrzymaniu zaliczki i rezerwacji towaru.
  • Adres ze szczegółami dojazdu do sklepu / biura, numery telefonów.
  • Itp.

Ustawienia w 1C mogą wykonać nasi specjaliści lub nasi pracownicy. Możesz zapoznać się z taryfami na stronie z taryfami SMS.

  • Gwarancja dostarczenia SMS-a, opłata jest naliczana tylko za dostarczony SMS.
  • Oddzielne rozliczenie za każdy SMS.
  • Uzupełnianie salda na różne sposoby.
  • Zobacz historię wszystkich wysłanych SMS-ów w dowolnym momencie.
  • Nazwa nadawcy zamiast numeru cyfrowego w telefonie odbiorcy wiadomości.

Jeden z największych atutów środowiska programowanie w Delphi to jego otwarta architektura, dzięki której Delphi umożliwia swego rodzaju metaprogramowanie, pozwalające na „programowanie środowiska programistycznego”. Takie podejście przekłada Delphi na jakość nowy poziom systemy tworzenia aplikacji i pozwala na osadzenie w tym produkcie dodatkowych narzędzi wspierających niemal wszystkie etapy tworzenia systemów aplikacyjnych. Tak szeroki wachlarz możliwości otwiera się dzięki koncepcji tzw. Otwartych interfejsów zaimplementowanych w Delphi, które stanowią ogniwo łączące IDE (Integrated Development Environment) z narzędziami zewnętrznymi.

Ten artykuł skupia się na otwartych interfejsach Delphi i zawiera przegląd możliwości, które reprezentują. Delphi definiuje sześć otwartych interfejsów: interfejs narzędzi, interfejs projektowy, interfejs eksperta, interfejs plików, interfejs edycji i interfejs kontroli wersji. Jest mało prawdopodobne, aby w ramach tego artykułu bylibyśmy w stanie szczegółowo wyjaśnić i zilustrować możliwości każdego z nich. Kody źródłowe Delphi pomogą ci dokładniej zrozumieć rozważane kwestie, ponieważ programiści dostarczyli im szczegółowe komentarze. Deklaracje klas reprezentujące interfejsy publiczne są zawarte w odpowiednich modułach w katalogu ... \\ Delphi \\ Source \\ ToolsAPI. Interfejs projektowy (moduł DsgnIntf.pas) udostępnia narzędzia do tworzenia edytorów właściwości i edytorów komponentów.

Edytory właściwości i komponentów są tematem godnym osobnego omówienia, więc przypominamy sobie tylko, że edytor właściwości kontroluje zachowanie Inspektora obiektów podczas próby zmiany wartości odpowiedniej właściwości, a edytor komponentów jest aktywowany po dwukrotnym kliknięciu lewym przyciskiem myszy na obraz komponentu umieszczonego na formularzu. Interfejs kontroli wersji (moduł VCSIntf.pas) służy do tworzenia systemów kontroli wersji. Od wersji 2.0 Delphi obsługuje zintegrowany system kontroli wersji Intersolv PVCS, więc w większości przypadków nie ma potrzeby tworzenia własnego systemu. Z tego powodu pominiemy również interfejs kontroli wersji. Interfejs plików (moduł FileIntf.pas) umożliwia nadpisanie działającego systemu plików IDE, co daje możliwość wyboru własnego sposobu przechowywania plików (np. W polach Nota na serwerze bazy danych). Interfejs Edit (moduł EditIntf.pas) zapewnia dostęp do bufora kodu źródłowego, który pozwala analizować i generować kod, określać i zmieniać położenie kursora w oknie edytora kodu oraz sterować podświetlaniem składni tekstu źródłowego.

Klasy specjalne zapewniają interfejsy do komponentów umieszczonych w formularzu (definiowanie typu komponentu, pobieranie odniesień do komponentów nadrzędnych i potomnych, dostęp do właściwości, przekazywanie fokusu, usuwanie itp.), Do samego formularza oraz do pliku zasobów projektu. Interfejs edycji pozwala również na identyfikację tzw. Powiadamiaczy modułowych, które określają reakcję na zdarzenia takie jak zmiana tekstu źródłowego modułu, modyfikacja formularza, zmiana nazwy komponentu, zapis, zmiana nazwy lub usunięcie modułu, zmiana pliku zasobów projektu itp. Interfejs narzędzia (ToolIntf. pas) zapewnia programistom możliwość uzyskania informacje ogólne stan IDE i wykonywanie działań, takich jak otwieranie, zapisywanie i zamykanie projektów oraz poszczególne pliki, tworzenie modułu, uzyskiwanie informacji o aktualnym projekcie (ilość modułów i formularzy, ich nazwy itp.), rejestracja system plikóworganizacja interfejsów do poszczególnych modułów itp. Oprócz modułowych powiadomień, interfejs narzędzi definiuje dodatkowe powiadomienia, które powiadamiają o zdarzeniach, takich jak otwieranie / zamykanie plików i projektów, ładowanie i zapisywanie pliku projektu na komputerze stacjonarnym, dodawanie / wykluczanie modułów projektu, instalowanie / odinstalowywanie pakietów, kompilowanie projektu. W przeciwieństwie do powiadamiaczy modułowych, powiadamiacze dodatków umożliwiają anulowanie wykonywania niektórych zdarzeń.

Ponadto interfejs narzędzi zapewnia dostęp do głównego menu Delphi IDE, umożliwiając wbudowanie w nie dodatkowych elementów. Expert Interface (moduł ExptIntf.pas) jest podstawą do tworzenia Expert Advisors - modułów oprogramowania, które są osadzane w IDE w celu rozszerzenia jego funkcjonalności. Przykładem eksperta jest kreator formularza bazy danych Delphi, który generuje formularz do przeglądania i zmiany zawartości tabeli bazy danych. Po zdefiniowaniu klasy eksperta należy się upewnić, że Delphi „wie” o naszym ekspercie. Aby to zrobić, należy go zarejestrować, wywołując procedurę RegisterLibraryExpert, przekazując jej instancję klasy eksperta jako parametr. Na przykład utworzymy prostego doradcę eksperta w stylu esStandard, który po wybraniu odpowiedniej pozycji menu Delphi wyświetli komunikat, że jest uruchomiony. Jak widać z powyższej tabeli, styl esStandard wymaga zastąpienia sześciu metod:

Aby ekspert został „aktywowany”, należy wybrać element menu Component / Install Component…, wybrać moduł zawierający eksperta (w naszym przypadku exmpl_01.pas) w oknie dialogowym Przeglądaj, kliknąć OK i po skompilowaniu pakietu dclusr30.dpk w menu głównym Delphi, w sekcji Pomoc, powinna pojawić się pozycja Simple Expert 1, po jej wybraniu pojawi się komunikat informacyjny „Standard Expert started!”. Dlaczego Delphi umieszcza pozycję menu eksperta w sekcji Pomoc pozostaje tajemnicą. Jeśli nie podoba ci się fakt, że pozycja menu pojawia się wszędzie tam, gdzie Delphi, a nie tam, gdzie chcesz, możliwa jest następująca opcja: utwórz eksperta stylu dodatków, co eliminuje automatyczne tworzenie element menu i dodaj pozycję menu „ręcznie” za pomocą interfejsu narzędzi. Pozwoli ci to w dowolny sposób ustawić lokalizację nowej pozycji w menu głównym.

Aby dodać element menu, używana jest klasa TIToolServices - podstawa interfejsu narzędzi - oraz klasy TIMainMenuIntf, TIMenuItemIntf, które implementują interfejsy do głównego menu IDE i jego elementów. Klasa TIToolServices ToolServices jest tworzona przez samo IDE podczas inicjowania. Zwróć uwagę, że deweloper jest wyłącznie odpowiedzialny za udostępnianie interfejsów do głównego menu i elementów Delphi. Po drodze komplikujmy obciążenie funkcjonalne eksperta: aktywując swoją pozycję menu, wyda certyfikat z nazwą projektu otwartego w ten moment w środowisku: W tym przykładzie centralnym elementem jest funkcja AddIDEMenuItem, która dodaje element menu do głównego menu Delphi IDE. Tekst nowej pozycji menu, jej identyfikator, identyfikator pozycji, przed którą wstawiana jest nowa pozycja, symboliczna reprezentacja klawisza, który razem z klawiszem Ctrl może służyć do szybki dostęp do nowego elementu oraz program obsługi zdarzeń odpowiadający wyborowi nowego elementu. Dodaliśmy nową pozycję menu do sekcji Widok przed pozycją Zegarki.

Teraz zapoznajmy się z zgłaszającymi. Zdefiniujmy add-in notifier, który śledzi momenty zamykania / otwierania projektów i odpowiednio dostosowuje pole przechowujące nazwę aktywnego projektu (pominiemy implementację metod, które nie przeszły zmian w porównaniu z poprzednim przykładem): Aby zaimplementować powiadamiającego, zdefiniowaliśmy klasę TAddInNotifier będącą potomkiem TIAddInNotifier i nakładał się na FileNotification. Środowisko IDE wywoła tę metodę za każdym razem, gdy wystąpi zdarzenie, na które powiadamiający dodatek może odpowiedzieć (każde takie zdarzenie jest oznaczone odpowiednią stałą typu TFileNotification). Pole Expert w klasie TAddInNotifier jest używane do sprzężenie zwrotne z ekspertem (metoda TAddInNotifier.FileNotification). W destruktorze eksperta rejestracja zgłaszającego jest usuwana, a zgłaszający niszczony. Zilustrujmy teraz zastosowanie zgłaszających modułowych. Stwórzmy eksperta ds. Dodatków, który będzie wydawał komunikaty o każdej czynności zapisywania pliku projektu (nie będziemy przedstawiać implementacji znanych nam metod ze względu na zwięzłość): W tym przykładzie ekspert ds. Dodatków monitoruje zdarzenia związane z otwieraniem / zamykaniem projektów.

Za każdym razem, gdy otwierany jest projekt, rejestrowane jest modułowe powiadomienie odpowiadające plikowi projektu. Pod względem implementacji modułowe powiadamiacze są podobne do powiadamiających dodatków: definiujemy klasę TModuleNotifier, która jest potomkiem TIModuleNotifier, i zastępujemy jej metody Notify i ComponentRenamed. IDE wywołuje metodę Notify, gdy zostaną zgłoszone określone zdarzenia związane z tym modułem; w ramach tej metody definiowana jest reakcja na to lub inne zdarzenie. Metoda ComponentRenamed jest wywoływana, gdy zmieni się nazwa komponentu w formularzu modułu. Należy pamiętać, że nie używamy tej metody, ale musimy ją przesłonić, w przeciwnym razie w przypadku zmiany nazwy komponentu zostanie wywołana metoda abstrakcyjna klasy bazowej, co prowadzi do nieprzewidywalnych konsekwencji.

Rejestracja powiadamiacza modułowego jest nieco bardziej skomplikowanym procesem niż rejestracja powiadamiacza dodatku: najpierw otrzymujemy interfejs modułu (TIModuleInterface), a następnie rejestrujemy zgłaszającego za pomocą interfejsu modułu. Po zamknięciu projektu rejestracja zgłaszającego modułowego zostaje wyrejestrowana (ponownie przy użyciu TIModuleInterface), a zgłaszający zostaje zniszczony. Na koniec pokażemy, jak określić położenie kursora w oknie edytora kodu. Stwórzmy Doradcę Eksperta, który po wybraniu odpowiedniej pozycji menu wyświetli komunikat zawierający nazwę aktywnego pliku i pozycję w nim kursora (podane są tylko te, które są istotne dla ten przykład metody): Aby określić położenie kursora, musimy otrzymać następującą sekwencję interfejsów: interfejs modułowy (TIModuleInterface); interfejs edytora kodu (TIEditorInterface); interfejs widoku modułu w oknie edytora (TIEditView).

Jeśli plik z tekstem źródłowym (* .pas) jest aktywny, gdy wybrana jest pozycja menu eksperta, wyświetlany jest komunikat zawierający nazwę aktywnego pliku i aktualną pozycję kursora w nim. Jeśli aktywny jest plik inny niż pas, komunikat nie jest wyświetlany. Aby uzyskać nazwę aktywnego pliku, używana jest metoda GetCurrentFile klasy TIToolServices. Na tym kończy się przegląd sposobów korzystania z otwartych interfejsów. Płyta CD-ROM zawiera kod źródłowy wszystkich dostarczonych przykładów. CD-ROM zawiera również bardziej złożony i szczegółowy przykład zawierający eksperta w postaci dodatków, który umożliwia użytkownikowi dodanie zakładek do źródeł modułów Delphi. Skrócona instrukcja obsługi Informacje dotyczące instalacji i korzystania z narzędzia Bookmark Expert znajdują się w pliku bkmrks97.htm. Dlatego w tym artykule opisano otwarte interfejsy i podano przykłady ich użycia. Ponownie, dzięki dostępnemu kodowi open source, możesz łatwo znaleźć szczegóły, które Cię interesują. Mamy nadzieję, że różnorodność możliwości, jakie dają otwarte interfejsy, da Ci więcej niż jeden odważny i przydatny pomysł.

DZWON

Są tacy, którzy czytają tę wiadomość przed wami.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu