AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Delphi Project Viewer 1.0

Delphi Project Viewer 1.0

Ein Thema von tomkupitz · begonnen am 7. Mär 2017 · letzter Beitrag vom 1. Mai 2017
Antwort Antwort
Seite 2 von 3     12 3   
tomkupitz
Registriert seit: 26. Jan 2011
Hallo,

habe einen kleinen mobilen Delphi Project Viewer erstellt. Damit können Delphiprojekte auf Rechnern ohne Delphiinstallation eingesehen und ggf. bearbeitet werden. Die Handhabung ist selbsterklärend.

Zu finden ist das freie Tool unter: http://www.screensoft.de/DelphiProjectViewer.zip

Viel Spaß damit
Tom
 
Delphi-Laie

 
Delphi 10.1 Berlin Starter
 
#11
  Alt 9. Mär 2017, 11:16
PS: DFM/FMX können auch binär sein. (auch wenn seit paar Jahren das Standardformat "Text" ist)
Bis Delphi 4 nur so, danach optional, wenn auch nicht mehr voreingestellt.

Delphi kann sie aber auch im Klartext anzeigen. Das für binäre Dateien zu implmentieren, wäre eine echte Herausforderung und ein erheblicher Mehrwert des Programmes, scheitert aber wohl daran, daß das Format nicht offengelegt wurde / ist. Man denke nur mal daran, wie schwer sich die Gemeinde freier Programmierer tat und tut, NTFS die Geheimnisse zu entlocken, zumal das immer weiter entwickelt wird. Soweit ich weiß, ist das Schreiben darauf bis heute nicht offiziell für zuverlässig erklärt worden.
  Mit Zitat antworten Zitat
nahpets

 
Delphi 7 Professional
 
#12
  Alt 9. Mär 2017, 11:27
Binäres DFM lesen: How to convert Delphi forms from binary to text and vice versa

Zitat von Delphi-Laie:
Das für binäre Dateien zu implmentieren, wäre eine echte Herausforderung und ein erheblicher Mehrwert des Programmes, scheitert aber wohl daran, daß das Format nicht offengelegt wurde / ist.
Delphi enthält die entsprechenden Routinen, man muss sie nur nutzen.

Siehe Unit Classes -> procedure ObjectResourceToText.
Der umgekehrte Weg geht natürlich auch.
Stephan
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

 
Delphi XE3 Professional
 
#13
  Alt 9. Mär 2017, 11:40
Das Format ist auch offen und recht einfach.

TReader, TWriter und der Rest versteckt sich in TComponent und TReader/TWriter, die Komponenten/Property-Schreib-/Lesefunktionen.
Kann man gut nutzen, wenn man DFMs "manuell" einlesen will, um was zu suchen, oder weil der DFM-Loader alle Komponenten/Typen braucht, die nicht immer vorhanden sind.
Den "Text" manuell zu parsen ist auch blöd, da ist es schöner sich das von TReader einlesen zu lassen.
Ich hab TReader/TWriter auch schon selber für binäre Speicherformate verwendet, was gut für Abwärtskompatibilität ist, ähnlich zu XML kann man "unbekannte" Teile überspringen, da das Format sich selber kommentiert.

Einkompilert wird auch immernoch die binäre Resource. (glaub ich)

Geändert von himitsu ( 9. Mär 2017 um 11:45 Uhr)
  Mit Zitat antworten Zitat
mjustin

 
Delphi 2009 Professional
 
#14
  Alt 9. Mär 2017, 12:24
Eine Suchfunktion, die auch mit den in DFM Dateien auf mehrere Zeilen zerlegten Strings klar kommt, wäre ein echtes Alleinstellungsmerkmal (afaik).

In diesem Beispiel findet GExperts Grep Search zum Beispiel die topfblume nicht

Delphi-Quellcode:
object qryExample: TSimpleDataSet
    DataSet.CommandText =
      'select * from topf' +
      'blume'
...
Michael Justin
  Mit Zitat antworten Zitat
tomkupitz

 
Delphi 10 Seattle Professional
 
#15
  Alt 9. Mär 2017, 13:16
Code:
var fs: TFileStream;
    ms: TMemoryStream;

begin
  fs:=TFileStream.Create(fn, fmOpenRead);
  ms:=TMemoryStream.Create;

  try
    ObjectResourceToText(fs, ms);

    Form1.Memo1.Lines.LoadFromStream(ms);

  finally
    fs.Free;
    ms.Free;
  end;
end;
Das will er nicht...
  Mit Zitat antworten Zitat
nahpets

 
Delphi 7 Professional
 
#16
  Alt 9. Mär 2017, 13:19
Warum nicht? Kommentarlos?
Stephan
  Mit Zitat antworten Zitat
tomkupitz

 
Delphi 10 Seattle Professional
 
#17
  Alt 9. Mär 2017, 13:22
Memo bleibt leer. Keine Delphi Meldung. Unteres geht...

Code:
  SrcS := TFileStream.Create(Src, fmOpenRead);
  DestS := TFileStream.Create(Dest, fmCreate);
  try
    ObjectResourceToText(SrcS, DestS);
    if FileExists(Src) and FileExists(Dest) then
      Result := True
    else
      Result := False;
  finally
    SrcS.Free;
    DestS.Free;
  end;
  Mit Zitat antworten Zitat
nahpets

 
Delphi 7 Professional
 
#18
  Alt 9. Mär 2017, 13:28
Bitte Quelltext marginal ändern:
Delphi-Quellcode:
var fs: TFileStream;
    ms: TMemoryStream;

begin
  fs:=TFileStream.Create(fn, fmOpenRead);
  ms:=TMemoryStream.Create;
  try
    ObjectResourceToText(fs, ms);
    ms.Position := 0; // <-- das muss da rein, dann geht's.
    Form1.Memo1.Lines.LoadFromStream(ms);
  finally
    fs.Free;
    ms.Free;
  end;
end;
Stephan
  Mit Zitat antworten Zitat
tomkupitz

 
Delphi 10 Seattle Professional
 
#19
  Alt 9. Mär 2017, 13:38
So ist das ok. Danke.
  Mit Zitat antworten Zitat
tomkupitz

 
Delphi 10 Seattle Professional
 
#20
  Alt 9. Mär 2017, 16:06
Update:

Version 1.0.40.0

- Binär zu Text Konvertierung für *.dfm Dateien
- allg. Dateiverwaltung verbessert
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:

Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2017 by Daniel R. Wolf