Autor Beitrag
SunnyDream
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

WinXP
Delphi 7 Personal
BeitragVerfasst: Di 06.06.06 15:01 
Hallöle!
Ja, ich bins mal wieder :)
Und im Voraus: Ich habe wie immer erst die SuFu benutzt, aber entweder schaffe ich es nie meine Probleme mit den passenden Such-Schlagwörtern zu versehen, oder aber sie sind zu individuell xD

Hier mein Problem:

Ich möchte, ähnlich wie in einem Forum, dass der User meines HTML-Konvertes auf einen Button klickt, mit dem sich ein neuer Form öffnet. (Bis hierhin kein Thema) Dann soll er dort in 2 Editfelder, Namen eines Links und die URL eingeben können, und das Form mit dem "OK" Button schliessen können.(Bis hierhin auch alles kein Ding)

Doch jetzt: Es soll der dann, nach dem Schließen des Forms folgendes eingefügt werden:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
 
tempstr := MInput.Lines[MInput.lines.count-1];
Insert('<url="' + URL + '">' + NAME + '</url>',tempstr, MInput.CaretPos.X+1);
MInput.Lines[MInput.lines.count-1]:= tempstr;


Mein Problem ist, das ich nicht weiss von was ich diese Aufgabe ausführen lassen soll ^^
Weil: Ich schreibe ja in die Onclick vom Button, dass er das Form aufrufen soll, folglich muss in die "uses" auch "Unit2". D.h. ich kann in das "OnClose" des 2ten Forms nich hineinschreiben, dass er in das Memo von Unit1 etwas reinpacken soll, da ja dann ein Konflikt entsteht (es kommt ein Fehler, dass es überschneidungen zweier Forms gibt). Wo und wie muss ich das denn nun ausführen lassen?

Danke im Voraus

Regards...
azubi_20
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 593

WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
BeitragVerfasst: Di 06.06.06 15:08 
Du kannst zwei Units verbinden, indem du die eine im Uses-Abschnitt im Interface bekanntmachst und die andere unter dem Implementation-Teil.
SunnyDream Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

WinXP
Delphi 7 Personal
BeitragVerfasst: Di 06.06.06 15:13 
Hi Danke erstmal!
Aber, wie mache ich die Unit in den implementationen bekannt? Also wie lautet die Syntax dazu?


Ah, habs in der Hilfe gefunden! Danke!

Es lautet doch

ausblenden Delphi-Quelltext
1:
2:
3:
implementation
uses
unit1;


oder?


Zuletzt bearbeitet von SunnyDream am Di 06.06.06 15:16, insgesamt 1-mal bearbeitet
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 06.06.06 15:15 
Einfach nach implementation nochmal eine Uses-Liste dazuschreiben, sowie im interface-Bereich auch.

_________________
We are, we were and will not be.
SunnyDream Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

WinXP
Delphi 7 Personal
BeitragVerfasst: Di 06.06.06 15:27 
Mhm...
Wenn ich in die "OnCLose" Prozedur des zweiten Forms folgendes schreibe:

ausblenden Delphi-Quelltext
1:
2:
3:
tempstr := Unit1.MInput.Lines[Unit1.MInput.lines.count-1];
Insert('<url="' + URL + '">' + NAME + '</url>',tempstr, Unit1.MInput.CaretPos.X+1);
Unit1.MInput.Lines[Unit1.MInput.lines.count-1]:= tempstr;


Dann sagt er mir, dass "MInput" ein undefinierter Bezeichner ist =(
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 06.06.06 15:31 
Vermutlich, MInput ein Memo ist, dass zu Form1 gehört. Eben zu der Hauptform, die in Unit1 deklariert ist. ALso: Probier mal statt Unit1.MInput lieber Form1.MInput (und bei den anderen Sachen entsprechend)

_________________
We are, we were and will not be.
SunnyDream Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

WinXP
Delphi 7 Personal
BeitragVerfasst: Di 06.06.06 15:33 
Dann sagt er mir, dass Form1 ein undefinierter Bezeichner ist T_T
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 06.06.06 15:50 
Aber MInput ist doch sowas wie ein Memo, oder? Und wie heißt die Form, auf der dieses Memo drauf steckt?

In die Uses-Liste muss Unit1 (also der Name der Unit), beim Zugriff auf einzelne Sachen der Form muss man den Form-Namen benutzen, der in dieser Unit definiert ist.

_________________
We are, we were and will not be.
SunnyDream Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

WinXP
Delphi 7 Personal
BeitragVerfasst: Di 06.06.06 15:53 
Oh ich Trottel -.-
Das Form hieß nicht Form1 sondern FormMain... hatte es extra umbenannt um es übersichtlicher zu machen... Super, das hat man von Ordnung...

Jetzt geht es, danke!
Böser Borstel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 154



BeitragVerfasst: Mi 07.06.06 11:58 
Ich würde so ein Problem immer mit einer public property im 2 Fenster machen. Vorm Fenster öffnen übergeben, dann ändern im zweiten Fenster und nach dem schließen wieder auslesen. Wenn es wirklich das selbe Objekt ist braucht man es gar nicht mehr auslesen, denn es ist schon so wie man es beim Schließen des anderen Fensters geändert hat.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
private
  FMemo: TMemo;
public
  property Memo: TMemo read FMemo write FMemo;
TheUnknown
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: Mi 07.06.06 12:29 
Ich hatte mal ein ähnliches Problem.

Ich habe dann eine eigene OnClick-Prozedur geschrieben (die die selben Parameter haben muss, wie eine "echte"!). Dort schreibst Du dann erstmal den generellen Sourcecode rein. Aber anstatt einer festen Komponente (z.B. Button1.Caption) schriebst Du TButton(Sender).Caption in die eigene OnClick-Prozedur.

Und allen Komponenten, die dann die eigene OnClick-Prozedur ausführen sollen, verpasst Du per

ausblenden Quelltext
1:
Button1.OnClick := MeinEigenesOnClick;					


den guten Willen, die eigene Prozedur zu verwenden. :-)