Autor |
Beitrag |
ccdee
      
Beiträge: 28
WinXP, Linux
PHP, Delphi, VB, Cobal, Pascal
|
Verfasst: Fr 24.02.06 15:23
Hallo,
Ich bin noch etwas neu in Sachen Delphi, habe vor einigen Jahren Delphi 3 programmiert und wollte jetzt ein Programm schreiben, bei dem ich im Delphi Fenster Text eingeben kann mit HintergrundBild und diesen Inhalt des Fensters (Bild+Text) auf den analogen Ausgang der Grafikkarte ausgeben kann. Sodass man dieses Bils dann auf einen Fernseher schalten kann, b.z.w. auf Bild Matrizen.
Danke für eure Vorschläge
MfG
Marc
|
|
digi_c
      
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Fr 24.02.06 15:57
Also ganz so läuft das nicht mit dem TV Ausgang.
So du nicht wirklich low Level rangehst, stellt der sich für Win immer als zusätzlicher Desktop dar also brauchst du dich nicht darum kümmern, welche Signale anliegen sondern musst nur ein Fenster auf diesen 2.Desktop bringen.
Also wie gesagt eine zweite Form erzeugen, darauf ein Label,... und mal in die Delphi Hilfe zu TForm.DefaultMonitor(und "siehe auch") schauen.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 24.02.06 17:50
Hi,
diese Grundinformation ist so nicht ganz vollständig:
Wenn man den TV-Ausgang nutzen möchte, so muss man dem Treiber dies in den meisten Fällen noch einmal mitteilen, d.h. die Anzeige über den TV-Out explizit aktivieren. Dies ist meist eine Treiberabhängige Regelung und geht daher nicht mit Standard-APIs von Windows zu nutzen. In den meisten Fällen hat der Nutzer die TV-Out-Anzeige aber bereits aktiviert, weshalb sich dein Programm voraussichtlich nicht um die Aktivierung\Deaktivierung dieser Schnittstelle kümmern muss.
Wenn Dein Programm doch diese Schnittstelle kontrollieren soll, solltest Du vorerst ein wenig mehr Erfahrung mit Delphi wieder ansammeln, da Du dabei direkt auf die Treiber-API des jeweiligen Karten-Herstellers zugreifen musst. In diesem Zusammenhang wäre es dann sinnvoll, die verwendete Hardware zu kennen.
MfG,
BenBE.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
ccdee 
      
Beiträge: 28
WinXP, Linux
PHP, Delphi, VB, Cobal, Pascal
|
Verfasst: Fr 24.02.06 19:36
Titel: hmm..
ok ich schau mir diese Sachen mal an.
Es ist nicht wie wenn ich noch nie mit Delphi programmiert hätte es ist nur so dass es schon sehr lange her ist und ich mich nur wieder einarbeiten muss.
Ich Danke euch für die Informationen.
Ich schau mich jetzt noch ein wenig im Internet um.
Meinst du mit Low Level Assembler??
MfG
Marc
|
|
NeoInDerMATRIX
      
Beiträge: 245
Win95, Win98(+se), WinNT, Win2000, WinME, WinXP(+pro), VISTA, Linux(SuSe), DOS [MultiMon(3)], Vista
D6 PeE + (FP 2.0l) + D3 Pe + D2005+ D2006 Arch
|
Verfasst: Fr 24.02.06 20:30
Hi,
nein mit LOW-Level ist nich Asembler gemeint. Spndern das direckte ansteuern der GraKa mit der Treiber API.
@BenBE: Auch deine ausführung ist nicht ganz koreckt.
OK Beispiel mit eine nVidea GraKa!
Sobald die GraKa feststellt das an dem Ausgang ein gerät hängt wird versucht der Ausgang zu aktivieren. Ist der eingang Aktiviert wird dies an Windows als neue Monitor / GraKa gemeldet. Und Windows seinerseits muss nun das händling der Monitore machen. Sprich es gibt verschiedene möglichkeiten wie die Monitore verwendet werden.
Nehmen wir also an wir wir haben z.B. eine nVidea gForce TI4200 (2xVGA-OUT, 1xCHIN-OUT) angeschlossen sind 2 Monitor und ein TV-Gerät. Nun werden werden durch den Treiber von nVidea bei Windows 3 Monitore angemeldet (Sieht man in der Systemsteuerung dann sehr gut) Davon ist immer einer Primaär. Alle anderen werden anhand des Verwendeten Modus entsprechend gehändelt. Der Primäre ist immer an!!!
Zum einen gäbe es die möglichkeit das die Monitor 1 auf OFF stehen sprich von windows zwar erkannt weurden aber nicht verwendet werden. Dann gibt es noch die möglichkeit das die Monitore auf MIRROR stehen sprich die monitore Spiegeln einfach nur den inhalt eines anderen Monitors. Dann gibt es noch die möglichkeit die monitore als zusätzlich zu nutzen. Also das die wie zwei eigenständige Monitore ansprechbar sind. Und es gibt natürlich die möglichkeit die Monitore dazu zu verwenden den Desktop auf diese Monitore zu erweitern. Wobei es dabei sehr viele verschiedene Modien gibt. Diese Modien sind für jeden zusätzlichen Monitor einzeln einstellen. Das einzige Manko bei Windows ist das diese Möglichkeiten nur halbherzig vorhanden ist. Und an den Anwender so fast garnicht konfigurierbar ist. Deshalb haben die Treiber solcher GraKa's meist einen ersatz für diese Möglichkeiten. Oder man verwendet Tools die sich darauf Spezialisiert haben. Davon gibt es sehr viele.
Aber ich schweife zu sehr ab. Nehmen wir jetzt an bei der oben erwähnten Konfiguration, das du einen Belibiegen Inhalt auf den TV Ausgang haben möchtest ist das eigentlich sehr einfach. Wenn dort Windows nicht wieder uns einen strich durch die rechnung macht. Denn als erstes must du natürlich herausfinden welche GraKa nun den TV-Ausgang darstellt. Aber wenn du das hast, kannst du einfach eine Form auf dem Monitor erzeugen und den Monitor dann in den FullScrenn Modus stellen. (Beim FullScreen Mode must du aber darauf achten das Windows dann die dumme eigenart hat den Desktop entsprechend anzupassen.) Und dann kannst du auf deiner Form machen wat du willst. Ach ja eins noch noch. Der TV-Ausgang unterstützt in der regel nur Auflösungen der PAL-Norm. Also 60Hz wenn ich mich jetzt nicht irre und soweit ich weis 800x600. Alles andere wird entweder Runter Scaliert oder per Scrolling angezeigt.
So ich hoffe das ich hier nicht zuviel infos gegeben habe. Und vorallem das man mit den Infos so etwas anfangen kann.
Und eins noch, die MultiMon.pas von Delphi kannst du vergessen! Die kommt nur mit Standart Infos klar also kann Monitore nur Verwenden wenn sie als Desktop verwendet werden. Alle anderen Modien werden Ignoriert. Und selbst dort gibt es noch viel nachbesserungs bedarf.
Cu
Neo
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 24.02.06 21:24
Ne, Low-Level ASM brauchst Du nicht, aber du musst die Ansteuerung auf den jeweiligen GraKa-Treiber anbinden, was dazu führt, dass es relativ stark von der Grafikkarte abhängig werden wird.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
|