AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

| im Hint anzeigen

Ein Thema von himitsu · begonnen am 30. Jul 2009 · letzter Beitrag vom 31. Jul 2009
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#1

| im Hint anzeigen

  Alt 30. Jul 2009, 12:23
Zitat:
Durch die Angabe von zwei Werten, die durch das Zeichen | voneinander getrennt sind, kann ein Kurzhinweis definiert werden, der sowohl vom Hilfetextfeld als auch von einer Ereignisbehandlungsroutine für OnHint verwendet wird. Beispiel:
Edit1.Hint := 'Name|Geben Sie den Namen in das Eingabefeld ein';
Ja also dieses Verhalten bereitet mir gerade Probleme, denn ich möchte/müßte im Hint gerade dieses Zeichen anzeigen,
aber leider schneidet Delphi ab Diesem den Text ja nun ab ... gibt es da überhaupt einen Weg dieses dennoch anzeigen zu lassen?

[add] ich dachte erst mein mehrzeiliger Hinttext sei zu lang
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.198 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: | im Hint anzeigen

  Alt 30. Jul 2009, 12:26
Evtl. eigene Implementierung des Hintfensters verwenden? Das ElPack von LMD hat sowas (um Unicode auch vor D2009 un HTML im Hint zu unterstützen)
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#3

Re: | im Hint anzeigen

  Alt 30. Jul 2009, 12:37
Ich hatte mir grad mal TCustomHint.ShowHint(Control: TControl); angesehn und dieses läßt sich leider nicht überschreiben. Ja und gerade diese Funktion wird ja durch die VCL aufgerufen,
also selbst wenn ich da eine andere Hint-Klasse registriere, komm ich nicht an den kompletten Hint-Text ran

function GetShortHint(const Hint: string): string; aus der Unit Controls könnte ich noch versuchen irgendwie zu ersetzen.
(ich glaub da gab's doch sowas mit Hooks, aber ob das hier geht, weiß ich grad nicht ... muß mal suchen, wo hier der Thread zu sowas nochmal war)

Alternativ wären noch 2 Möglichkeiten übrig:
  • ein anderes Zeichen in der Eingabe verwenden und dieses dann durch | ersetzen,
    aber es handelt sich um die Eingabe einer Maske (Dateiname), wo mehrere Masken möglich sind ... getrennt durch |, wie es ja an vielen Stellen üblich ist und da jetzt ein anderes Zeichen zu nutzen, nur weil der Hint "spinnt" ...
  • ein anderes Zeichen anzeigen, welches aber genauso aussieht ... via Unicode gibt's da mehrere Möglichkeiten, aber ob auf dem Zielrechner dieses Zeichen dann auch angezeigt werden kann, ist fraglich.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

Re: | im Hint anzeigen

  Alt 30. Jul 2009, 12:57
Evtl. so wie bei && > & und '' > ' einfach verdoppeln?

Also Sowas:
Zitat:
Hallo || Welt
N Versuch wärs wert
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#5

Re: | im Hint anzeigen

  Alt 30. Jul 2009, 13:07
||, \| und Co. ... so schlau war ich auch schon, aber selbst nach näherem Hinsehn, gibt's da keine Maskierung

Delphi-Quellcode:
function GetShortHint(const Hint: string): string;
var
  I: Integer;
begin
  I := AnsiPos('|', Hint);
  if I = 0 then
    Result := Hint else
    Result := Copy(Hint, 1, I - 1);
end;
und
Delphi-Quellcode:
procedure TCustomHint.ShowHint(Control: TControl);
var
  Pos: TPoint;
  Index: Integer;
begin
  if Control.Hint = 'then
    Exit;

  Index := AnsiPos('|', Control.Hint); //Do Not Localize

  Title := GetShortHint(Control.Hint);
  if Index <> 0 then
    Description := GetLongHint(Control.Hint)
  else
    Description := '';
...
ich wollte doch nur im Hint angeben, was es für Möglichkeiten bei der Maske gibt

also im LongHint wäre ein | möglich, da ja nur das Erste ausgewertet wird, aber im Hint angezeigt wird ja nur der ShortHint.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: | im Hint anzeigen

  Alt 30. Jul 2009, 13:12
Kann man sowas vielleicht mit dem ASCII-Zeichensatz hinbekommen?

Edit1.Hint := 'Name' + #124 + 'Geben Sie den Namen in das Eingabefeld ein'; Ungetestet und geraten. Evtl. ist es völliger Blödsinn.

Grüße, Matze
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#7

Re: | im Hint anzeigen

  Alt 30. Jul 2009, 13:51
Ich habe mal irgend wo (swissdelphicenter!?) ShowBalloonTip gefunden.
Das "überschreibt" die normalen Hints und zeigt auch '|' im Hilfetext an.

Evtl. kannste das ja an deine Wünsche anpassen oder dich davon inspirieren lassen. ^^ (oder 1:1 verwenden ^^)


Delphi-Quellcode:
procedure ShowBalloonTip(Control: TWinControl; Icon: integer; // benötigt 'Commctrl' (uses)
                        Title: pchar; Text: PWideChar; BackCL, TextCL: TColor);


{ShowBalloonTip(Button1, 1, 'Title', 'Balloontiptext', clBlue, clNavy);}
procedure ShowBalloonTip(Control: TWinControl; Icon: integer; Title: pchar; Text: PWideChar; BackCL, TextCL: TColor);
const
  TOOLTIPS_CLASS = 'tooltips_class32';
  TTS_ALWAYSTIP = $01;
  TTS_NOPREFIX = $02;
  TTS_BALLOON = $40;
  TTF_SUBCLASS = $0010;
  TTF_TRANSPARENT = $0100;
  TTF_CENTERTIP = $0002;
  TTM_ADDTOOL = $0400 + 50;
  TTM_SETTITLE = (WM_USER + 32);
  ICC_WIN95_CLASSES = $000000FF;
type
  TOOLINFO = packed record
    cbSize: Integer;
    uFlags: Integer;
    hwnd: THandle;
    uId: Integer;
    rect: TRect;
    hinst: THandle;
    lpszText: PWideChar;
    lParam: Integer;
  end;
var
  hWndTip: THandle;
  ti: TOOLINFO;
  hWnd: THandle;
begin
  hWnd := Control.Handle;
  hWndTip := CreateWindow(TOOLTIPS_CLASS, nil,
    WS_POPUP or TTS_NOPREFIX or TTS_BALLOON or TTS_ALWAYSTIP,
    0, 0, 0, 0, hWnd, 0, HInstance, nil);
  if hWndTip <> 0 then
  begin
    SetWindowPos(hWndTip, HWND_TOPMOST, 0, 0, 0, 0,
      SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
    ti.cbSize := SizeOf(ti);
    ti.uFlags := TTF_CENTERTIP or TTF_TRANSPARENT or TTF_SUBCLASS;
    ti.hwnd := hWnd;
    ti.lpszText := Text;
    Windows.GetClientRect(hWnd, ti.rect);
    SendMessage(hWndTip, TTM_SETTIPBKCOLOR, BackCL, 0);
    SendMessage(hWndTip, TTM_SETTIPTEXTCOLOR, TextCL, 0);
    SendMessage(hWndTip, TTM_ADDTOOL, 1, Integer(@ti));
    SendMessage(hWndTip, TTM_SETTITLE, Icon mod 4, Integer(Title));
  end;
end;
EDIT: ups ... zu viel kopiert ^^
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#8

Re: | im Hint anzeigen

  Alt 30. Jul 2009, 13:52
Du könntest ja einfach "Hint >> Bla bla" nehmen und beim Zeichnen dann >> durch | ersetzen. Das Zeichen lässt sich ja mittels HintWindow-Klassen personalisieren...

Viele Grüße
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#9

Re: | im Hint anzeigen

  Alt 30. Jul 2009, 13:53
Zitat von Matze:
Kann man sowas vielleicht mit dem ASCII-Zeichensatz hinbekommen? ... Ungetestet und geraten ..
nope geht leider net. (grade mal schnell getestet ^^)
Zitat von himitsu:
ich wollte doch nur im Hint angeben, was es für Möglichkeiten bei der Maske gibt
Dann schreib den Trivialnamen ... wenn man den nicht kennt, so wie ich, kann man ihn ja immer noch googeln. ^^
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#10

Re: | im Hint anzeigen

  Alt 30. Jul 2009, 14:19
Zitat von TeronG:
Zitat von Matze:
Kann man sowas vielleicht mit dem ASCII-Zeichensatz hinbekommen? ... Ungetestet und geraten ..
nope geht leider net. (grade mal schnell getestet ^^)
es ist ja auch klar warum ... im String ist es ja so oder so dieses "böse" Zeichen

Zitat von TeronG:
Dann schreib den Trivialnamen ... wenn man den nicht kennt, so wie ich, kann man ihn ja immer noch googeln. ^^
toll, den weiß ich jetzt auch nicht ... nur nach was soll ich da suchen?
google
Es wurden keine mit Ihrer Suchanfrage - | - übereinstimmenden Dokumente gefunden.

Vorschläge:

* Probieren Sie andere Suchbegriffe.

also bis jetzt hatte ich es noch nie geschaft, daß mir google absolut nix liefert ... is also 'ne Premiere für mich ... sonst kommt ja wenigstens noch sowas
google
Meinten Sie: .....

Es wurden keine Standard-Webseiten gefunden, in denen alle eingegebenen Suchbegriffe vorkommen.

Es wurden keine mit Ihrer Suchanfrage - ..... - übereinstimmenden Dokumente gefunden.

Vorschläge:

* Vergewissern Sie sich, dass alle Wörter richtig geschrieben sind.
* Probieren Sie andere Suchbegriffe.
* Probieren Sie allgemeinere Suchbegriffe.


Also das mit dem BalloonTip wäre eine Möglichkeit und sieht bestimmt nicht schlecht aus.
Nur selbst einblenden ... hab grad keine Ahnung wie ich das machen sollte (also auf welches Ereignis hin),
aber ich denk da läßt sich was machen, wenn ich im HintText das Zeichen Kodiere und dann beim Anzeigen umwandel ...

aber so oder so (andere Hintklasse oder ToolTip) ich werd wohl etwas "eigenes" registrieren müssen
(also eine Maskierungsmöglichkeit für das | im HintText, seitens Delphi, wäre schon besser gewesen )
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz