![]() |
Hi, und wie kann ich dieses einbauen?
Ich möchte, dass das immer ersichtlich ist im Hauptformular. |
Zitat:
der Befehl Free ist nicht mehr relevant, denn das Programm wird ja nich ausgeführt. Somit wird ja auch ncihts reingeschrieben. Um das ganze auch sinnvoll zu nutzen, sollte man nicht zu Früh Createn. Sonst macht es ja keinen Sinn. |
@FuckRacism:
Stimmt natürlich. Das Objekt wird ja in jedem Fall explizit erzeugt und deswegen sollte es auch vor dem Beenden der Anwendung explizit wieder entfernt werden. Diese Zeile müsste man dann noch einfügen. @DanielB: Ich denke schon, dass man das objekt auch wieder entfernen sollte... Grüße, Daniel |
Danke für die infos.
Kann mir noch jemand sagen, wie ich jetzt die anzahl der verlaufenen Tage in mein Programm ersichtlich machen kann? Ich weiß zwar den bezug, aber ich weiß nicht, wie ich es einbinden kann! |
Meinst Du sowas?
Code:
Grüße,
Label1.Caption:= 'Anzahl verbleibender Tage: '+IntToStr( 30-DaysBetween(date1, date2) );
Daniel |
Aber sollte myReg nicht wieder "gefreet" werden da es sonst unnötig im Speicher rumhängt oder macht das Terminate von selber ???
|
Ich denke schon, dass man das Objekt auch wieder entfernen sollte. (Habe ich ja auch in meinem Beitrag um 09:05 Uhr heute morgen geschrieben.)
Grüße, Daniel |
Application.Terminate beendet das Programm nicht sofort. Es wird nur intern die Variable FTerminated auf True gesetzt, die in der Hauptbotschaftsverarbeitungsschleife (Eventloop ist irgendwie kürzer), ausgewertet wird. Somit wird der komplette OnCreate bzw. OnClick (je nach Beispiel) Eventhandler ausgeführt. Man muss also dafür sorgen, dass nicht irgendetwas initialisiert wird oder ausgeführt wird, was man bei einer Blockierung nicht haben will.
Noch ein kleiner Tip zum Abbrechen des Programmstarts: Damit auch kein Formular aufblinkt, ist es möglich dieses mit Application.ShowMainForm := False zu unterdrücken. |
Moin Zusammen,
was ich bei Application.Terminate wichtig finde: Die Ereignisse OnCloseQuery und OnClose werden nicht ausgelöst. |
Mein Vorschlag wäre ja, dass man eine eigene 30-Tage-Version programmiert, die nicht den Funktionsumfang der Vollversion enthält. Dann gibt´s auch keine Hacker- und Crackerprobleme, weil es nichts zum Hacken und Cracken gibt.
Lösen ließe sich das recht bequem über die allseits beliebten Compilerschalter, so dass man nicht zwei verschiedene Programmversionen schreiben muss. Man klammert nur die Funktionen entsprechend, die in der Demo nicht erscheinen sollen:
Code:
:wink:
procedure TForm1.Button1Click(Sender: TObject);
begin {$IFDEF 30TAGEVERSION} ShowMessage('Kauf´s dir! - Na los!'); {$ELSE} ShowMessage('Danke für den Kauf'); {$ENDIF} end; Natürlich - wenn das Projekt einen Umfang von mehreren MB hat, dann lohnt dieser Aufwand nicht. Aber ich glaube nicht, dass m-werk ein so "dickes" Programm geschrieben hat. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz