Błąd w czasie kompilowania, przenoszenie okna

0

W czasie kompilowania programu w Delphi 7 wyskakuje mi błąd ;/

Ma, ten kod:

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
TControl(TForm1).Perform(WM_SysCommand, $F012, 0);
end;

A tutaj błąd:

[Error] Unit1.pas(41): Undeclared identifier: 'FormMouseDown'
1

To są podstawy wejdź w Inspektor obiektów (Object Inspector) z listy wybierz Form1 (lub inną nazwę jeżeli zmieniłeś) zakładka zdarzenia (Events) kliknij przy OnMouseDown wtedy wklej kod

ReleaseCapture;
TControl(TForm1).Perform(WM_SysCommand, $F012, 0);

i weź poczytaj jakiś kurs bo bez tego nic nie zrobisz.

1

W czasie kompilowania programu w Delphi 7 wyskakuje mi błąd ;/

To w tym twoim kursie pisania superwirusów w Delphi7 nie ma tego jak się tworzy zdarzenia? A może po prostu nie umiesz doczytać? Tak czy siak powodzenia w "programowaniu".

0

Teraz po wpisaniu:

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  TControl(TForm1).Perform(WM_SysCommand, $F012, 0);
end;

i próbie przesunięcia mam takie coś:

user image

1

Bo ma być

Form1.Perform(WM_SysCommand, $F012, 0);

Nie wiem po co to rzutowanie na TControl i do tego klasy TForm1 a nie utworzonego obiektu Form1 :/

0

Dzięki wielkie :)
Wszystko działa xD

A tak P.S.
Potrzebował bym kod na chowanie do TRAY'a :P

0

To może ja się pochwalę swoim modułem dla obsługi TrayIcon pisanym pod kątem WinAPI. Wzorowałem się na kodzie źrodłowym dawo temu znalezionym na torry.net - aktualnie nie mogę znaleźćidentycznego modułu. Najważniejsze to to, że działa pod czystym WinAPI i jeżeli chodzi obsługę komponentu w konstruktorze podajemy Handle głownego okna dialogowego pod WinAPi bądź MainForm.Handle pod VCL. Jeżeli chodzi obsługę zdarzeń to mogę doradzić użycie tymczasowego obiektu w stylu podanym we fragmencie kodu w poniższym przykładzie:

//...
type
  TTempObject = class(TObject)
    procedure RestoreFromTray(Seder : TObject);
  end;
//...
var
  WATI : TWATrayIcon;
  TmpObj : TTempObject;
//...
procedure TTempObject.RestoreFromTray(Seder : TObject);
begin
  WATI.Active := False;
  ShowWindow(MaindialogHandle, SW_SHOW);
  ShowWindow(MaindialogHandle, SW_RESTORE);
  SetforeGroundWindow(MainDialogHandle);
end;
//...
        WATI := TWATrayIcon.Create(MainDialogHandle);
        with WATI do
        begin
          Icon := HMainIcon;
          ToolTip := App_Title;
          PopupMenu := TrayIconMenu;
          OnDblClick := TmpObj.RestoreFromTray;
        end;

Popupmenu to ma być uchwyt do HMenu tworzoenego przez funkcję CreatePopupMenu. Natomiast sama TrayIcon ma obsługę komunikatu: TaskbarCreated, co umożłiwia pokazanie ikonki po ewentualnym ubiciu procesu explorer.exe i tym podobnych. Aktyność ikonki ustawiamy przez własnośc Active. W razie dodatkowych pytań - piszcie. Jednak uważam, że źródło jest na tyle przejrzyste, że wszystko powinno być w miarę jasne :) Oczywiście więcej informacji z opisami poszegołnych funkcji na MSDnie. A i miałem nie poblikowac gotowców, ale przydatnych klas z ogsługą funkcji wyłącznie z zastosowaniem WinAPI bez "puchnięcią" exeków jest jak na lekarstwo, także dzielę się tym co sam napisałem na własne potrzeby już kiedyś.

0
olesio napisał(a):

A i miałem nie poblikowac gotowców, ale przydatnych klas z ogsługą funkcji wyłącznie z zastosowaniem WinAPI bez "puchnięcią" exeków jest jak na lekarstwo, także dzielę się tym co sam napisałem na własne potrzeby już kiedyś.

Akurat to jest raczej moduł, nie gotowiec... Natomiast mam inne zastrzeżenie/pytanie: Miałeś wrzucać tego typu rzeczy na swój blog, nie sądzisz że byłoby lepiej jakbyś dawał linki a wszystko trzymał 'u siebie' gdzie byś mógł wydawać nowe wersje etc.? Mógłbyś wtedy też dać jakieś demka etc. etc.

0

Spoko. Pomyślę nad tym. Już wcześniej zastanawiałem się poważnie czy nie wrzucić na bloga zbiorowego posta z linkami do - według mnie - przydatnych kodów w WinAPI, którę sam naskrobałem ucząc się pisania właśnie pod WinAPI w Delphi. Jednak nie wiem jakie by było zainterosowanie. Ale tak to jest jak się wraca w nocy do domu po paru piwach i przegląda 4p, ale widżę że mimo teoretycznie później pory według czasu CET i końca weekendu to nawet @-123oho nie próżnuje tutaj i wyłapuje nowe posty na temat Delphi / Pascala, ktore mogłby skomentować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1