Autor Beitrag
bonanza
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55



BeitragVerfasst: Sa 03.12.05 13:29 
Hi,
ich wollte in mein prog eine funktion einbauen, die kontrolliert, ob es auf dem Server eine neue verison von diesem Programm gibt...

nun ist meine Frage, wie mache ich das am besten...?

wäre es sinnvoll auf dem server sozusagen eine Datei namen "version.txt" anzulegen in der dann die Version steht, und wenn diese Zahl grösser ist als eine Konstante in dem Programm gibt es eine neuere version ?
wenn das eine einfache möglichkeit ist, ist meine frage, wie ich mit delphi dies realsieren könnte...

danke schonmal im voraus

bonanza
reepo2k
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 138

WIN XP
Borland Delphi 7 Enterprise, Microsoft Visual C++ 6.0 Enterprise, Macromedia Dreamweaver 8
BeitragVerfasst: Sa 03.12.05 14:54 
Mach dir erstmal eine Konstante im Programm, in der die Versionsnummer deines Programmes steht:
ausblenden Delphi-Quelltext
1:
const version = '1.0.0';					

Danach legst du eine Datei namens version.txt an, in der deine aktuelle Version steht und lädtst diese hoch.
Danach klatscht du die idHTTP Komponente von Indy auf deine Form.

Um jetzt zu checken ob eine neue Version vorhanden ist machst du folgendes:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
If IdHTTP1.Get('http://www.url.de/version.txt') <> version then
begin 
 ShowMessage('Neue Version verfügbar...'):
end;

Das kannst du natürlich bei onActivate doer onCrete reinhauen, oder bei nem Button bei onClick.
Natürlich kannst du das ShowMessage auch durch das ersetzten, was passieren soll, wenn eine neue Version vorhanden ist.


MfG: reepo2k
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Sa 03.12.05 17:39 
zu dieser Thematik gibt es mittlerweile schon viele Beiträge hier in der EE. Benutze doch einfach mal die Suche.
Da findest du mitunter schon sehr ausgereifte und vor allem auch schon fertige Lösungen !

_________________
In the beginning was the word.
And the word was content-type: text/plain.
r4rox
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 12.09.10 22:06 
Hallo Community ,
habe das ebend mal ausgetestet weil es ziehmlich einfach aussah (bin blutiger Anfänger).

Ich habe alles gemacht wie in Reepo2k`s beitrag.

Allerdings kriege ich beim compilen einen error :

Authentication: TIdAuthentication; var Handled: Boolean); <-- rot mackiert !

([Fehler] Unit1.pas(14): Undefinierter Bezeichner: 'TIdAuthentication' )

Woran kann das liegen .. die version.txt liegt auf dem angegebenem server .

MFG
raphael
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 12.09.10 22:54 
Moin und :welcome: im Forum!

user profile iconr4rox hat folgendes geschrieben Zum zitierten Posting springen:
Allerdings kriege ich beim compilen einen error :

Authentication: TIdAuthentication; var Handled: Boolean); <-- rot mackiert !

([Fehler] Unit1.pas(14): Undefinierter Bezeichner: 'TIdAuthentication' )

Woran kann das liegen .. die version.txt liegt auf dem angegebenem server .
Du hast bestimmt eine http-Authentication verwendet (.htaccess gesetzt), oder? ;) Wenn du die URL im Browser eingibst, wirst du nach Benutzername und Kennwort gefragt?

In diesem Fall kann natürlich die http-Kompo nicht wissen, welche Zugangsdaten zu verwenden sind. Probier das mal so: :idea:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
IdHTTP1.Request.BasicAuthentication := TRUE;
IdHTTP1.Request.Username := 'user';
IdHTTP1.Request.Password := 'pass';
if (IdHTTP1.Get('http://www.url.de/version.txt') <> version) then
  //...
Am besten packst du aber die Versionsdatei in ein frei zugängliches Verzeichnis, sonst musst du ja die Authentifizierungsdaten in deinem Programm mitliefern! :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
r4rox
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mo 13.09.10 01:04 
Danke für deine Antwort.
Aber wenn ich die Textdatei via Url im Browser aufrufe wird sie mir Ohne pw und usernamen angezeigt sprich die datei ist "frei zugänglich" .

Habe die idhttp komponente von indy verwendet aber egal was ich mache er zeigt mir die rote makierung an der oben genannten stelle an.

gruß
raphael
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19276
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 13.09.10 01:24 
user profile iconr4rox hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe alles gemacht wie in Reepo2k`s beitrag.
[..]
Authentication: TIdAuthentication; var Handled: Boolean); <-- rot mackiert !

([Fehler] Unit1.pas(14): Undefinierter Bezeichner: 'TIdAuthentication' )
Äh, dieser Quelltext kam aber gar nicht vor...

Da hast du wohl noch selber etwas anderes geschrieben / kopiert, vermutlich irgendein Event. Das brauchst du aber eigentlich nicht. :gruebel:

TIdAuthentication wird jedenfalls in IdAuthentication deklariert sein vermute ich, schreib das mal einfach in die uses.

Nebenbei gibt es von mir auch noch was für Updates:
[url]www.delphi-forum.de/...ic.php?t=94339[/url]