AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TMSWebUpdate - eine neue WebUpdate-Komponente
Thema durchsuchen
Ansicht
Themen-Optionen

TMSWebUpdate - eine neue WebUpdate-Komponente

Ein Thema von Marco Steinebach · begonnen am 27. Feb 2008 · letzter Beitrag vom 11. Aug 2013
Antwort Antwort
Seite 12 von 13   « Erste     2101112 13      
thestallion90

Registriert seit: 10. Aug 2008
22 Beiträge
 
Delphi XE Starter
 
#1

AW: TMSWebUpdate - eine neue WebUpdate-Komponente

  Alt 11. Mai 2011, 11:43
Hey Marco,

wenn ich die Komponente installieren will kommt folgender Fehler (den Int64 und den Indy10 Fehler habe ich beheben können, bei dem hier weiß ich nicht weiter) :

[DCC Fehler] MaryTools.pas(166): E2251 Doppeldeutiger überladener Aufruf von 'StrPas'

Der Fehler bezieht sich auf folgenden Code:

Delphi-Quellcode:
 function GetInfo(const aKey: string): string;
  begin
    Result := '';
    VerKey := Format('\StringFileInfo\%.4x%.4x\%s',
      [LoWord(Integer(VerBufValue^)), HiWord(Integer(VerBufValue^)), aKey]);
    if VerQueryValue(VerBuf, PChar(VerKey), VerBufValue, VerBufLen) then
      Result := StrPas(VerBufValue); //<---Fehler
  end;
Hast Du eine Idee, was ich da machen kann?

Habe Delphi XE, kann es daran liegen?

lg, Marco
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#2

AW: TMSWebUpdate - eine neue WebUpdate-Komponente

  Alt 11. Mai 2011, 12:02
Delphi-Quellcode:
var
  VerBufValue: Pointer;
Es gibt zwei Version von StrPas ... einmal ANSI (PAnsiChar) und Unicode (PWideChar)
da VerBufValue aber nur als Pointer deklariert ist, kann Delphi nicht mehr entscheiden was genommen werden soll.

Lösung:
Deklariere VerBufValue als PChar.



Dank einer automatischen Typkonvertierung könnte man Delphi-Referenz durchsuchenStrPas auch weglassen.
Delphi-Quellcode:
var
  VerBufValue: PChar;

...

function GetInfo(const aKey: string): string;
begin
  VerKey := Format('\StringFileInfo\%.4x%.4x\%s',
    [LoWord(PInteger(VerBufValue)^), HiWord(PInteger(VerBufValue)^), aKey]);
  if VerQueryValue(VerBuf, PChar(VerKey), VerBufValue, VerBufLen) then
    Result := VerBufValue
  else
    Result := '';
end;
PS:
Zitat von OH:
StrPas ist nur aus Gründen der Abwärtskompatibilität vorhanden.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (11. Mai 2011 um 12:05 Uhr)
  Mit Zitat antworten Zitat
thestallion90

Registriert seit: 10. Aug 2008
22 Beiträge
 
Delphi XE Starter
 
#3

AW: TMSWebUpdate - eine neue WebUpdate-Komponente

  Alt 11. Mai 2011, 12:14
Hey himitsu,

wow, nicht schlechte Reaktionszeit für einen aufgewärmten Thread

Allein VerBufValue anders zu deklarieren hat nicht funktionert, da Delphi die Variable an anderer Stelle im Code nichtmehr geschmeckt hat. Habe es jetzt so gelöst:

Delphi-Quellcode:
 function GetInfo(const aKey: string): string;
  var PCharVerBufValue : PChar; //<--- neue Variable als PChar
  begin
    Result := '';
    VerKey := Format('\StringFileInfo\%.4x%.4x\%s',
      [LoWord(Integer(VerBufValue^)), HiWord(Integer(VerBufValue^)), aKey]);
    if VerQueryValue(VerBuf, PChar(VerKey), VerBufValue, VerBufLen) then
      PCharVerBufValue := VerBufValue; //<---Wert wird aus VerBufValue in PChar "umformatiert"
      Result := SysUtils.StrPas(PCharVerBufValue); //<-- Delphi schluckt
  end;
  Mit Zitat antworten Zitat
