![]() |
Re: Aus DLL auf Prgramm zugreifen
Einen weiteren Fehler habe ich inzwischen gefunden:
Delphi-Quellcode:
Allerdings, weil ich die hier ausgeführten Zeilen ins Programm geschrieben habe. Dort funktioniert es zwar, nütz mir aber nichts!
procedure GetMsg(RE: TRichEdit; MainForm: TForm; St: TStream);
{ ... } if Kennung = 'T' then begin St.ReadBuffer(I, SizeOf(I)); [color=#ff0000] SetLength(S, I);[/color] St.ReadBuffer(S[1], I); RE.Lines.Add(S); Melden(MainForm); { ... } |
Re: Aus DLL auf Prgramm zugreifen
Hallo,
ich habe heute mal das Beispiel von Assarbad genommen weil ich genau so einen Fall habe. Nur leider bringt er mir bei compilieren der Dll den Fehler das TEdit ein undefinierter Bezeichner ist. BeimRichEdite genau dasselbe. Hab ich was in der Uses vergessen oder an was könnt das liegen? Gruß Arma |
Re: Aus DLL auf Prgramm zugreifen
Jepp, du hast bestimmt in der Uses-Liste die Units der beiden Compos vergessen!
TEdit >> StdCtrls TRichEdit >> ComCtrls |
Re: Aus DLL auf Prgramm zugreifen
Danke F.W.
genau das war's hab es vorhin selbst bemerkt. Trotzdem Danke. :-) |
Re: Aus DLL auf Prgramm zugreifen
Guten morgen alle Früh-aufsteher :D oder Spät-ins-Bett-geher :D
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 :D Problem: In ![]()
Delphi-Quellcode:
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.
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! 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:
Ich habe mal etwas probiert:
//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; 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? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:53 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