AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Änderungen in Forms.pas -> Wie compilieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Änderungen in Forms.pas -> Wie compilieren?

Ein Thema von unitedlb · begonnen am 1. Dez 2003 · letzter Beitrag vom 1. Dez 2003
Antwort Antwort
unitedlb

Registriert seit: 30. Sep 2003
73 Beiträge
 
Delphi 6 Professional
 
#1

Änderungen in Forms.pas -> Wie compilieren?

  Alt 1. Dez 2003, 15:24
Hallo!
Ich habe Änderungen in der Standard-Bibliothek Forms vorgenommen.

Delphi-Quellcode:
...
    procedure myProcessMessage;
...
procedure TApplication.myProcessMessage;
var
  Msg: TMsg;
begin
  ProcessMessage(Msg);
end;
In meinem Programm kann ich diese Funktion jedoch nicht aufrufen. Anscheinend wird
Forms.pas nicht automatisch compiliert. Wie bewege ich Delphi dazu die Forms.pas
neu zu compilieren?

Vielen Dank.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Änderungen in Forms.pas -> Wie compilieren?

  Alt 1. Dez 2003, 15:40
Du musst die dcu löschen und die pas-Datei in den Ordner der dcu kopieren. Aber so was macht man normalerweise nicht die original Dateien ändern. Man pakt sich das in eine eigene Unit und ruft die Funktion aus selbiger auf. Grund: Wenn man die Sourcen weitergibt, kann man die eigene Unit mitgeben. Die Unit von Borland darf man nämlich nicht weitergeben und nicht jeder hat die Sourcen, um die Änderung vorzunehmen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
unitedlb

Registriert seit: 30. Sep 2003
73 Beiträge
 
Delphi 6 Professional
 
#3

Re: Änderungen in Forms.pas -> Wie compilieren?

  Alt 1. Dez 2003, 15:55
danke für die antwort.

mein problem ist folgendes:
die in forms.pas implementierte processmessages verarbeitet die messages solange
bis keine mehr da sind (while):

Delphi-Quellcode:
procedure TApplication.ProcessMessages;
var
  Msg: TMsg;
begin
  while ProcessMessage(Msg) do {loop};
end;
ich bräuchte aber eine funktion die immer nur eine verarbeitet. deshalb wollte
das wie folgt änder:

Delphi-Quellcode:
procedure TApplication.myProcessMessages;
var
  Msg: TMsg;
begin
ProcessMessage(Msg);
end;
dafür gibt es bestimmt eine bessere lösung oder?

ein ansatz von mir sah so aus (hat aber leider nicht 100% funktioniert):

Delphi-Quellcode:
if not GetMessage(msg, 0, 0, 0) then halt;
TranslateMessage(Msg);
DispatchMessage(Msg);
danke...
  Mit Zitat antworten Zitat
OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: Änderungen in Forms.pas -> Wie compilieren?

  Alt 1. Dez 2003, 16:39
Gegenfrage:

Wozu brauchst Du dieses genau? Vielleicht findet sich eine andere Lösung für Dein Prob. Denke mal es wird in Richtung Thread gehen ...

Viele Grüsse

OLLI
No Pain No Gain!
  Mit Zitat antworten Zitat
unitedlb

Registriert seit: 30. Sep 2003
73 Beiträge
 
Delphi 6 Professional
 
#5

Re: Änderungen in Forms.pas -> Wie compilieren?

  Alt 1. Dez 2003, 16:47
ich gebe window-messages an eine dll weiter, und lese den rückgabewert
einer funktion aus der dll aus um dann entsprechend zu reagieren.

mit dem aufruf application.processmessages gehen nachrichten verloren,
da die funktion erst zurück kommt wenn die gesamte message queue bearbeitet
ist und nicht nach jeder bearbeitung...

ein thread bringt hier leider nicht weiter.
gibt es noch einen ansatz?
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#6

Re: Änderungen in Forms.pas -> Wie compilieren?

  Alt 1. Dez 2003, 17:11
Delphi-Quellcode:
procedure myProcessMessage;
Var
  M : TMsg;
Begin
  If PeekMessage(M, 0, 0, 0, pm_Remove) then
    Begin
      TranslateMessage(M); DispatchMessage(M);
    End;
End;
  Mit Zitat antworten Zitat
unitedlb

Registriert seit: 30. Sep 2003
73 Beiträge
 
Delphi 6 Professional
 
#7

Re: Änderungen in Forms.pas -> Wie compilieren?

  Alt 1. Dez 2003, 17:15
ja das ist die kurzfassung der processmessage aus der forms.pas.

das hat ich auch schon probiert, ich habe aber irgendwie das gefühl das
der passus

Delphi-Quellcode:
function TApplication.ProcessMessage(var Msg: TMsg): Boolean;
...
if Assigned(FOnMessage) then FOnMessage(Msg, Handled);
...
benötigt wird.
was macht das assigned genau?

ich bin echt am verzweifeln...
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#8

Re: Änderungen in Forms.pas -> Wie compilieren?

  Alt 1. Dez 2003, 17:53
Das ist nur für den Fall, das du dem Ergeinis Application.OnMessage eine Prozedure zugewiesen hast. Er prüft das dann und wenn sie zugewiesen (assigned) ist, führt er sie aus.
  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 19:02 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