![]() |
On Screen Text
Weis wer wie ich sowas machen kann:
![]() (Ist eine winzige Exe, die einen Text auf den Bildschirm zaubert) |
Re: On Screen Text
Hi,
schau dir mal in der OH den Typ "TCanvas" an. Denn der Screen hat die Eigenschaft
Delphi-Quellcode:
Darauf kannst du dann alles mögliche zaubern oder schreiben. :)
Screen.Canvas
Chris |
Re: On Screen Text
Was Hast du denn für eine Delphi Version ?
Bei Delphi 7 kannst du z.B. einfach ein Label auf ein Form setzen und im OI zum Formular BorderStyle auf bsNone setzen und die TransparentFarbe auf den selben Wert wie den Fensterhintergund und schon ist nur noch die Schrift da. Wenn das Formular angezeigt wird, ist die Schrift da, ansonsten nicht. |
Re: On Screen Text
Habe Delphi 6
Ich bekomme keine Eigenschaft die Screen.Canvas heißt Könntest du mir mal ein bissal Code posten |
Re: On Screen Text
Danke für deine Möglichkeit den Text unsichtbar zu machen die ist super mit Color etc.!
|
Re: On Screen Text
|
Re: On Screen Text
Wenn man das jetzt noch so machen könnte dass es immer da bleibt wäre es perfekt.
Mein Ziel ist eigentlich dass man auch wenn man zum Beispiel Spiele spielt, den Text sieht |
Re: On Screen Text
Dazu müsste man diese "Mal-Prozedur" immer wieder, ganz schnell hintereinander ausführen. Vielleicht ginge das wenn man es in ein OnTimer Event packt...
Aber einige Spiele verwenden ja diesen "Overlay-Mode". Ich weiss nicht ob das da dann auch geht... MfG Florian :xmas: |
Re: On Screen Text
Hast du eine Ahnung wie man das machen könnte?`
Ich möchte mir eigentlich nur ein Programm machen, welches immer auf dem Bildschirm einen Text anzeigt. FRAPS kann das auch dazu gabs auch schon mal eine Thread habe allerdings keine Ahnung wie das funktionieren soll //Edit: hier ![]() |
Re: On Screen Text
Einfach Timer mit nem Intervall von 10 (ms) auf die Form und ab gehts:
Delphi-Quellcode:
Nur bleibt jetzt z.B. auf der Form noch Text "kleben". Müsste man mal sehen wie man das wegbekommt...
procedure WriteText(TransText: string);
var MyHand: HWND; MyDc: HDC; MyCanvas: TCanvas; begin MyHand := GetDesktopWindow; MyDc := GetWindowDC(MyHand); MyCanvas := TCanvas.Create; MyCanvas.Handle := MyDC; BeginPath(MyCanvas.Handle); MyCanvas.Font.Color := clRed; MyCanvas.Font.Name := 'Courier New'; MyCanvas.Font.Size := 30; SetBkMode(MyCanvas.Handle,TRANSPARENT); EndPath(MyCanvas.Handle); MyCanvas.TextOut(100, 100, TransText); //Hier die Positionsdaten mit X und Y, wo der Text beginnen soll end; procedure TForm1.Timer1Timer(Sender: TObject); begin WriteText('http://delphipraxis.net'); end; MfG Florian :xmas: |
Re: On Screen Text
Naja ich werde das mal testen ob man das dann auch bei spielen sieht.
|
Re: On Screen Text
wie schaffe ich es, daß mein programm nur wie ein osd funktioniert ? sprich daß es nur den text anzeigt, ich aber beispielsweise lustig meinen text weitertippen kann in word, ohne daß word den fokus verliert ?
(anwendungsbeispiel : lautstärkeregelung, anzeige durch mein osd) |
Re: On Screen Text
Es gibt ein Programm das VoiceOverlay heisst. Es zeigt während eines Spiels immer an, wer z.B. gerade im Teamspeak spricht, wer den Channel betritt etc. Es macht also eigentlich genau das was Du auch haben willst nur mit anderen Daten.
Google doch mal nach VoiceOverlay (der Autor ist Deutscher) und schreib ihn doch mal an wie er das gemacht hat. Vielleicht ist er ja so nett und gibt Dir ein paar Tips :) |
Re: On Screen Text
ich bekomm das mit der anzeige hin, ich brauche jetzt nur anderes :
mein programm soll starten, etwas 3 sekunden anzeigen, und dann wieder verschwinden. das ganze soll passieren, OHNE daß irgendein anderes programm den fokus verleirt oder anders behelligt wird ... was kann ich da tun ? |
Re: On Screen Text
und irgendwie wegbekommen müsste man das auch noch .... :)
|
Re: On Screen Text
Zur Lösung des Problems: zahlt einfach die 8$ !
Zur Simulation des Programms: Der angezeigte Text ist mit Sicherheit ein transparentes Fenster (das Text-Eingabe-Fenster liegt ja über dem Text), das man kaum programmieren könnte ohne auf die API-Ebene zu steigen. ![]() Ich glaub' man könnte dies ansatzweise simulieren, wenn man die WM_PAINT Message in der Fenster-Prozedur abfängt und die richtigen DCs an die richtigen Stellen kopiert. |
Re: On Screen Text
Also bei meinem Mp3 Player wird der Titel wie folgt angezeit:
Delphi-Quellcode:
Problem: Geht nicht in allen Spielen
//Schwarze bsnone-Form mit fsstayontop und schwarzer transparentcolor
Foutput.LMDLabel1.Caption:=Text; //verhindert Focusverlußt ShowWindow(Foutput.Handle, SW_SHOWNOACTIVATE); //Timer der nach 3 Sek die Form wieder per SW_HIDE versteckt THideFout.Enabled := true; Geht nur, wenn die Anwendung nicht miniert ist Vorteil: Text bleibt net auf den Schirm unbegrenzt stehen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 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