Autor Beitrag
bigbee
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Sa 07.10.06 20:29 
Moin moin aus dem Westerwald,

ich habe in meinem MDI-Hauptformular HauptForm1 ein MDI-Child AnwendungForm1 und ein zweites Formular HTMLForm1. Auf letzterem befinden sich diverse Edits und Buttons. Dieses wird mit HTMLForm1.Show aufgerufen. Funktioniert auch alles wunderbar.
Drückt nun der Benutzer in der HTMLForm1 einen Button "Übernehmen", so soll Text aus einer Edit1 in das MDI-Child übernommen werden. Hier tritt dann eine EAccessViolation auf.

Mein derzeitiger Versuch:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure THTMLForm1.UebernehmenButton1Click(Sender: TObject);
var zeile: string;
begin   {Übernehmen wurde gedrückt}
 zeile:='<HTML';
 if versionedit1.Text<>''
    then zeile:=zeile+' version="'+versionedit1.Text+'"';
 case richtungradiogroup1.ItemIndex of   {ab hier kommen die Universalattribute für Internationalisierung}
  0: zeile:=zeile+' dir="ltr"';
  1: zeile:=zeile+' dir="rtl"'
 end;
 if sprachecombobox1.Text<>''
    then zeile:=zeile+' lang="'+sprachecombobox1.Text+'"';
 zeile:=zeile+'>';
 anwendungform1.EditorRichEdit1.Lines[Tag]:=zeile
end;



Wie kann ich das bewerkstelligen?
Ich möchte HTMLForm1 übrigens nicht modal aufrufen!

Ich hoffe, ich habe mich nicht zu kompliziert ausgedrückt und danke schon mal im voraus für evtl. Ideen.

_________________
Alles hat ein Ende, nur die Wurst hat zwei
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Mo 09.10.06 13:04 
user profile iconbigbee hat folgendes geschrieben:
Drückt nun der Benutzer in der HTMLForm1 einen Button "Übernehmen", so soll Text aus einer Edit1 in das MDI-Child übernommen werden.


Was ist denn jetzt dein Hauptformular und was sind MDI-Childs zu welcher Form? Ich blick da nich ganz durch...

Gruß alias5000

_________________
Programmers never die, they just GOSUB without RETURN
bigbee Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mo 09.10.06 21:44 
Das MDI-Hauptformular ist HauptForm1. AnwendungForm1 ist ein MDI-Child. Bei dem Formular HTMLForm1 handelt es sich um ein "normales" Formular, mit der Eigenschaft "AlwaysStayOnTop". Es ist somit kein MDI-Child.
Konnte ich ein wenig Klarheit in das Dunkel bringen?
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Mo 09.10.06 22:02 
Jop, jetzt iss mir klar ;)

user profile iconbigbee hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure THTMLForm1.UebernehmenButton1Click(Sender: TObject);
var zeile: string;
begin   {Übernehmen wurde gedrückt}
 zeile:='<HTML';
 if versionedit1.Text<>''
    then zeile:=zeile+' version="'+versionedit1.Text+'"';
 case richtungradiogroup1.ItemIndex of   {ab hier kommen die Universalattribute für Internationalisierung}
  0: zeile:=zeile+' dir="ltr"';
  1: zeile:=zeile+' dir="rtl"'
 end;
 if sprachecombobox1.Text<>''
    then zeile:=zeile+' lang="'+sprachecombobox1.Text+'"';
 zeile:=zeile+'>';
 anwendungform1.EditorRichEdit1.Lines[Tag]:=zeile
end;


Die wahrscheinlichste Stelle für ne AccessViolation (AV) ist wohl die markierte. Kannst du sicherstellen, dass die angesprochene Zeile auch existiert? Wenn (EditorRichEdit1.Lines.Count - 1) < tag dann gibts ne AV, weil du auf eine nicht existente Zeile zugreifst. Füge sie dann ggf. einfach mit ...Lines.Add hinzu.

Gruß alias5000

_________________
Programmers never die, they just GOSUB without RETURN
bigbee Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Sa 14.10.06 08:27 
Guten Morgen und vielen Dank für den Tip.

Stimmt soweit die Vermutung. Es lag aber nicht daran, dass Tag zu gross geworden ist, sondern, dass zu diesem Zeitpunkt evtl. das Formular AnwendungForm1 noch gar nicht erstellt ist.
Ich habe jetzt dafür gesorgt, dass das Formular immer rechtzeitig vorhanden ist und schon funktioniert es. :-) :lol:

Jetzt hab' ich allerdings das nächste Problem. Mein Extraktionsalgorithmus hat irgendwo einen Fehler... :?
Das finde ich noch selbst raus.

Bis dahin und nochmals DANKE.