Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi On Screen Text (https://www.delphipraxis.net/13703-screen-text.html)

kurtm1 24. Dez 2003 14:00


On Screen Text
 
Weis wer wie ich sowas machen kann:

http://www.torry.net/samples/samples/soft/osddemo.zip

(Ist eine winzige Exe, die einen Text auf den Bildschirm zaubert)

CalganX 24. Dez 2003 14:08

Re: On Screen Text
 
Hi,
schau dir mal in der OH den Typ "TCanvas" an.
Denn der Screen hat die Eigenschaft
Delphi-Quellcode:
Screen.Canvas
Darauf kannst du dann alles mögliche zaubern oder schreiben. :)

Chris

himitsu 24. Dez 2003 14:09

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.

kurtm1 24. Dez 2003 14:15

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

kurtm1 24. Dez 2003 14:22

Re: On Screen Text
 
Danke für deine Möglichkeit den Text unsichtbar zu machen die ist super mit Color etc.!

flomei 24. Dez 2003 14:38

Re: On Screen Text
 
Interessant wäre dazu vielleicht dieser Beitrag von Daniel B in der CL...

MfG Florian :xmas:

kurtm1 24. Dez 2003 14:43

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

flomei 24. Dez 2003 14:46

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:

kurtm1 24. Dez 2003 14:48

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 http://www.delphipraxis.net/internal...ct.php?t=13585

flomei 24. Dez 2003 14:52

Re: On Screen Text
 
Einfach Timer mit nem Intervall von 10 (ms) auf die Form und ab gehts:
Delphi-Quellcode:
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;
Nur bleibt jetzt z.B. auf der Form noch Text "kleben". Müsste man mal sehen wie man das wegbekommt...

MfG Florian :xmas:

kurtm1 24. Dez 2003 14:53

Re: On Screen Text
 
Naja ich werde das mal testen ob man das dann auch bei spielen sieht.

Ikarus7 9. Dez 2005 09:54

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)

Phoenix 9. Dez 2005 10:49

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 :)

Ikarus7 9. Dez 2005 16:41

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 ?

Ikarus7 9. Dez 2005 16:49

Re: On Screen Text
 
und irgendwie wegbekommen müsste man das auch noch .... :)

Cicaro 15. Dez 2005 10:49

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.

Hier gibt es nette Beispiele für normale Fenster.

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.

Der_Ventilator 17. Dez 2005 17:52

Re: On Screen Text
 
Also bei meinem Mp3 Player wird der Titel wie folgt angezeit:

Delphi-Quellcode:
//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;
Problem: Geht nicht in allen Spielen
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