Entwickler-Ecke

Internet / Netzwerk - EmbaddedWB


[WOL]Azrael - Fr 17.09.04 14:47
Titel: EmbaddedWB
hiho,
ich soll im Rahmen eines Firmenpraktikums den feedreader (http://sourceforge.net/projects/feedreader/) umschreiben. Ich hatte mir den dann auch runtergeladen, doch Delphi (Vers. 7 Personal) weigert sich das korrekt zu öffnen, geschweige denn zu kompilieren...

Unter anderem fehlt auch dei Komponente TEmbaddedWB - Ich hatte jetzt mal gesucht, bisher aber nichts von diesen Komponenten gefunden.


Hat jemand schonmal mit dem feedreader gearbeitet und weiss, wo sich die benötigten Komponenten im Web verstecken?


Sprint - Fr 17.09.04 15:08
Titel: Re: EmbaddedWB
[WOL]Azrael hat folgendes geschrieben:
Unter anderem fehlt auch dei Komponente TEmbaddedWB - Ich hatte jetzt mal gesucht, bisher aber nichts von diesen Komponenten gefunden.

Wenn du das falsch schreibst, dann kannst du es ja auch nicht finden.
http://www.euromind.com/iedelphi/embeddedwb.htm


[WOL]Azrael - Fr 17.09.04 15:25
Titel: Re: EmbaddedWB
Sprint hat folgendes geschrieben:
[WOL]Azrael hat folgendes geschrieben:
Unter anderem fehlt auch dei Komponente TEmbaddedWB - Ich hatte jetzt mal gesucht, bisher aber nichts von diesen Komponenten gefunden.

Wenn du das falsch schreibst, dann kannst du es ja auch nicht finden.
http://www.euromind.com/iedelphi/embeddedwb.htm


*hüstel* - war ein Versehen - allerdings nur bei schreiben des Beitrages 8)
Aber die Seite hatte ich auch schon gefunden, nur sind die Kompnenten für dei version 4/5 & 6, nicht aber für 7....


GSE - Fr 17.09.04 15:30

vielleicht laufen sie aber trotzdem unter D7 und das gab es nur noch nicht beim onlinestellen, schon probiert?

mfg
GSE


toms - Fr 17.09.04 15:32

Zitat:
vielleicht laufen sie aber trotzdem unter D7 und das gab es nur noch nicht beim onlinestellen, schon probiert?


Die bei euromind funktioniert nicht unter D7.
Habe mal eine bei bei Torry hochgeladen, welche unter D7 laufen sollte und den XP Style unterstützt.

http://www.torry.net/quicksearchd.php?String=EmbeddedWb&Title=Yes


[WOL]Azrael - Fr 17.09.04 15:52

cool danke,
aber (verzeiht meine Naivität) was genau kann ich jetzt damit machen? soll ich die Dateien in den Projekt Ordner kopieren? Und was macht man mit dem Package


Danke!


toms - Fr 17.09.04 16:00

1. Extrahiere alle Dateien vom zip-Archiv in ein Verzeichnis.

1. In der Delphi IDE: Wähle Menü "Datei" und dann "Alles schließen".

2. Öffne dann die *.dpk-Datei der Komponente.
(EmbeddedWBD7.dpk)

3. Es sollte das Fenster mit dem Titel "Package - EmbeddedWBD7.dpk" erscheinen.

4. Klicke auf "Installieren".


[WOL]Azrael - Fr 17.09.04 16:04

ja mhm das hatte ich versucht, doch dann kommt die Fehlermeldung:
"Package 'vclie' wird benötigt, konnte aber nicht gefunden werden"


