Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Nur projekt datei - wie am laufen bleiben ? (https://www.delphipraxis.net/46642-nur-projekt-datei-wie-am-laufen-bleiben.html)

Rastaman 29. Mai 2005 12:19

Re: Nur projekt datei - wie am laufen bleiben ?
 
[Fehler] Project1.dpr(27): E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'

Da wird irgendwas in Klammern erwartet...

Die Muhkuh 29. Mai 2005 12:23

Re: Nur projekt datei - wie am laufen bleiben ?
 
Zitat:

Zitat von marabu
Zitat:

Zitat von Gerrit89
Jo ok. Vielen Dank. Allerdings funktionieren andere Sachen nicht. Das Programm bleibt an aber es kommt kein 'Hallo'. Das mit dem Timer ist jetz nur ein Test um zu gucken ob auch andere procedure später aufrufbar sind.
Klappt aber nicht

Komisch - bei mir geht das:

Delphi-Quellcode:
program NoForm;

uses
  Dialogs,
  ExtCtrls,
  Forms;

{$R *.res}

type
  TGerritTimer = class(TTimer)
    procedure TimerOnTimer(Sender: TObject);
  private  
  public
    constructor Create;
  end;

const
  MaxEventCount = 5;
   
var
  Timer: TGerritTimer;
  EventCount: integer = 0;

constructor TGerritTimer.Create;
begin
  inherited Create(Application);
  OnTimer := TimerOnTimer;
end;

procedure TGerritTimer.TimerOnTimer(Sender: TObject);
begin
  with Sender as TTimer do
    Enabled := false;
  Inc(EventCount);
  if EventCount > MaxEventCount then
    Application.Terminate
  else begin
    ShowMessage('Hallo');
    with Sender as TTimer do
      Enabled := true;
  end;
end;

begin
  Application.Initialize;
  Application.Run;

  Timer := TGerritTimer.Create;
  Timer.Interval := 1000;
  Timer.Enabled := true;

  repeat
    Application.HandleMessage;
  until Application.Terminated;
end.
Ich denke du merkst jetzt, was du ändern musst.

Grüße vom marabu

Bei mir nicht.

Bei mir gehts so:

Delphi-Quellcode:
TGerritTimer = class(TTimer)
  private
    procedure TimerOnTimer(Sender: TObject);
  public
    constructor Create;
  end;

Rastaman 29. Mai 2005 12:24

Re: Nur projekt datei - wie am laufen bleiben ?
 
geht das nicht auch ohne eine Klasse?

malo 29. Mai 2005 12:28

Re: Nur projekt datei - wie am laufen bleiben ?
 
Zitat:

Zitat von Gerrit89
geht das nicht auch ohne eine Klasse?

Nein. Du brauchst die (bzw. eine) Klasse, um die Methoden darin zu verwalten. Ohne KLasse wissen deine Methoden dann gar nicht, wozu sie gehören ;)

marabu 29. Mai 2005 12:29

Re: Nur projekt datei - wie am laufen bleiben ?
 
Gerrit, bist du sicher, dass du meinen Quellcode kompilierst? Wenn du die Änderungen an deinem Quellcode gemacht hast, dann hast du vergessen aus der OnTimer-Prozedur eine procedure of object zu machen. Oder du hast einen anderen Pascal-Dialekt als ich mit D7. Wenn mein Quellcode bei dir läuft und es noch Unklarheiten gibt, können wir gerne drüber diskutieren.

marabu

Rastaman 29. Mai 2005 12:33

Re: Nur projekt datei - wie am laufen bleiben ?
 
Was ist ein Constructor und was bedeutet inc ?
Ich versteh das Ganze noch nicht so wirklich :gruebel:
Ausserdem sollen ja auch noch andere Komponenten eingebunden werden. Muss ich dann für jede eine Klasse machen ?

marabu 29. Mai 2005 12:55

Re: Nur projekt datei - wie am laufen bleiben ?
 
Hallo Gerrit,

Inc() erhöht in diesem Fall eine Variabble vom Typ integer um eins, damit ich ein sauberes Programmende demonstrieren kann. Ein constructor ist eine spezielle Klassen-Methode, mit der ein Objekt instanziiert wird.

Vielleicht ist es am einfachsten für dich, wenn du doch eine Form benutzt, aber diese unsichtbar machst, indem du sie z.B. in einen unsichtbaren Bereich verschiebst:

Delphi-Quellcode:
with Form2 do begin
  Left := Screen.Width;
  Top := Screen.Height;
end;
marabu

BenjaminH 29. Mai 2005 13:00

Re: Nur projekt datei - wie am laufen bleiben ?
 
Zitat:

Zitat von marabu
Vielleicht ist es am einfachsten für dich, wenn du doch eine Form benutzt, aber diese unsichtbar machst, indem du sie z.B. in einen unsichtbaren Bereich verschiebst:

Delphi-Quellcode:
with Form2 do begin
  Left := Screen.Width;
  Top := Screen.Height;
end;

Wie wärs damit?
Delphi-Quellcode:
Form2.Visible:=False;

jfheins 29. Mai 2005 13:00

Re: Nur projekt datei - wie am laufen bleiben ?
 
Oder
Delphi-Quellcode:
Application.ShowMainform := False
:zwinker:

Rastaman 29. Mai 2005 13:02

Re: Nur projekt datei - wie am laufen bleiben ?
 
Oder Form1.Hide;

Allerdings fänd ichs nich so gut wenn man später dann die Form in einem Resourceneditor sehen kann.
Wirkt etwas unprofessionell finde ich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 Uhr.
Seite 2 von 3     12 3      

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