Srodne teme
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

clipboard iz dll-a

[es] :: Pascal / Delphi / Kylix :: clipboard iz dll-a

[ Pregleda: 1605 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

peradetlickljucadrvo
student

Član broj: 265614
Poruke: 15
*.dynamic.sbb.rs.



Profil

icon clipboard iz dll-a20.10.2010. u 19:58 - pre 164 meseci
koristim f-je SetClipboardViewer() i ChangeClipboardChain().e sad kad ih pozivam iz aplikacije sve je u redu jar kao parametar stavim Self.Handle.medjutim sada mi je potrebno da napisem dll koji ce pozivati iste al nzm sta da stavim kao parametar?
hvala
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: clipboard iz dll-a21.10.2010. u 12:34 - pre 164 meseci
> koristim f-je SetClipboardViewer() i ChangeClipboardChain().e sad kad ih pozivam iz aplikacije sve je u redu jar kao parametar stavim Self.Handle.medjutim sada mi
> je potrebno da napisem dll koji ce pozivati iste al nzm sta da stavim kao parametar

Napravi novi HWND, možeš koristiti AllocateHWnd.
 
Odgovor na temu

peradetlickljucadrvo
student

Član broj: 265614
Poruke: 15
*.dynamic.sbb.rs.



Profil

icon Re: clipboard iz dll-a21.10.2010. u 13:36 - pre 164 meseci
niije mi jasno za sta sluzi taj TWndMethod,parametar od AllocateHwnd?jel moze neki primer?
hvala
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: clipboard iz dll-a21.10.2010. u 18:07 - pre 164 meseci
> niije mi jasno za sta sluzi taj TWndMethod,parametar od AllocateHwnd?jel moze neki primer?

Pogledaj Clipbrd.pas.
 
Odgovor na temu

peradetlickljucadrvo
student

Član broj: 265614
Poruke: 15
*.dynamic.sbb.rs.



Profil

icon Re: clipboard iz dll-a24.10.2010. u 18:30 - pre 164 meseci
kompajlira ga ali ne registruje nista..evo kod pa ako mozes da skontas u cemu je stvar?
Code:

uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,Clipbrd,ShellApi, StdCtrls;

type
  TAllocWndTest = class(TObject)

  private
    FWndHandle : HWND;
    procedure WndProc(var Msg: TMessage);

  public
    constructor Create;
    destructor Destroy; override;
    property WindowHandle: HWND read FWndHandle;
  end;

var
  fNextViewer,hWndNext, Handler: HWND;
  FOnChange : TNotifyEvent;
  FAllocWin : TAllocWndTest;

constructor TAllocWndTest.Create;
begin
  FWndHandle := AllocateHWnd(WndProc);
end;

destructor TAllocWndTest.Destroy;
begin
  DeAllocateHWnd(FWndHandle);
  inherited Destroy;
end;

procedure TAllocWndTest.WndProc(var Msg: TMessage);
begin
  Msg.Result := DefWindowProc(FWndHandle, Msg.Msg, Msg.wParam, Msg.lParam);
end;

function GetAsHandle(Format: Word): THandle;
begin
  Clipboard.Open;
  try
    Result := GetClipboardData(Format);
  finally
    ClipBoard.Close;
  end;
end;

procedure WMChangeCBChain(var Msg: TMessage);
begin
  if HWND(Msg.WParam) = fNextViewer then
    fNextViewer := HWND(Msg.LParam)
  else if fNextViewer <> 0 then
    SendMessage(fNextViewer, WM_CHANGECBCHAIN,
      Msg.WParam, Msg.LParam);
end;

procedure WMDrawClipboard(var Msg: TMessage);
var
   f: THandle;
   buffer: Array [0..MAX_PATH] of Char;
   i, numFiles: Integer;
begin
  begin
if ClipBoard.HasFormat(CF_TEXT) then
  begin
    ShowMessage(Clipboard.AsText);
  end;
  if fNextViewer <> 0 then
    SendMessage(fNextViewer, WM_DRAWCLIPBOARD,
      Msg.WParam, Msg.LParam);
end;
end;

procedure RunClip; stdcall;
begin
  FAllocWin := TAllocWndTest.Create;
 fNextViewer := SetClipboardViewer(FAllocWin.WindowHandle);
end;

procedure StopClip; stdcall;
begin
  ChangeClipboardChain(FAllocWin.WindowHandle, fNextViewer);
  FreeAndNil(FAllocWin);
end;

exports
RunClip, StopClip;
end.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: clipboard iz dll-a24.10.2010. u 19:40 - pre 164 meseci
> kompajlira ga ali ne registruje nista..evo kod pa ako mozes da skontas u cemu je stvar?

Ne vidim nigde da handluješ clipbrd poruke, imaš procedure ali se one nikada ne pozivaju. Takođe ne proveravaš da li su pozivi funkcija uopšte uspeli, SetClipboardViewer će vratiti 0 ako registracija nije uspela.
 
Odgovor na temu

peradetlickljucadrvo
student

Član broj: 265614
Poruke: 15
*.dynamic.sbb.rs.



Profil

icon Re: clipboard iz dll-a24.10.2010. u 22:32 - pre 164 meseci
Citat:
savkic
Ne vidim nigde da handluješ clipbrd poruke, imaš procedure ali se one nikada ne pozivaju

kako to da uradim?
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: clipboard iz dll-a26.10.2010. u 00:50 - pre 164 meseci
WndProc se poziva kada neka poruka stigne tom prozoru, npr: if Msg.Msg = WM_DRAWCLIPBOARD then...

 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: clipboard iz dll-a

[ Pregleda: 1605 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.