AGB  ·  Datenschutz  ·  Impressum  







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

Während Programm läuft

Ein Thema von Finki · begonnen am 8. Aug 2013 · letzter Beitrag vom 10. Aug 2013
Antwort Antwort
Seite 1 von 3  1 23      
Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#1

Während Programm läuft

  Alt 8. Aug 2013, 09:56
...und weiter geht die fragerei

Hey

zuerst möchte ich anmerken das ich mit sehr intensiv mit der suche im interent beschäfftigt habe aber nicht fündig geworden bin,
also wende ich mich wieder einmal an das forum meines vertrauens.

ich möchte eine komponente (Edit/Label/Memo) welche ich erstellt habe (während das programm läuft) auswählen wenn möglich mit doppleklick auf das Edit/Label/Memo können und dann davon direkt die position ändern können..

mir fallen da nur dinge ein mit ixtausenden variablen und beziehungen könnt ihr mir tipps geben bzw. sagen wie man das möglichst enfach machen kann?
  Mit Zitat antworten Zitat
Der schöne Günther
Online

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Während Programm läuft

  Alt 8. Aug 2013, 10:02
Du kannst mehrere Komponenten auf dem Formular-Designer markieren und denen alle die gleiche onClick-Prozedur geben. Die Variable Sender ist ein Verweis auf die Komponente auf welche geklickt wurde, die müsstest du nach TComponent (oder TWinControl?) casten, damit du die Positionen ändern kannst.

Beispiel:
  1. Gewünschte Komponenten auswählen
  2. Im Objektinspektor bei Ereignisse Doppelklick ins "onClick"-Feld
  3. Im Quell-Text-Editor dann beispielsweise so:

Delphi-Quellcode:
procedure TForm9.Button1Click(Sender: TObject);
var
   meinControl: TWinControl;
begin

   if (Sender is TWinControl) then
      meinControl := (Sender as TWinControl)
   else
      Exit;

   meinControl.Left := meinControl.Left - 2;

end;
Damit schiebst du beim Klick auf jede Komponente (Memo, Button, Edit, ...) das Teil zwei Pixel nach links. Wozu so etwas gut ist weiß ich zwar auch nicht, aber möglicherweise habe ich die Frage auch falsch verstanden...
  Mit Zitat antworten Zitat
Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Während Programm läuft

  Alt 8. Aug 2013, 10:36
ähm ja gut einbisschen schon

und zwar läuft des so ab

ich klicken auf einen button (btnMove)

-> dann wähle ich eine Komponente aus (txtFeld)
-> dann klicke ich auf einen ArrowButton (btnli)
-> dann wird das txtFeld (welches aber keinen wirklichen namen hat) nach links verschoben um irgendeinen Faktor (der zb aus einen zahlen txtFeld genommen wird)
  Mit Zitat antworten Zitat
Der schöne Günther
Online

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Während Programm läuft

  Alt 8. Aug 2013, 10:46
Aber was genau daran ist jetzt dein Problem?

Du hast ja eine klare Vorstellung, was davon kannst du schon einmal umsetzen? Ich habe in den letzten Tagen kein komplettes Profil über deine Kentnisse erstellt (das überlasse ich den 100% verfassungskonform arbeitenden Nachrichtendiensten), aber ich würde glauben, dass du doch daran alles selbst hinbekommen könntest

- Move-Modus mittels Button an- und ausschalten
- Jetzt neu: Mit einer einzigen Methode herausfinden, welche Komponente man gedrückt hat
- Die eben ausgewählte Komponente nun auf dem Formular verschieben
  Mit Zitat antworten Zitat
Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Während Programm läuft

  Alt 8. Aug 2013, 10:52
- Jetzt neu: Mit einer einzigen Methode herausfinden, welche Komponente man gedrückt hat
und genau das ist das problem
hierbei stehe ich auf dem schlauch
  Mit Zitat antworten Zitat
Der schöne Günther
Online

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Während Programm läuft

  Alt 8. Aug 2013, 10:58
Hast du was ich eben geschrieben habe nicht mal nachgestellt? Ereignis-Methoden wie "onClick" werden immer mit einem Parameter "Sender" aufgerufen. Das ist die Form-Komponente, die gerade geklickt worden ist.

Im Beispiel steht in der Variable meinControl eben diese Komponente dann drin. Du kannst das überprüfen, indem du dir beispielsweise noch einmal dann durch eine Messagebox anzeigen lässt, ob es ein TButton, ein TEdit oder sonstwas war.

Füge nach dem "Nach links-Setzen" einfach noch ein
ShowMessage('Geklickt wurde: '+meinControl.ClassName); ein und schaue was passiert.
  Mit Zitat antworten Zitat
Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Während Programm läuft

  Alt 8. Aug 2013, 11:03
Au man ach jetzt ich bin echt iwie blöd

also ich muss dem auch nicht sagen auf was geklickt wurde des weiß der automatisch?
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
668 Beiträge
 
Delphi 12 Athens
 
#8

AW: Während Programm läuft

  Alt 8. Aug 2013, 11:57
"Er" (wer ist das überhaupt?) weiß erst mal gar nichts.
Die Komponente, die die gerade laufende Ereignis-Methode (in deinem Fall OnClick) aufgerufen hat, wird im Paramter Sender übergeben.

Gewöhn dir mal eine exaktere Terminologie an, sonst gibt es nur Missverständnisse.
  Mit Zitat antworten Zitat
Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Während Programm läuft

  Alt 8. Aug 2013, 12:08
Gut ich werde darauf achten! aber ja das meinte ich gut hat sich das auch geklärt vielen dank
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Während Programm läuft

  Alt 8. Aug 2013, 14:09
Gewöhn dir mal eine exaktere Terminologie an, sonst gibt es nur Missverständnisse.
Und eine vernünftige Zeichensetzung!
Man muss alles dreimal lesen, um es zu verstehen!
  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 08:47 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