| Autor |
Beitrag |
SunnyDream
      
Beiträge: 36
WinXP
Delphi 7 Personal
|
Verfasst: 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:
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
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: 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 
      
Beiträge: 36
WinXP
Delphi 7 Personal
|
Verfasst: 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
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
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: 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 
      
Beiträge: 36
WinXP
Delphi 7 Personal
|
Verfasst: Di 06.06.06 15:27
Mhm...
Wenn ich in die "OnCLose" Prozedur des zweiten Forms folgendes schreibe:
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
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: 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 
      
Beiträge: 36
WinXP
Delphi 7 Personal
|
Verfasst: Di 06.06.06 15:33
Dann sagt er mir, dass Form1 ein undefinierter Bezeichner ist T_T
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: 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 
      
Beiträge: 36
WinXP
Delphi 7 Personal
|
Verfasst: 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
      
Beiträge: 154
|
Verfasst: 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.
Delphi-Quelltext 1: 2: 3: 4:
| private FMemo: TMemo; public property Memo: TMemo read FMemo write FMemo; |
|
|
TheUnknown
      
Beiträge: 334
|
Verfasst: 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
Quelltext 1:
| Button1.OnClick := MeinEigenesOnClick; |
den guten Willen, die eigene Prozedur zu verwenden. 
|
|