.. :(


GSE - Fr 17.09.04 16:29

Suchpfad anpassen?

mfg
GSE


[WOL]Azrael - Fr 17.09.04 16:44

GSE hat folgendes geschrieben:
Suchpfad anpassen?

mfg
GSE


nach was denn?
Ich meine, ich hab das package ja nicht, da sollte es relativ irrelevant sein delphi danach suchen zu lassen


GSE - Fr 17.09.04 17:12

hätt ja sein können dass es dabei ist, schon mal probiert es rauszunehmen?

mfg
GSE


[WOL]Azrael - Fr 17.09.04 17:14

jo, dann fängt er richtig an zu meckern was alles fehelen würde :(
Aber trotzdem schonmal danke für deine Bemühungen! :)


GSE - Fr 17.09.04 17:23

kann es sein, dass du ne personal o.ä. einsetzt, weil mit meinem D6 Ent. krieg ich das ohne Probleme kompiliert.

mfg
GSE


[WOL]Azrael - Fr 17.09.04 17:29

GSE hat folgendes geschrieben:
kann es sein, dass du ne personal o.ä. einsetzt...


Das kann sehr gut sein ja!

[WOL]Azrael hat folgendes geschrieben:
Ich hatte mir den dann auch runtergeladen, doch Delphi (Vers. 7 Personal) weigert sich das korrekt zu öffnen, geschweige denn zu kompilieren...


Aber es sollte doch trotzdem möglich sein - Im Netz hab ich die vclie.dcu auch nicht gefunden...
ich hab mal versucht die abhängigen Packages zu installieren aber da fehlen dann auch wieder einige Komponenten :(


GSE - Fr 17.09.04 17:46

Zitat:
doch Delphi (Vers. 7 Personal)
sorry, hab ich wohl überlesen.

ich glaube abe rnicht, dass du es ohne diese packages hinkriegst. und geben kann man sie dir wahrscheinlich auch nicht (D6, dcus). Hilft wahrscheinlich nur ne Pro oder Ent

Zitat:
im Rahmen eines Firmenpraktikums
sollte man euch da nicht hilfsmittel zur verfügung stellen, mit denen das auch geht=

mfg
GSE


[WOL]Azrael - Fr 17.09.04 17:55

GSE hat folgendes geschrieben:
Zitat:
im Rahmen eines Firmenpraktikums
sollte man euch da nicht hilfsmittel zur verfügung stellen, mit denen das auch geht=

mfg
GSE



jo eigentlich schon, aber da es sich nur um ein kleines umschreiben des Codes handelt wollten die nicht die 900€ teure Delphi version kaufen, die hinterher nie wieder benutzt wird. Denn ansich ist das eine Webagentur und der feedreader soll auf einer Seite eingesetzt werden. Dafür müsste allerdings das Design angepasst werden und ein paar inhaltiliche Änderungen am Code vorgenommen werden. Und ich hatte nur die Delphi7 Personal in meinem Studium zur Verfügung gestellt bekommen - die dafür auch vollkommen ausreichte.


[WOL]Azrael - Sa 18.09.04 17:38

mhm ich hab mit jetzt die Enterprise 30 Tage Testversion runtergeladen und das embeddedWB Package konnte ich auch wunderbar installieren, doch für ein kompilieren des feedreaders fehelen immer noch einige Komponenten-
Hat den keiner Erfahrung mit diesem Programm und weiss was man dafür alles installieren muss und wo man es herbekommt ?


Martin77 - Sa 18.09.04 17:42

Hast Du zufällig mal in die ReadmeDatei geguckt?

Zitat:
4. Compilation


To compile the FeedReader-Sources you need Delphi 7 and you have
to download and install the following packages:

a) CoolTray Icon 4.2.0
(http://www3.brinkster.com/troels/delphi.asp)
b) OpenXML 2.3.38a
(http://www.philo.de/xml/)
c) Unicode Converter Library 3.0.0
(http://www.philo.de/xml/)
d) Formatted_XDOM 2.1
(sf_yourshadow@bezeqint.net)
e) TEmbeddedwb 1.16b for Delphi 7
(http://groups.yahoo.com/group/delphi-webbrowser/files/EmbeddedWBD7/embedwb116b.zip)
f) ICS release: Nov 17, 2002
(http://overbyte.delphicenter.com/frame_index.html)

After succesfull installation the Delphi-Project "feedreader.dpr"
can be compiled.

To build the Setup-Package you need "My Inno Setup Extensions 3.0.6.2",
which you can download from "http://www.wintax.nl/isx/".
Simply open the file "FeedReader_Setup.iss" with Inno Setup and compile it.



Martin


[WOL]Azrael - Sa 18.09.04 18:57

oh mhm, danke :oops:

da hab ich ja gar nicht dran gedacht :( - Ich dachte immer das läge an der Personal Edition.

Manchmal wäre ein bischen Nachdenken auch nicht schlecht..! :)

/* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx */


mhm gut gut, aber irgendwie funktionieren die ganzen Links nicht und Tante Google ist auch nicht so ergiebig.
Kennt jemand Dateien, die zu den folgenden Kompatibel sind?

b) OpenXML 2.3.38a
(http://www.philo.de/xml/)
c) Unicode Converter Library 3.0.0
(http://www.philo.de/xml/)
d) Formatted_XDOM 2.1
(sf_yourshadow@bezeqint.net)
e) TEmbeddedwb 1.16b for Delphi 7
(http://groups.yahoo.com/group/delphi-webbrowser/files/EmbeddedWBD7/embedwb116b.zip)
f) ICS release: Nov 17, 2002
(http://overbyte.delphicenter.com/frame_index.html)



schonmal Danke!! :)


Martin77 - Sa 18.09.04 21:44

[WOL]Azrael hat folgendes geschrieben:
oh mhm, danke :oops:

da hab ich ja gar nicht dran gedacht :( - Ich dachte immer das läge an der Personal Edition.

Manchmal wäre ein bischen Nachdenken auch nicht schlecht..! :)

/* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx */


mhm gut gut, aber irgendwie funktionieren die ganzen Links nicht und Tante Google ist auch nicht so ergiebig.
Kennt jemand Dateien, die zu den folgenden Kompatibel sind?

b) OpenXML 2.3.38a
(http://www.philo.de/xml/)
c) Unicode Converter Library 3.0.0
(http://www.philo.de/xml/)
d) Formatted_XDOM 2.1
(sf_yourshadow@bezeqint.net)
e) TEmbeddedwb 1.16b for Delphi 7
(http://groups.yahoo.com/group/delphi-webbrowser/files/EmbeddedWBD7/embedwb116b.zip)
f) ICS release: Nov 17, 2002
(http://overbyte.delphicenter.com/frame_index.html)



schonmal Danke!! :)



Also:

e) TEmbeddedwb 1.16b for Delphi 7
(http://groups.yahoo.com/group/delphi-webbrowser/files/EmbeddedWBD7/embedwb116b.zip)

gibt es an der angegebenen Adresse.

die Philo Seite gibt es auch, ich glaube die Komonenten/Klassen wurden mal zusammengefügt.

Zu dem ICS kann Ich dir nichts sagen, hab auf die schnelle auch nichts gefunden.


Und zu d: haste mal ne Mail hingeschrieben????

Edit:
Hab nochmal genauer in das Archiv geguckt, ist dir zufällig der Ordner
\Delphi-Components\ aufgefallen? :shock:

Martin


[WOL]Azrael - So 19.09.04 16:35

Martin77 hat folgendes geschrieben:


Also:


die Philo Seite gibt es auch, ich glaube die Komonenten/Klassen wurden mal zusammengefügt.

Mhm ja da gibts die "Utility Library v.2.0.1", aber die enthät anstatt der UnicodeConv anscheinend die UnicodeUtils
und wenn ich das in der uses Klausel ändere meckert der Compiler ziemoich rum :(

Martin77 hat folgendes geschrieben:

Und zu d: haste mal ne Mail hingeschrieben????


Jo aber bisher noch keine Antowrt, ich dachte nur, dass möglicherweise jemand diese Packete bereits hat. :)

Martin77 hat folgendes geschrieben:

Edit:
Hab nochmal genauer in das Archiv geguckt, ist dir zufällig der Ordner
\Delphi-Components\ aufgefallen? :shock:


Ne ist mir nicht - auf welcher Seite denn? :?

//gruß


PS: Vielen Dank für deine ausführlichen Antworten!! :)


Edit:
Was von der Philo seite soll den das OpenXML Packet sein? Alle Packete zusammen - oder hab ich da was relevantes übersehen?


Martin77 - So 19.09.04 16:38

[WOL]Azrael hat folgendes geschrieben:

Martin77 hat folgendes geschrieben:

Edit:
Hab nochmal genauer in das Archiv geguckt, ist dir zufällig der Ordner
\Delphi-Components\ aufgefallen? :shock:


Ne ist mir nicht - auf welcher Seite denn? :?

//gruß



In dem FeedReader Archiv. Dort wo auch die Readme Datei steckt.


Martin


[WOL]Azrael - So 19.09.04 16:43

Gnarg, ich sollte mich lieber wieder exmatrikulieren lassen. Wahrlich eine peinliche Vorstellung, die ich hier ablieferte.

Aber vielen Danke für eure/deine zahlreiche Hilfe!!
Ich kann das Forum wirklich nur weiterempfehlen!! :D


edit:
Mhm ein Problem hab ich noch: Ich will die Unit RXVerInf aus dem Packet RXLIB compilieren, bekomme aber immer die Fehlermeldung ein $Weakpackage dürfe keinen Initialization - oder Finalization Code enthalten, obwohl weder das eine noch das andere angeben ist.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
{*******************************************************}
{                                                       }
{         Delphi VCL Extensions (RX)                    }
{                                                       }
{         Copyright (c) 2001,2002 SGB Software          }
{         Copyright (c) 1997, 1998 Fedor Koshevnikov,   }
{                        Igor Pavluk and Serge Korolev  }
{                                                       }
{*******************************************************}


unit RxVerInf;

{$I RX.INC}

{$IFDEF RX_D3}
  {$WEAKPACKAGEUNIT}
{$ENDIF}

interface

uses Windows;

type
  TVersionLanguage = (vlArabic, vlBulgarian, vlCatalan, vlTraditionalChinese,
    vlCzech, vlDanish, vlGerman, vlGreek, vlUSEnglish, vlCastilianSpanish,
    vlFinnish, vlFrench, vlHebrew, vlHungarian, vlIcelandic, vlItalian,
    vlJapanese, vlKorean, vlDutch, vlNorwegianBokmel, vlPolish,
    vlBrazilianPortuguese, vlRhaetoRomanic, vlRomanian, vlRussian,
    vlCroatoSerbian, vlSlovak, vlAlbanian, vlSwedish, vlThai, vlTurkish,
    vlUrdu, vlBahasa, vlSimplifiedChinese, vlSwissGerman, vlUKEnglish,
    vlMexicanSpanish, vlBelgianFrench, vlSwissItalian, vlBelgianDutch,
    vlNorwegianNynorsk, vlPortuguese, vlSerboCroatian, vlCanadianFrench,
    vlSwissFrench, vlUnknown);

  TVersionCharSet = (vcsASCII, vcsJapan, vcsKorea, vcsTaiwan, vcsUnicode,
    vcsEasternEuropean, vcsCyrillic, vcsMultilingual, vcsGreek, vcsTurkish,
    vcsHebrew, vcsArabic, vcsUnknown);

{$IFNDEF WIN32}
  PVSFixedFileInfo = Pvs_FixedFileInfo;
  DWORD = Longint;
{$ENDIF}

  TLongVersion = record
    case Integer of
    0: (All: array[1..4of Word);
    1: (MS, LS: LongInt);
  end;

{ TVersionInfo }

  TVersionInfo = class(TObject)
  private
    FFileName: PChar;
    FValid: Boolean;
    FSize: DWORD;
    FBuffer: PChar;
    FHandle: DWORD;
    procedure ReadVersionInfo;
    function GetFileName: string;
    procedure SetFileName(const Value: string);
    function GetTranslation: Pointer;
    function GetFixedFileInfo: PVSFixedFileInfo;
    function GetFileLongVersion: TLongVersion;
    function GetProductLongVersion: TLongVersion;
    function GetTranslationString: string;
    function GetComments: string;
    function GetCompanyName: string;
    function GetFileDescription: string;
    function GetFileVersion: string;
    function GetVersionNum: Longint;
    function GetInternalName: string;
    function GetLegalCopyright: string;
    function GetLegalTrademarks: string;
    function GetOriginalFilename: string;
    function GetProductVersion: string;
    function GetProductName: string;
    function GetSpecialBuild: string;
    function GetPrivateBuild: string;
    function GetVersionLanguage: TVersionLanguage;
    function GetVersionCharSet: TVersionCharSet;
    function GetVerFileDate: TDateTime;
  public
    constructor Create(const AFileName: string);
    destructor Destroy; override;
    function GetVerValue(const VerName: string): string;
    property FileName: string read GetFileName write SetFileName;
    property Valid: Boolean read FValid;
    property FixedFileInfo: PVSFixedFileInfo read GetFixedFileInfo;
    property FileLongVersion: TLongVersion read GetFileLongVersion;
    property ProductLongVersion: TLongVersion read GetProductLongVersion;
    property Translation: Pointer read GetTranslation;
    property VersionLanguage: TVersionLanguage read GetVersionLanguage;
    property VersionCharSet: TVersionCharSet read GetVersionCharSet;
    property VersionNum: Longint read GetVersionNum;
    property Comments: string read GetComments;
    property CompanyName: string read GetCompanyName;
    property FileDescription: string read GetFileDescription;
    property FileVersion: string read GetFileVersion;
    property InternalName: string read GetInternalName;
    property LegalCopyright: string read GetLegalCopyright;
    property LegalTrademarks: string read GetLegalTrademarks;
    property OriginalFilename: string read GetOriginalFilename;
    property ProductVersion: string read GetProductVersion;
    property ProductName: string read GetProductName;
    property SpecialBuild: string read GetSpecialBuild;
    property PrivateBuild: string read GetPrivateBuild;
    property Values[const Name: string]: string read GetVerValue;
    property VerFileDate: TDateTime read GetVerFileDate;
  end;

function LongVersionToString(const Version: TLongVersion): string;
function StringToLongVersion(const Str: string): TLongVersion;
function AppFileName: string;
function AppVerInfo: TVersionInfo;

{ Installation utility routine }

function OkToWriteModule(ModuleName: string; NewVer: Longint): Boolean;

implementation

{$IFDEF WIN32}
uses SysUtils, FileUtil, DateUtil;
{$ELSE}
uses WinTypes, WinProcs, SysUtils, FileUtil, DateUtil, VclUtils;
{$ENDIF}

function MemAlloc(Size: Longint): Pointer;
{$IFDEF WIN32}
begin
  GetMem(Result, Size);
end;
{$ELSE}
var
  Handle: THandle;
begin
  if Size < 65535 then GetMem(Result, Size)
  else begin
    Handle := GlobalAlloc(HeapAllocFlags, Size);
    Result := GlobalLock(Handle);
  end;
end;
{$ENDIF WIN32}

const
  LanguageValues: array[TVersionLanguage] of Word = ($0401$0402$0403,
    $0404$0405$0406$0407$0408$0409$040A$040B$040C$040D,
    $040E$040F$0410$0411$0412$0413$0414$0415$0416$0417,
    $0418$0419$041A$041B$041C$041D$041E$041F$0420$0421,
    $0804$0807$0809$080A$080C$0810$0813$0814$0816$081A,
    $0C0C$100C$0000);

const
  CharacterSetValues: array[TVersionCharSet] of Integer = (0932949950,
    12001250125112521253125412551256, -1);

{ TVersionInfo }

constructor TVersionInfo.Create(const AFileName: string);
begin
  inherited Create;
  FFileName := StrPCopy(StrAlloc(Length(AFileName) + 1), AFileName);
  ReadVersionInfo;
end;

destructor TVersionInfo.Destroy;
begin
  if FBuffer <> nil then FreeMem(FBuffer, FSize);
  StrDispose(FFileName);
  inherited Destroy;
end;

procedure TVersionInfo.ReadVersionInfo;
begin
  FValid := False;
  FSize := GetFileVersionInfoSize(FFileName, FHandle);
  if FSize > 0 then
    try
      FBuffer := MemAlloc(FSize);
      FValid := GetFileVersionInfo(FFileName, FHandle, FSize, FBuffer);
    except
      FValid := False;
      raise;
    end;
end;

function TVersionInfo.GetFileName: string;
begin
  Result := StrPas(FFileName);
end;

procedure TVersionInfo.SetFileName(const Value: string);
begin
  if FBuffer <> nil then FreeMem(FBuffer, FSize);
  FBuffer := nil;
  StrDispose(FFileName);
  FFileName := StrPCopy(StrAlloc(Length(Value) + 1), Value);
  ReadVersionInfo;
end;

function TVersionInfo.GetTranslation: Pointer;
var
{$IFDEF WIN32}
  Len: UINT;
{$ELSE}
  Len: Cardinal;
{$ENDIF}
begin
  Result := nil;
  if Valid then VerQueryValue(FBuffer, '\VarFileInfo\Translation', Result, Len)
  else Result := nil;
end;

function TVersionInfo.GetTranslationString: string;
var
  P: Pointer;
begin
  Result := '';
  P := GetTranslation;
  if P <> nil then
    Result := IntToHex(MakeLong(HiWord(Longint(P^)), LoWord(Longint(P^))), 8);
end;

function TVersionInfo.GetVersionLanguage: TVersionLanguage;
var
  P: Pointer;
begin
  P := GetTranslation;
  for Result := vlArabic to vlUnknown do
    if LoWord(Longint(P^)) = LanguageValues[Result] then Break;
end;

function TVersionInfo.GetVersionCharSet: TVersionCharSet;
var
  P: Pointer;
begin
  P := GetTranslation;
  for Result := vcsASCII to vcsUnknown do
    if HiWord(Longint(P^)) = CharacterSetValues[Result] then Break;
end;

function TVersionInfo.GetFixedFileInfo: PVSFixedFileInfo;
var
{$IFDEF WIN32}
  Len: UINT;
{$ELSE}
  Len: Cardinal;
{$ENDIF}
begin
  Result := nil;
  if Valid then VerQueryValue(FBuffer, '\', Pointer(Result), Len)
  else Result := nil;
end;

function TVersionInfo.GetProductLongVersion: TLongVersion;
begin
  Result.MS := FixedFileInfo^.dwProductVersionMS;
  Result.LS := FixedFileInfo^.dwProductVersionLS;
end;

function TVersionInfo.GetFileLongVersion: TLongVersion;
begin
  Result.MS := FixedFileInfo^.dwFileVersionMS;
  Result.LS := FixedFileInfo^.dwFileVersionLS;
end;

function TVersionInfo.GetVersionNum: Longint;
begin
  if Valid then Result := FixedFileInfo^.dwFileVersionMS
  else Result := 0;
end;

function TVersionInfo.GetVerValue(const VerName: string): string;
var
  szName: array[0..255of Char;
  Value: Pointer;
{$IFDEF WIN32}
  Len: UINT;
{$ELSE}
  Len: Cardinal;
{$ENDIF}
begin
  Result := '';
  if Valid then begin
    StrPCopy(szName, '\StringFileInfo\' + GetTranslationString + '\' + VerName);
    if VerQueryValue(FBuffer, szName, Value, Len) then
      Result := StrPas(PChar(Value));
  end;
end;

function TVersionInfo.GetComments: string;
begin
  Result := GetVerValue('Comments');
end;

function TVersionInfo.GetCompanyName: string;
begin
  Result := GetVerValue('CompanyName');
end;

function TVersionInfo.GetFileDescription: string;
begin
  Result := GetVerValue('FileDescription');
end;

function TVersionInfo.GetFileVersion: string;
begin
  Result := GetVerValue('FileVersion');
  if (Result = ''and Valid then
    Result := LongVersionToString(FileLongVersion);
end;

function TVersionInfo.GetInternalName: string;
begin
  Result := GetVerValue('InternalName');
end;

function TVersionInfo.GetLegalCopyright: string;
begin
  Result := GetVerValue('LegalCopyright');
end;

function TVersionInfo.GetLegalTrademarks: string;
begin
  Result := GetVerValue('LegalTrademarks');
end;

function TVersionInfo.GetOriginalFilename: string;
begin
  Result := GetVerValue('OriginalFilename');
end;

function TVersionInfo.GetProductVersion: string;
begin
  Result := GetVerValue('ProductVersion');
  if (Result = ''and Valid then
    Result := LongVersionToString(ProductLongVersion);
end;

function TVersionInfo.GetProductName: string;
begin
  Result := GetVerValue('ProductName');
end;

function TVersionInfo.GetSpecialBuild: string;
begin
  Result := GetVerValue('SpecialBuild');
end;

function TVersionInfo.GetPrivateBuild: string;
begin
  Result := GetVerValue('PrivateBuild');
end;

function TVersionInfo.GetVerFileDate: TDateTime;
begin
  if FileExists(FileName) then
    Result := FileDateTime(FileName)
  else Result := NullDate;
end;

{ Long version string routines }

function LongVersionToString(const Version: TLongVersion): string;
begin
  with Version do
    Result := Format('%d.%d.%d.%d', [All[2], All[1], All[4], All[3]]);
end;

function StringToLongVersion(const Str: string): TLongVersion;
var
  Sep: Integer;
  Tmp, Fragment: string;
  I: Word;
begin
  Tmp := Str;
  for I := 1 to 4 do begin
    Sep := Pos('.', Tmp);
    if Sep = 0 then Sep := Pos(',', Tmp);
    if Sep = 0 then Fragment := Tmp
    else begin
      Fragment := Copy(Tmp, 1, Sep - 1);
      Tmp := Copy(Tmp, Sep + 1, MaxInt);
    end;
    if Fragment = '' then Result.All[I] := 0
    else Result.All[I] := StrToInt(Fragment);
  end;
  I := Result.All[1];
  Result.All[1] := Result.All[2];
  Result.All[2] := I;
  I := Result.All[3];
  Result.All[3] := Result.All[4];
  Result.All[4] := I;
end;

function AppFileName: string;
var
  FileName: array[0..255of Char;
begin
  if IsLibrary then begin
    GetModuleFileName(HInstance, FileName, SizeOf(FileName) - 1);
    Result := StrPas(FileName);
  end
  else Result := ParamStr(0);
end;

function AppVerInfo: TVersionInfo;
begin
  Result := TVersionInfo.Create(AppFileName);
end;

{ Installation utility routines }

function OkToWriteModule(ModuleName: string; NewVer: Longint): Boolean;
{ Return True if it's ok to overwrite ModuleName with NewVer }
begin
  {Assume we should overwrite}
  OkToWriteModule := True;
  with TVersionInfo.Create(ModuleName) do begin
    try
      if Valid then {Should we overwrite?}
        OkToWriteModule := NewVer > VersionNum;
    except end;
      Free;
  end;
end;


end.


Edit2 :
Merkwürdiug auf Win2000 läuft das ohne Problem...auf WInXP gabs immer den Fehler ein Leerstring wäre kein Gleitkommawert, was ja auch stimmt aber...


joshua - Mo 21.11.05 16:37

hi zusammen,

ich habe da auch ein problem!

ich habe 2005 enterprise 30tage installiert, wollte embeddedWB 117 compilieren, da bringt der mir fehler ohne ende

[Fehler] embeddedwb.pas(436): E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
[Fehler] embeddedwb.pas(438): E2003 Undefinierter Bezeichner: 'Next'
....

ich habe an embeddedwb nichts geändert!

ich bin noch am verzweifeln ;)

gruß joshua


Martin1966 - Mo 21.11.05 17:50

Hallo! Willkommen in der Ecke! :wink2:

Versuche mal den Compilerschalter "Strenge Prüfung von VAR-Strings" zu deaktivieren.

Ansonsten eine Mail an den Herstellen hilft vielleicht auch. ;-)

Lg Martin


joshua - Mo 21.11.05 18:12

vielen dank für die antwort, aber der schalter hat leider auch nicht geholfen :(


joshua - Di 22.11.05 11:25

also ich habe jetzt mal die 2005er trial deinstalliert und die delphi7 personal drauf gespielt. aber auch damit komme ich nicht weiter.

habe ich immer vcl fehler!

also genauer:

wenn ich die rxlib hinzufügen will, gehe ich nach anleitung vor (sofern ich die richtig verstehe ;) )

RXCTL7.DPK compilieren -> ok, geht

RXDB6.DPK -> fehler: Package 'vcldb' wird benötigt, konnte aber nicht gefunden werden.
frage: delphi7 personal <-> DB ????

hmm, was kan ich nur machen??? ich muß unbedingt noch diese woche was an dem blöden feedreader ändern ;)

gruß joshua