AGB  ·  Datenschutz  ·  Impressum  







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

Button besonderes markieren

Ein Thema von Delphiturbo · begonnen am 31. Mai 2008 · letzter Beitrag vom 1. Jun 2008
Antwort Antwort
Seite 1 von 3  1 23      
Delphiturbo
(Gast)

n/a Beiträge
 
#1

Button besonderes markieren

  Alt 31. Mai 2008, 19:37
Hallo,

ich habe mehrere BitBtn Buttons und möchte ich das Button
irgendwie besonderes markieren, wenn sein Name in Feld Edit1.Text steht

Hat jemand eine Idee?
Nicht unbedingt eine Markierung wie im Bild
Miniaturansicht angehängter Grafiken
button_besonderes_markieren_138.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#2

Re: Button besonderes markieren

  Alt 31. Mai 2008, 19:39
Button gibts mit FindComponent();. Das markieren geht mit Canvas, falls du es noch nicht erledigt hast.

rollstuhlfahrer
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Button besonderes markieren

  Alt 31. Mai 2008, 19:43
Ich hab hier ein kleines Demo dazu rumliegen, das ich irgendwann mal programmiert hab. Vielleicht hilft es dir.
Angehängte Dateien
Dateityp: rar highlight_205.rar (1,3 KB, 32x aufgerufen)
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Delphiturbo
(Gast)

n/a Beiträge
 
#4

Re: Button besonderes markieren

  Alt 31. Mai 2008, 19:49
Ich möchte z.B. ein Shape mit einem Timer auf das Button positionieren
z.B.

Delphi-Quellcode:
//shape1.left:=BitBtn1.left;
shape1.left://nun muss ich den BitBtn-Namen, der sein Name in Edit1.Text steht nehmen !!!
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Button besonderes markieren

  Alt 31. Mai 2008, 19:50
Guck dir doch einfach mal mein Demo an
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Delphiturbo
(Gast)

n/a Beiträge
 
#6

Re: Button besonderes markieren

  Alt 31. Mai 2008, 19:57
Zitat von Fussball-Robby:
Guck dir doch einfach mal mein Demo an
Die Markierung finde ich sehr schön
Ich möchte aber nicht jedes Objekt markieren, wo der Cursor gerade sich befindet,
sondern nur das Objekt, das sein name in Edit1 steht

kann man den Code so anpassen ?
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: Button besonderes markieren

  Alt 31. Mai 2008, 20:00
Hi,

ich hab mal schnell was probiert weil einfach so

Aber versuche es bitte wenigstens zu verstehen, der rote Kasten sagt mir, dass du das noch nicht probiert hast.

FindComponent findet deine Komponente - oder gibt nil zurück. Diese wird zu Btn (einem TControl) zugewiesen. Der weitere Code wird nur ausgeführt, wenn Btn tatsächlich ein TControl ist (ganz wichtig!), da Left, Top, Width und Height benötigt werden - dazu muss es ein TControl sein.

Es werden die Einstellungen zum Zeichnen gesetzt: Keine Füllung (Brush.Style = bsClear), Linienbreite 2 und rote Linie. Damit wird ein Rechteck gezeichnet (Koordinaten: obere linke und untere rechte Ecke).

Der Code dazu sieht so aus:

Delphi-Quellcode:
var
  Btn: TControl;
begin
  Btn := TControl(FindComponent('Button' + Edit1.Text));

  //if Assigned(Btn) then //nicht nötig, da (nil is TControl) = false
    if Btn is TControl then
    begin
      with canvas do
      begin
        Brush.Style := bsClear;
        with Pen do
        begin
          Width := 2;
          Color := clRed;
        end;
        Rectangle(Btn.Left-2, Btn.Top-2,
          Btn.Left + Btn.Width + 2, Btn.Top + Btn.Height + 2);
      end;
    end;
end;
Am besten als eine Methode die in OnPaint des Forms sowie beim OnChange des Edits aufgerufen wird, wobei im OnChange des Edits noch ein Repaint; stehen sollte, um die alte Markierung zu löschen.

Je nachdem, wie deine Komponenten heißen, solltest du statt Button etwas anderes schreiben (hattest du nicht 'BitBtn's?).

Mfg
FAlter
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
Delphiturbo
(Gast)

n/a Beiträge
 
#8

Re: Button besonderes markieren

  Alt 31. Mai 2008, 21:11
Ich habe so versucht :

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
btn: TControl;
begin
Btn := TControl(FindComponent('BitBtn' + Edit1.Text));
end;
procedure TForm1.BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin

Highlight(Btn);
//Incompatible types: 'TWinControl' and 'TControl'

end;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Button besonderes markieren

  Alt 31. Mai 2008, 21:14
Dann caste doch nach TWinControl
Markus Kinzler
  Mit Zitat antworten Zitat
Delphiturbo
(Gast)

n/a Beiträge
 
#10

Re: Button besonderes markieren

  Alt 31. Mai 2008, 21:25
Zitat von mkinzler:
Dann caste doch nach TWinControl
Stimmt, jetzt bekomme ich mindestens die Markierung
Ich muss nun die alte Markierung löschen

Wie kann ich in OnChange die alte Markierung wieder löschen, sonst werden alle
BitBtns markiert
  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 05:09 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