thestallion90

Registriert seit: 10. Aug 2008
22 Beiträge
 
Delphi XE Starter
 
#4

AW: TMSWebUpdate - eine neue WebUpdate-Komponente

  Alt 11. Mai 2011, 12:21
Also verstehe ich es richtig, dass

- StrPas nur aus einem PChar einen PAnsiChar macht
- und man das aber mittlerweile nichtmehr braucht weil Delphi das automatisch übernimmt wenn man einem PAnsiChar ein PChar zuweist?
  Mit Zitat antworten Zitat
süden

Registriert seit: 20. Feb 2009
Ort: Lindau (Bodensee)
75 Beiträge
 
Delphi 2007 Professional
 
#5

AW: TMSWebUpdate - eine neue WebUpdate-Komponente

  Alt 11. Apr 2013, 10:27
Das Update funktioniert, wenn das Programm nicht auf C:\Programme installiert ist (WIN7pro).
Gibt es eine Möglichkeit es irgendwie doch zu machen?

In meiner letzten Frage habe ich schon geragt, wie ist eine Setup ans Laufen bekomme. Das wäre wohl eine Lösung, funktioniert aber auch nicht.

Über eine Hilfe würde ich mich sehr freuen, aber der Thread ist wohl tot?!

Gruß süden

PS: Die Komponente gleichen Namens von TMS-Software habe ich schon probiert, hat mir aber nicht so gefallen (kein Code ...).

Gibt es evtl. noch eine Alternative?
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#6

AW: TMSWebUpdate - eine neue WebUpdate-Komponente

  Alt 11. Apr 2013, 11:18
PS: Die Komponente gleichen Namens von TMS-Software habe ich schon probiert, hat mir aber nicht so gefallen (kein Code ...).
Suche mal in dem Blog von TMS Sofwtare. Ich weiß, dass es da mal einen Beitrag gab.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: TMSWebUpdate - eine neue WebUpdate-Komponente

  Alt 11. Apr 2013, 13:15
PS: Die Komponente gleichen Namens von TMS-Software habe ich schon probiert, hat mir aber nicht so gefallen (kein Code ...).
Ich nutze die Komponente und wenn das Ding kaufst hast Du auch den Source-Code. Habe den Source bisschen bearbeitet damit es auch unter FM Anwendungen für Windows läuft.
Philip
  Mit Zitat antworten Zitat
süden

Registriert seit: 20. Feb 2009
Ort: Lindau (Bodensee)
75 Beiträge
 
Delphi 2007 Professional
 
#8

AW: TMSWebUpdate - eine neue WebUpdate-Komponente

  Alt 13. Apr 2013, 18:38
Hallo,
danke für die Antworten. aber das triffts nicht.
Ich würde gerne die Komponentze von Marco zum laufen bringen.

Da steckt jetzt schon einige Arbeit drin und bevor ich jetzt noch mal mit dem Namensgleichen von TMS-Software anfange und Zeit und Geld investiere möcht ich wissen, wie ich die "Schranke" des Systemverzeichnissen C:\... umgehen kann.

Gruß süden
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#9

AW: TMSWebUpdate - eine neue WebUpdate-Komponente

  Alt 14. Apr 2013, 08:50
Deine Stichworte sind UAC und Manifest. Mit einem Manifest im Programm kannst Du die Administrationsrechte anfordern um dann Dateien unter C:\Program Files (x86) zu schreiben.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
süden

Registriert seit: 20. Feb 2009
Ort: Lindau (Bodensee)
75 Beiträge
 
Delphi 2007 Professional
 
#10

AW: TMSWebUpdate - eine neue WebUpdate-Komponente

  Alt 14. Apr 2013, 21:29
OK, danke für die Antwort.
Ein Manifest habe ich noch nicht eingebaut, aber ich werde mal suchen.

Gruß süden
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 12 von 13   « Erste     2101112 13      


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 18:01 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