AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Procedure aus Unit

Ein Thema von citybreaker · begonnen am 15. Jun 2004 · letzter Beitrag vom 15. Jun 2004
Antwort Antwort
citybreaker
(Gast)

n/a Beiträge
 
#1

Problem mit Procedure aus Unit

  Alt 15. Jun 2004, 14:48
Hallo,
ich hab neben der Unit1 (standart) noch eine weitere Unit
angelegt, inder ich eine procedure habe mit der ein MDIChild
erzeugt wird. Alerdings kann ich dem MdiChild keine OnClose
procedure geben. Habe folgenden Code.

Delphi-Quellcode:
unit unit2;

interface

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

  procedure NeueForm;
  procedure MDIChildClose(Sender: TObject; var Action: TCloseAction);

var
 Form: TForm;
 Nummer: Integer = 0;


implementation
uses unit1;

procedure NeueForm;
begin
  Inc(Nummer);

  Form := TForm.Create(MainFrm);
  with Form do begin
    Caption := 'Dokument' + IntToStr(Nummer);
    FormStyle := fsMDIChild;
    Height := 450;
    Left := 8;
    Name :='Dokument' + IntToStr(Nummer);
    Top := 8;
    Width := 450;
    OnClose := MDIChildClose;
  end;
end;
procedure MDIChildClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;
Nun kommt alerdings immer eine Fehlermeldung.
Zitat:
Inkompatible Typen: Methodenzeiger und reguläre procedure
Weiß net wie ich das andersmachen soll und was ich anders machen
soll.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#2

Re: Problem mit Procedure aus Unit

  Alt 15. Jun 2004, 14:55
MDIChildClose muss eine Methode eines Objektes sein und keine 'objektlose' Prozedur.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#3

Re: Problem mit Procedure aus Unit

  Alt 15. Jun 2004, 14:56
das is ne "procedure of object" sozusagen, d.h. du darfst keine "normale" proc. nehmen.. sprich TMDIForm1.MDICloseProcedure statt nur MDICloseProcedure...

kann mich nich besser ausdrücken sorry
[edit]Phoenix kann sich da viel gewählter und präziser artikulieren [/edit]

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
citybreaker
(Gast)

n/a Beiträge
 
#4

Re: Problem mit Procedure aus Unit

  Alt 15. Jun 2004, 15:03
Also geht das nicht einfach so in ner Unit ohne Form?!
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#5

Re: Problem mit Procedure aus Unit

  Alt 15. Jun 2004, 15:05
Delphi-Quellcode:
interface

{...}

type
  TMyForm = CLASS(TForm);
  PRIVATE
    procedure MDIChildClose(Sender: TObject; var Action: TCloseAction);
  END;

  procedure NeueForm;

var
 Nummer: Integer = 0;


implementation
uses unit1;

var
 Form: TMyForm;

procedure NeueForm;
begin
  Inc(Nummer);

  Form := TMyForm.Create(MainFrm);
  with Form do begin
    {...}
    OnClose := MDIChildClose;
  end;
end;

procedure TMyForm.MDIChildClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;
So sollte es hinhauen [nicht getestet]

Gruß
Stephan

[edit] Code bissl gekürzt[/edit]
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
citybreaker
(Gast)

n/a Beiträge
 
#6

Re: Problem mit Procedure aus Unit

  Alt 15. Jun 2004, 15:18
Ok, also soweit klappt das schonmal. Aber wenn ich ne neue Form machen will
(auf nen Button klicke). Stützt das programm ab und es wird folgende Zeile makiert.

Form := TMyForm.Create(MainFrm); Zudem kommt auch noch nen Fehler.
Zitat:
Im Projekt Projekt1.exe ist eine Exception der Klasse ERest not found
aufgetreten. Meldung: 'Resource in TMyForm nicht gefunden'.
Prozeß wurde angehalten weiter mit ...
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#7

Re: Problem mit Procedure aus Unit

  Alt 15. Jun 2004, 15:24
Delphi-Quellcode:
type
  TMyForm = CLASS(TForm) // <<-- Da war fälschlicheriwese ein Seminkolon
  PRIVATE
    procedure MDIChildClose(Sender: TObject; var Action: TCloseAction);
  END;

  procedure NeueForm;

var
  Nummer: Integer = 0;

implementation
uses
  unit1;
var
  Form: TMyForm;

procedure NeueForm;
begin
  Inc(Nummer);
  Form := TMyForm.CreateNew(MainFrm); // <<-- CreteNew statt Create
  {..}
end;

procedure TMyForm.MDIChildClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;
end.
Bei mir funzt das so nu

Stephan

edit: gekürzt
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
citybreaker
(Gast)

n/a Beiträge
 
#8

Re: Problem mit Procedure aus Unit

  Alt 15. Jun 2004, 15:26
CreateNew gibts bei mir gar nicht.
Ich weiß net wiso, aber es klappt jetzt irgendwie mit "Create".
Hab die Codezeile neu hingeschrieben und jetzt klappt es. *lol*
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#9

Re: Problem mit Procedure aus Unit

  Alt 15. Jun 2004, 15:33
Das verwirrt mich nu
Hmz naja wenns nu geht dann ists ja gut

Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz