AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Wenn . dann Fenster öffnen wie bei Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Wenn . dann Fenster öffnen wie bei Delphi

Ein Thema von Christian18 · begonnen am 1. Okt 2004 · letzter Beitrag vom 1. Okt 2004
Antwort Antwort
Seite 2 von 3     12 3      
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#11

Re: Wenn . dann Fenster öffnen wie bei Delphi

  Alt 1. Okt 2004, 13:37
Hallo, das mit der Positionierung passt bei mir irgendwie nicht so richtig. ich habe es jetzt mit einer ListBox1 gemacht, aber die Position dieser ListBox1 ist falsch. Die Listbox wird nicht am punkt angezeigt. Was kann ich dagegen tun???

Mit freundlichen Grüßen

Christian18
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Wenn . dann Fenster öffnen wie bei Delphi

  Alt 1. Okt 2004, 13:44
hi christian,

[oh]TRichEdit.CaretPos;[/oh] liefert dir die Koordinaten, des Carets im Clientbereich des Richedits.
du musst also noch die top- und left-werte des formulars und des richedits hinzuaddieren und dein fenster erscheint an der richtigen stelle.

sprich:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := False;
  form_code.left := form1.left + richedit1.left + richedit1.caretpos.x;
  form_code.top := form1.top + richedit1.top + richedit1.caretpos.y;
  form_code.show;
end;
Aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#13

Re: Wenn . dann Fenster öffnen wie bei Delphi

  Alt 1. Okt 2004, 13:48
das hatte ich auch schon versucht, funktioniert aber leider auch nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Wenn . dann Fenster öffnen wie bei Delphi

  Alt 1. Okt 2004, 14:33
hm, das verstehe ich nicht......
dann muss caretPos einen falschen wert zurückliefern
ich habs grad bei mir getestet und es klappt auch nicht...
aber rein theorethisch muss es so gehen...

Aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#15

Re: Wenn . dann Fenster öffnen wie bei Delphi

  Alt 1. Okt 2004, 14:44
ja theorisch ja. das denke ich auch, aber praktisch funktioniert das nicht. ich weiß auch nicht wieso, deshalb schreibe ich ja hier ins forum.

Mit freundlichen Güßen

Christian18
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Wenn . dann Fenster öffnen wie bei Delphi

  Alt 1. Okt 2004, 14:48
aha.

die delphi-hilfe erzählt mal wieder dünnpfiff
caretPos gibt nicht die pixel-koordinaten des carets zurück, sondern die spalte und die zeile...

da heißt es dann: umrechnen.

hier mal mein (getesteter) code:

Delphi-Quellcode:
  if key = '.then
  begin
    form2.left := form1.Left + richedit1.Left +
      richedit.CaretPos.x * form1.canvas.TextWidth('W') +
      (form1.width - form1.ClientWidth); //abziehen des fensterrahmens

    form2.top := form1.top + richedit.top +
      richedit.caretpos.y * form1.canvas.Textheight('W') +
      (form1.height - form1.ClientHeight); //abzeihen des fensterrahmen

    form2.show;
  end;
form2 ist das fenster, welches aufklappt, wenn man . eingibt

nachtrag: form1.canvas angefügt (damit du es besser siehst ). du müsstest dem canvas noch die schriftart den memo's geben, damit es die text-größe richtig ausgibt...

hoffe, dass dir das hilft,
Aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#17

Re: Wenn . dann Fenster öffnen wie bei Delphi

  Alt 1. Okt 2004, 15:06
hi,

kannst du mir mal dein Projekt schicken?? denn bei mir funktioniert es immer noch nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#18

Re: Wenn . dann Fenster öffnen wie bei Delphi

  Alt 1. Okt 2004, 15:26
jo,

ich habs nochmal überarbeitet
ich hab in dem projekt eine listbox benutzt.
aber der code für die benutzung eines formulars ist auch drin.

Aenogym
Angehängte Dateien
Dateityp: zip code_compl.zip (1,4 KB, 7x aufgerufen)
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#19

Re: Wenn . dann Fenster öffnen wie bei Delphi

  Alt 1. Okt 2004, 15:56
ich weiß jetzt warum es bei mir nicht funktioniert hat, ich habe eine klammer vergessen.
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#20

Re: Wenn . dann Fenster öffnen wie bei Delphi

  Alt 1. Okt 2004, 15:59
wofür ist eigentlich was "W"???

(memo1.CaretPos.x * canvas.TextWidth('W')) + canvas.TextWidth('W');
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 17:10 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