AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Aus DLL auf Prgramm zugreifen

Ein Thema von F.W. · begonnen am 27. Aug 2004 · letzter Beitrag vom 22. Okt 2006
 
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#25

Re: Aus DLL auf Prgramm zugreifen

  Alt 22. Okt 2006, 02:28
Guten morgen alle Früh-aufsteher oder Spät-ins-Bett-geher

Ich hätte nicht geglaubt, dass ich zu meinem heutigen Problem was in der Suche finde (ich tu mich irgendwie mit der Bezeichnung meiner Probleme schwer, oder mit den Schlagworten in der Suche). Aber ich hab was gefunden, und nicht irgendeinen Beitrag, sondern gerade auch noch einen von mir selbst

Problem: In diesem Posting bin ich speziell über folgende Zeilen gestolpert:
Delphi-Quellcode:
procedure GetMsg(RE: TRichEdit; MainForm: TForm; St: TStream);
 { ... }
 St.Seek(0, soFromBeginning); //<- Die Zeile macht er immer ohne Probleme
 St.ReadBuffer(Kennung, 1); //<- Diese Zeile macht er nicht mehr, aber er zeigt keinen Fehler an!
Das ist die Stelle mit der ich mein jetziges Problem mit diesem Thread verbinde! Bloß dass der Dll jetzt mal keine Beachtung geschenkt werden soll.

Ich arbeite in einer Procedure mit einem TFileStream. Zwischendurch soll ein Position in ihm gesucht werden, da das auch an anderen Stellen des Programms geschieht, ist der Teil in einer Funktion ausgelagert, dem der Stream als Parameter übergeben wird.
Nach dem Aufruf der Funktion ist mein Stream aber weg oder was auch immer ??

Mal Stückchen Quellcode:
Delphi-Quellcode:
//soviel zum Aufruf:
var
 FS: TFileStream;
begin
   if GetStartDataPosition(FS) = -1 then begin

//...


//das ist die aufgerufene Funktion:
function TMainForm.GetStartDataPosition(S: TFileStream): Integer;
var
 Buffer: String;
begin
 Result := -1;

//schauen ob [ENDE] als letztes im Stream steht
 S.Seek(-Length(EndString), soFromEnd);
 SetLength(Buffer, Length(EndString));
 S.ReadBuffer(Buffer, Length(EndString));// << böse Stelle <<

 // ...
end;
Ich habe mal etwas probiert:
Wenn in der Funktion nur S.Seek drinsteht, geht nachher noch alles.
Sobald ich aber S.ReadBuffer ausführe kann ich mit FS (von oben, in der aufrufenden Procedure) nicht mehr weiterarbeiten. Das lustige dabei ist aber, innerhalb von GetStartDataPosition kann ich nach S.ReadBuffer noch arbeiten

Kann mir das jemand erklären warum das so ist und was man dagegen machen kann?
  Mit Zitat antworten Zitat
 


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 07:27 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