Delphi Brasil
Seja bem-vindo (a) ao Delphi Brasil,aqui você encontrará dicas,tutoriais e etc.
Por favor,registre-se para obter o maior proveito possivel do fórum.
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Conectar-se

Esqueci minha senha

Parceiros

Ajuda com programinha Delphi 5

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Ajuda com programinha Delphi 5

Mensagem por adrianofrt em Dom Dez 30, 2012 6:31 pm

olá pessoal, sou iniciante em delphi 5 e estou tentando reproduzi o seguinte programa do livro delphi 5 guia do desenvolvedor:

Código:


unit CIMain;

interface

uses
  WinTypes, WinProcs, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls,  ExtCtrls, Menus;

  const
    SX_MYMESSAGE = WM_USER;
    MessString = '%s message now in %s.';

type
    TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    messProcCB: TCheckBox;
    WndProcCB: TCheckBox;
    CheckBox3: TCheckBox;
    DefHandCB: TCheckBox;
    PostMessButton: TButton;
    SendMessButton: TButton;
    GroupBox2: TGroupBox;
    OnMsgRB: TRadioButton;
    WndProcRB: TRadioButton;
    MessageProcRB: TRadioButton;
    DefHandRB: TRadioButton;
    CheckBox5: TCheckBox;
    procedure PostMessButtonClick(Sender: TObject);
    procedure SendMessButtonClick(Sender: TObject);
    procedure EatMsgCBClick(Sender: TObject);
    procedure FormCreat(Sender: TObject);
    procedure AppMsgCBClick(Sender: TObject);

  private
    { Private declarations }
    procedure OnAppMessage(var Msg: TMsg; var Handled: Boolean);
    procedure WndProc(var Msg: TMessage); override;
    procedure SXMyMessage(var Msg: TMessage); message SX_MYMESSAGE;
    procedure defaultHandler(var Msg); override;
            end;
  public
    var
  MainForm: TMainForm;

    { Public declarations }

        end;

implementation

{$R *.DFM}

  const
    SendPostStrings: array[0..1] of String = ('Sent', 'Posted');
    procedure TmainForm.FormCreat(Sender: TObject);
begin
  Application.OnMessage := OnAppMessage;
  AppMsgCB.Tag :=Longint(OnMsgRB);
  WinProcCB.tag := Longint (WndProcRB);
  MessProcCB.Tag := (MsgProcRB);
  DefHandCB.Tag := Longint (DefHandlerRB);
  OnMsgRB.Tag := Longint (AppMsgCB);
  WndProcRB.Tag := Longint (WndProcCB);
  MsgProcRB.Tag := Longint (MssProcCB);
  DefHandlerRB.Tag := Longint(DefHandCB);

end;

  procedure TmainForm.OnAppMessage(var Msg: TMsg; var handler: Boolean);

begin
  if Msg.message = SX_MYMESSAGE then
  begin
    if AppMsgCB.Checked then
    begin
      ShowMessage(Format (MessString, [SendPostString[Msg.WParam],
      'Application.OnMessage']));
    Handled := OnMsgRB.Checkd;
    end;
  end;
end;
  procedure TMainForm.WndProc(var Msg: TMessage);
  var
    CallInherited: Boolean;
  begin
    CallInherited := True;
    if Msg.Msg = SX_MYMESSAGE then
    begin
      if WndProcCB.Checked then
      begin
        ShowMessage(Format(MessString, [SendPostStrings[Msg.WParam],
        'WindProc']));
        CallInherited := not WndProcRB.Checked;
      end;
    end;
    if CallInherited then inherited WndProc(Msg);
    end;

  procedure TMainForm.SXMyMessage(var Msg: TMessage);
  var
    CallInherited: Boolean;
    begin
      ShowMessage(Format (essString, [SendPostStrings[Msg.Wparam],
      'Message Procedure']));
      CllInherited := not MsgProcRB.Checked;
    end
    if CallInherited Then Inherited;
  end;
  procedure TMainForm.DefaultHandler(var Msg);
  var
    CallInherited: Boolean;
  begin
    CallInherited := True;
    if TMessage(Msg).Msg = SX_MYMESSAGE then begin
      ifDefHandCB.Checked then
      begin
        ShowMessage(Format(MessString,[SenPostStrings[TMessage(msg).WParam], 'DefaultHandler']))
          CallInherited := not DefHandlerRB.Checked;
    end;
  end;
  if CallInherited then inherited DefaultHa(msg);
  end
  procedure TMainForm.PostMessButtonClick (Sender: TObject);
  begin
    PostMessage(Handle, SX_MYMESSAGE,1,0);
  end
  procedure TMainForm.AppMsgCBClick (Send: TObject);
  begin
    if EatMsgCB.Checked then
    begin
      with TRadioButton((Sender as TcheckBox).Tag) do
      begin
        Enable := TCheckbox(Sender).Checked := False;
      end;
    end;
  end;
  procedure TMainForm.EatMsgCBClick (Sender: TObject);
  var
    i: integer;
    DoEnable, EatEnable: Boolean;
  begin
    EatEnabled := EatMsgCB.Checked;
    for i :=0 to EatMsgGB.Control.Count - 1 do
      with EatMsgGB.Controls[i] as TRadioButton do
      begin
        DoEnable := EatEnabled
        if DoEnable then DoEnable := TCheckBox(Tag).Checked;
        if not DoEnable then Checked := False;
        Enable := DoEnable;
        end;
      end;
end.

eis os erros:

[Hint] CIMain.pas(37): Overriding virtual method 'TForm1.WndProc' has lower visibility (private) than base class 'TForm' (protected)
[Hint] CIMain.pas(39): Overriding virtual method 'TForm1.defaultHandler' has lower visibility (private) than base class 'TForm' (public)
[Error] CIMain.pas(42): '=' expected but 'VAR' found
[Error] CIMain.pas(43): Undeclared identifier: 'TMainForm'
[Error] CIMain.pas(47): 'IMPLEMENTATION' expected but ';' found
[Error] CIMain.pas(49): '.' expected but 'IMPLEMENTATION' found
[Error] CIMain.pas(28): Unsatisfied forward or external declaration: 'TForm1.PostMessButtonClick'
[Error] CIMain.pas(29): Unsatisfied forward or external declaration: 'TForm1.SendMessButtonClick'
[Error] CIMain.pas(30): Unsatisfied forward or external declaration: 'TForm1.EatMsgCBClick'
[Error] CIMain.pas(31): Unsatisfied forward or external declaration: 'TForm1.FormCreat'
[Error] CIMain.pas(32): Unsatisfied forward or external declaration: 'TForm1.AppMsgCBClick'
[Hint] CIMain.pas(36): Private symbol 'OnAppMessage' declared but never used
[Error] CIMain.pas(37): Unsatisfied forward or external declaration: 'TForm1.WndProc'
[Error] CIMain.pas(38): Unsatisfied forward or external declaration: 'TForm1.SXMyMessage'
[Error] CIMain.pas(39): Unsatisfied forward or external declaration: 'TForm1.defaultHandler'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'CIMain.pas'


eis o formulario:



se alguém puder ajudar, agradeço imensamente. Smile

adrianofrt
Membro
Membro

Mensagens : 1
Data de inscrição : 30/12/2012

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum