tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
1800
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    jrx jrx ist offline Mitglied Bronze
    Registriert seit
    Aug 2005
    Beiträge
    41
    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.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    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;
    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.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
    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
     

  2. #2
    jrx jrx ist offline Mitglied Bronze
    Registriert seit
    Aug 2005
    Beiträge
    41
    Ich habe den Fehler gefunden.
    Das Unit mit dem "O" habe zweimal geladen, 1. mit dem Hauptprogramm und dann 2. noch aus dem Formular.
    Ich habs aus dem Hauptprogramm rausgeschmissen und siehe da, es geht.
    jrx
     

Ähnliche Themen

  1. Lazarus
    Von manuel774 im Forum Delphi, Kylix, Pascal
    Antworten: 0
    Letzter Beitrag: 12.01.09, 11:35
  2. Lazarus und Mac OS X
    Von Twinsetter im Forum Mac OS
    Antworten: 0
    Letzter Beitrag: 11.05.08, 12:43
  3. Lazarus und Mac OS X
    Von Twinsetter im Forum Delphi, Kylix, Pascal
    Antworten: 0
    Letzter Beitrag: 27.04.08, 21:55
  4. TLabel mit Delphi/Lazarus verschieben
    Von DeChecka im Forum Delphi, Kylix, Pascal
    Antworten: 2
    Letzter Beitrag: 28.07.07, 15:46
  5. Icons für eigene Programme mit Lazarus
    Von DeChecka im Forum Delphi, Kylix, Pascal
    Antworten: 0
    Letzter Beitrag: 04.07.07, 20:51