Hallo,
ich habe in einem Formular TCalcEdit und TFilenameEdit und noch eniges mehr.
Wenn ich aber zB . ein TFilenameEdit aufrufe verschwinden die Eingaben in den andere Feldern wieder.
Das passiert auch, wenn ich ansetelle eines TFilenameEDit einen normaes Edit nehme und über einen Button einen Standarddateimenü aufrufe.
Es leeren sich auch TMemos. Ich rätsele mal wieder herum.
Vielleicht habe ich auch einen Denkfehler beim one4calc_data.o[...
...ich habe in einem unit ein statisches Array mit TStringlists als Datenspeicher.
Bei manchen Feldern in meinem Hauptprogramm nehme ich dann nur die erste Zeile.
In meiner Welt will ich nun aus dem aufrufenden Programmteil in meinen Feldern lesen und schreiben.
Wenn ich eine Datei geladen habe, werden mir die Felder auch in dem aufrufenden Unit angezeigt, wenn ich alles einlese.
Ändern und speichern geht auch bei den Memofeldern. Und dann kommt's zum o.g. Verschwinden.
Kann mir bitte jemand mal ein Tip geben?
Ich habe das Gefühl, daß ich mit meinen Datencontainer "o" was falsch gemacht habe. Andererseits geht's ja auch bei "normalen" Memos und der Fehler liegt woanders.
Vielen Dank.
jrx
ich habe in einem Formular TCalcEdit und TFilenameEdit und noch eniges mehr.
Wenn ich aber zB . ein TFilenameEdit aufrufe verschwinden die Eingaben in den andere Feldern wieder.
Code:
procedure Tbomform.OVRCalcEditChange(Sender: TObject);
begin
one4calc_data.o[one4calc_data.GetDataPos('overhead')].Text := ovrCalcedit.Text;
end;
procedure Tbomform.picBtnClick(Sender: TObject);
begin
if opendialog1.execute then picturefilename.Text :=opendialog1.FileName ;
end;
procedure Tbomform.picturefilenameChange(Sender: TObject);
begin
one4calc_data.o[one4calc_data.GetDataPos('picture')].Text := picturefilename.Text ;
end;
Es leeren sich auch TMemos. Ich rätsele mal wieder herum.
Vielleicht habe ich auch einen Denkfehler beim one4calc_data.o[...
...ich habe in einem unit ein statisches Array mit TStringlists als Datenspeicher.
Bei manchen Feldern in meinem Hauptprogramm nehme ich dann nur die erste Zeile.
Code:
unit one4calc_data;
{$mode objfpc}{$H+}
interface
uses Classes, SysUtils ;
const MaxTagList = 64;
const Taglist : Array [1..MaxTagList] of String =
( 'p$','s$','curse',......');
type One4CalcFile = Array[1..MaxTagList] of TStringList;
var o : One4CalcFile;
procedure LoadFromFile ( s : String) ;
procedure WriteToFile ( s : String) ;
function GetDataPos( tag : String): Integer;
Es folgen die ganzen Codezeilen für die die Functionen usw.
als letztes habe ich noch das Array anzulegen.
var i : Integer;
initialization
for i := 1 to MAxTagList do o[i] := TStringList.Create;
o[64].Text :='init done!';
finalization
for i := 1 to MAxTagList do o[i].free;
end.
In meiner Welt will ich nun aus dem aufrufenden Programmteil in meinen Feldern lesen und schreiben.
Wenn ich eine Datei geladen habe, werden mir die Felder auch in dem aufrufenden Unit angezeigt, wenn ich alles einlese.
Ändern und speichern geht auch bei den Memofeldern. Und dann kommt's zum o.g. Verschwinden.
Kann mir bitte jemand mal ein Tip geben?
Ich habe das Gefühl, daß ich mit meinen Datencontainer "o" was falsch gemacht habe. Andererseits geht's ja auch bei "normalen" Memos und der Fehler liegt woanders.
Vielen Dank.
jrx