Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

Waarom loopt deze unit niet in Delphi 7

peter444
4 antwoorden
  • Ik ben met een les uit een boek bezig dat geschreven is voor Delphi 6 maar ik werk met Delphi 7, ik probeer de onderstaande Unit te compileren maar krijg daarbij steeds de volgende foutmeldingen:
    "Field Form1.verzendBtn does not have a corresponding component" en "field Form1.wisBtn does not have a coresponding component".
    Het grootste deel van de Unit doet het wel maar na de toevoeging van deze procedures gaat het fout.

    Hier de Init:
    ========================

    unit invFormUn1;

    interface

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

    type
    TForm1 = class(TForm)
    aNaamLabel: TLabel;
    aNaamEdit: TEdit;
    eMailLabel: TLabel;
    eMailEdit: TEdit;
    wWoordLabel: TLabel;
    wWoordEdit: TEdit;
    vNaamLabel: TLabel;
    vNaamEdit: TEdit;
    gNaamLabel: TLabel;
    gNaamEdit: TEdit;
    verzendBtn: TButton;
    WisBtn: TButton;
    procedure FormCreate(Sender: TObject);
    procedure verzendBtnClick(Sender: TObject);
    procedure WisBtnClick(Sender: TObject);
    private
    { Private declarations }
    function InvoerOK: Boolean;
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.dfm}
    procedure TForm1.FormCreate(Sender: TObject);
    var i: Integer;
    begin
    for i:=0 to ComponentCount -1 do
    if Components is TEdit then
    TEdit(Components).Clear;
    end;

    function TForm1.InvoerOK: Boolean;
    var i: Integer;
    begin
    Result := False;
    for i:= 0 to ComponentCount - 1 do
    if Components is TEdit then
    if TEdit(Components).Text = '' then
    begin
    ShowMessage('Niet alle gegevens zijn ingevuld');
    Exit;
    end;
    Result := True;
    end;

    procedure TForm1.verzendBtnClick(Sender: TObject);
    begin
    if InvoerOK then
    showMessage('Uw gegevens worden verzonden');
    end;

    procedure TForm1.WisBtnClick(Sender: TObject);
    begin
    FormCreate(nil);
    end;

    end.

    =================

    Zit het probleem in het verschil tussen Delphi 6 en Delphi 7
  • Gokje… Helemaal niet getest ofzo ….

    [code:1:6b51cc483c]
    unit invFormUn1;

    interface

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

    type
    TForm1 = class(TForm)
    aNaamLabel: TLabel;
    aNaamEdit: TEdit;
    eMailLabel: TLabel;
    eMailEdit: TEdit;
    wWoordLabel: TLabel;
    wWoordEdit: TEdit;
    vNaamLabel: TLabel;
    vNaamEdit: TEdit;
    gNaamLabel: TLabel;
    gNaamEdit: TEdit;
    verzendBtn: TButton;
    WisBtn: TButton;
    private <————–
    { Private declarations }
    procedure FormCreate(Sender: TObject);
    procedure verzendBtnClick(Sender: TObject);
    procedure WisBtnClick(Sender: TObject);
    function InvoerOK: Boolean;
    public
    { Public declarations }
    end;

    ….
    [/code:1:6b51cc483c]
    [quote:6b51cc483c]
    Zit het probleem in het verschil tussen Delphi 6 en Delphi 7[/quote:6b51cc483c]
    Dat denk ik niet.
  • Ik heb een fout gemaakt in het ontwerpformulier waar ik nu niet uitkom, ik ga voorlopig even verder en pak het later nog eens op.
    Bedankt voor de info.
  • Hoe heb je deze code helemaal met de hand letter voor letter ingetypt ?
    Dan is de verklaring simpel :
    je hebt geen 'verzendBtn' op het form gezet …

    Die foutmelding krijg je namelijk als je zelf gaat rommelen met de items op een form ipv dit aan Delphi over te laten.
    In het vervolg dus niet rommelen aan de items die voor het 'private'-keyword in units voor forms staan. Daar komen hele vreemde en ellendige fouten van.

    Je had alleen de regel
    [code:1:a217ed77a7]
    function InvoerOK: Boolean;
    [/code:1:a217ed77a7]
    toe hoeven voegen. En natuurlijk de inhoud die bij die ene functie hoort (maar dat spreekt hopelijk voor zich).

    De rest doe je door in de IDE de verschillende items op het form te plaatsen om dan vervolgens de events aan de onderdelen te knopen.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.