![]() |
VCL.NET -> Winforms .NET
Hallo,
ich arbeite derzeit an mehreren kleinen .NET Programmen und nutze die Winforms und nicht die VCL.NET. Jetzt möchte ich aber eine Komponente, die ich sowohl als reine VCL und als VCL.NET Komponente habe, in einer Winforms Anwendung nutzen. Ist das irgendwie möglich? Schließlich handelt es sich hierbei ja auch nur um eine DLL. Ich meine darüber auch schon schon mal etwas gelesen zu haben, dass das funktioniert. Nur finde ich dazu nichts mehr :? Mir ist klar, dass es dann kein reines .NET mehr wird, aber das ist mir zunächst erstmal wurscht :stupid: . PS: Sourcen habe ich zwar diese sind aber mit mehreren 10 000 Zeilen nicht so handlich. |
Re: VCL.NET -> Winforms .NET
Wenns in Delphi gemacht wird:
![]() |
Re: VCL.NET -> Winforms .NET
Implementiert TComponent nicht bereits IComponent?
Wenn nicht mach's einfach selbst, und schon kannst du die Komponente auf die .Net Design surface ziehen. Wieviel dir das bringt sei mal dahin gestellt... |
Re: VCL.NET -> Winforms .NET
Zitat:
Hast du Erfahrung mit einer komplexeren in Delphi geschrieben Komponente ? Hat das irgendwelche Nachteile gegenüber "richtigen" Komponenten auf .NET Basis? (außer dass man es nur Windows nutzen kann) @Elvis: Was genau meinst du mit "wieviel dir das bringt, sei mal dahin gestellt"? Meinst du es kommt zu massiven Problemen? |
Re: VCL.NET -> Winforms .NET
Zitat:
Zitat:
|
Re: VCL.NET -> Winforms .NET
Zitat:
Zitat:
|
Re: VCL.NET -> Winforms .NET
Zitat:
Zitat:
|
Re: VCL.NET -> Winforms .NET
Zitat:
|
Re: VCL.NET -> Winforms .NET
Zitat:
|
Re: VCL.NET -> Winforms .NET
Ich habe jetzt einfach mal das Beispiel auf deren Seite genommen und das TEdit erst durch ein TMemo und schließlich durch mein TAdvMemo (von TMS-Software) ersetzt. Das TMemo funktioniert einwandfrei, das TAdvMemo jedoch nicht :sad:.
Das Problem scheint weniger an der VCL2NET Unit zu liegen, sondern an der fehlenden TAdvMemo.Resources. Kann man die irgendwie mit Delphi erzeugen lassen ? Das gleiche Problem tritt übrigens bei der Installation der VCL.NET Komponente auf. Bei der Komponente liegen noch TAdvMemo.Res Dateien bei. Ein einfaches Umbenennen klappt leider nicht :sad: Die reine VCL Komponente funktioniert übrigens. |
Re: VCL.NET -> Winforms .NET
Du hättest gleich sagen können, dass es sich um ein Control handelt. :roll:
|
Re: VCL.NET -> Winforms .NET
Hallo,
also ich bin jetzt einen Schritt weiter. Ich kann jetzt das Control hinzufügen und es funktioniert auch so weit. Bei der Komponente handelt es sich um ein TMemo bzw. ein TAdvMemo (bei beiden tritt der gleiche Effekt auf). Und zwar verliert das Memo den Fokus, wenn die Cursor Tasten oder Return gedrückt werden. Dieser Effekt ist natürlich nicht erwünscht ;). Woran könnte das liegen? Bzw. wie kann ich das beheben? Nachtrag: Der Source:
Delphi-Quellcode:
In meinem "richtigen" Programm habe ich das TMemo bzw. das TadvMemo global definiert. Tritt aber das gleiche auf.
var
memo : TMemo; begin memo := TMemo.Create(nil); memo.Text := 'select * from WetterData limit 0,50'; memo.Parent := Self; |
Re: VCL.NET -> Winforms .NET
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe zwar einen Workaround gefunden, der mir aber persönlich nicht wirklich gefällt.
Und zwar setze ich den Fokus wieder per Hand auf das Memo und ändere dann die Caret-Position ebenfalls per Hand:
Delphi-Quellcode:
Aber wie gesagt, es ist nicht wirklich befriedigend. Vor allem auch deswegen, dass der Fokus immer noch hin und her springt. Sprich anfangs hat das Memo den Fokus, dann wird z.b. die Up-Taste gedrückt, dann bekommt das nächste Control den Fokus und zack hat der Editor wieder den Fokus. Das entsprechende Control blinkt dann so schrecklich. Ich habe mal eine Testanwendung gemacht. Seht selbst.
procedure TMDIChild.TMDIChild_KeyUp(sender: System.Object; e: System.Windows.Forms.KeyEventArgs);
begin // Hier werden die Cursor - Tasten abgefangen und der fokus wieder auf das Memo gelenkt: editor.SetFocus; if (e.KeyCode = Keys.Down ) then // nach unten editor.CurY := editor.CurY +1 else if (e.KeyCode = Keys.Up ) then // nach unten editor.CurY := editor.CurY -1 else if (e.KeyCode = Keys.Left ) then // nach unten editor.CurX := editor.CurX -1 else if (e.KeyCode = Keys.Right ) then // nach unten editor.CurX := editor.CurX +1; end; Habt ihr bessere Ideen/Lösungen? |
Re: VCL.NET -> Winforms .NET
Hi,
wenn ich die STRG oder ALT Taste während der Cursorbewegung verwende, gehts ohne Probleme. Vielleicht hilft dir das ja weiter... mfG mirage228 |
Re: VCL.NET -> Winforms .NET
Was soll dieses Control denn können, was es nicht bereits in einer freien SWF-basierten Lib gibt?
Und wenn es ein paar Dinge mehr kann(, die du benötigst,) kann man die nachrüsten oder gar darauf verzichten? VCL Controls in SWF zu benutzen ist zwangsläufig pain-ish in the ass-ish, du kannst ja nicht das Control selbst benutzen, nur den Wrapper. Und nun bist du darauf angewiesen, dass sich dieser Wrapper an die Regeln hält. (Was er anscheinend nicht tut) |
Re: VCL.NET -> Winforms .NET
@Mirage Danke, das wäre vielleicht ein Ansatz. Auch wenn ich noch nicht genau weiß, wie mir das helfen soll :gruebel:
@Elvis: Es ist eine Komponente, die dem Editor vom VS und Delphi 2005/06 nachempfunden ist (also Syntaxhighlighting, Code-Completion, Code-Folding etc.). Das habe ich jedoch auch nicht getestet. Etwas vergleichbares habe ich so noch nicht gefunden. Ich habe eine Zeitlang mit dem Texteditor von Sharpdevelop rumgespielt. Aber das wahre war es auch nicht :? |
Re: VCL.NET -> Winforms .NET
Dann schaue dir mal
![]() Ähnlich wie Firebird von Interbase abstammt, stammt Fireball von Componas' Editor Control ab. |
Re: VCL.NET -> Winforms .NET
Was genau kann denn Fireball? Hast du evtl. eine Feature-List oder so etwas?
PS: Wobei ich derzeit immer noch an meinem TAdvMemo hänge ;). Allein schon wegen der gekauften Lizenz ;) |
Re: VCL.NET -> Winforms .NET
Zitat:
Zitat:
|
Re: VCL.NET -> Winforms .NET
Zitat:
Aber ich habe noch mal gegoogelt und habe das hier gefunden: ![]() Da ist zumindest mal ein Bildchen. Dann habe ich noch ein wenig im Forum von FireBall rumgelesen. Aber so richtig viel scheint da nicht los zu sein. Zumal Code-Completion und Code-Folding nicht ganz so einfach zu implementieren ist. Oder hast du da mehr Erfahrung und hast die Komponente schon einmal ausprobiert ? Ich muss zu geben, dass ich noch nichts runtergeladen habe. Aber ich habe so meine Bedenken, dass das mit Delphi 2005 funktionieren wird, da Fireball doch ein .NET 2 Assembly zu sein scheint, oder nicht? Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz