AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Konstante per ComboBox auswählen

Ein Thema von krueemel · begonnen am 19. Sep 2007 · letzter Beitrag vom 19. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2   
krueemel

Registriert seit: 18. Sep 2007
15 Beiträge
 
#1

Konstante per ComboBox auswählen

  Alt 19. Sep 2007, 09:57
ich möchte, den PArameter
SC_MINIMIZE

in

PostMessage(GetWindowHandleByExeName(Edit1.Text), WM_SYSCOMMAND,SC_MINIMIZE,0); gerne per Combobox steuern, sprich ich wähle in der Box aus zwischen Minimize, Close etc. Dies wird im label1.Caption gespeichert, nun geben ich folgendes ein:

PostMessage(GetWindowHandleByExeName(Edit1.Text), WM_SYSCOMMAND, Label1.Caption, 0); Doch leider kommt folgende Fehlermeldung:
Code:
[Hinweis] Unit1.pas(61): Auf 'GetWindowHandleByExeName' zugewiesener Wert wird niemals benutzt
[Fehler] Unit1.pas(126): Inkompatible Typen: 'Integer' und 'TCaption'

Viele liebe grüße
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.617 Beiträge
 
Delphi 12 Athens
 
#2

Re: Konstante per ComboBox auswählen

  Alt 19. Sep 2007, 10:07
Du musst schon eine Abfrage dazwischenschalten:
Delphi-Quellcode:
var Flag: DWORD;
Flag := 0;
case ComboBox1.ItemIndex of
  0: Flag := SC_MINIMIZE;
  1: Flag := SC_MAXIMIZE;
  ...
end;
PostMessage(GetWindowHandleByExeName(Edit1.Text), WM_SYSCOMMAND,Flag,0);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
krueemel

Registriert seit: 18. Sep 2007
15 Beiträge
 
#3

Re: Konstante per ComboBox auswählen

  Alt 19. Sep 2007, 10:58
okay, vielen Dank. Klappt super.
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#4

Re: Konstante per ComboBox auswählen

  Alt 19. Sep 2007, 11:15
Hi,

auch, wenn es in diesem speziellen Fall vielleicht etwas hoch gegriffen ist; Du könntest Deiner ComboBox auch Objekte zuweisen, anstelle nur der Bezeichnungen. In diesen Objekten könntest Du dann die Integer-Werte speichern, die sich hinter Deinen Konstanten (SC_MINIMIZE, SC_MAXIMIZE etc.) verbergen.

Hätte in diesem Deinem Beispiel aber nur einen Vorteil, und zwar den, dass Du Deine Case-Anweisung nicht überarbeiten müsstest, sollte sich die Reihenfolge Deiner Items irgendwann einmal ändern.

Beispielprojekt im Anhang.
Angehängte Dateien
Dateityp: zip combo_konstanten_152.zip (7,7 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
krueemel

Registriert seit: 18. Sep 2007
15 Beiträge
 
#5

Re: Konstante per ComboBox auswählen

  Alt 19. Sep 2007, 11:22
Das ist zwar schön und gut, aber ich kann es leider nicht kompilieren.

Ich glaube ich habe eine zu alte Version, ich hab den Header/Uses "Variants" nicht.
Desweiteren ist der Bezeichner "AddItem" undefiniert.

Aber ich kann mir ungefähr vorstellen was du meinst, aber ich weiß nicht, wie ich es realisieren könnte.

Aber vielen Dank
mfg
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#6

Re: Konstante per ComboBox auswählen

  Alt 19. Sep 2007, 11:28
Hab eine neue Version hochgeladen - ohne Variants.

Kannst es ja jetzt mal probieren - oder auch lassen War eh nur nen kleines HowTo.
  Mit Zitat antworten Zitat
krueemel

Registriert seit: 18. Sep 2007
15 Beiträge
 
#7

Re: Konstante per ComboBox auswählen

  Alt 19. Sep 2007, 11:35
Zitat von s-off:
Hab eine neue Version hochgeladen - ohne Variants.

Kannst es ja jetzt mal probieren - oder auch lassen War eh nur nen kleines HowTo.
Ja ich würds mir echt gerne anschauen, aber den Bezeichner AddFile ist immer noch nicht definiert. Bei mir mach ich das eigentlich immer über Items.Add, aber wenn ich das änder sind dort zu viele Paramteter.

Tut mir leid, aber danke für deine Bemühungen, ich hätts gern angeschaut
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#8

Re: Konstante per ComboBox auswählen

  Alt 19. Sep 2007, 11:42
Könntest es noch probieren, indem Du vor AddFile 'Self' davor schreibst, also so:
Delphi-Quellcode:
Procedure TMyComboBox.AddConstant(_sText: String; _iID: Integer);
Begin
   Constant := TConstantID.Create; //Eine Instanz unseres Objektes erzeugen
   Constant.iID := _iID; //Die ID-Eigenschaft unseres Objects füllen
   Self.AddItem(_sText, Constant); //Unserer Combobox dieses Object hinzufügen
End;
Zitat:
Bei mir mach ich das eigentlich immer über Items.Add
Das ist die Methode, mit der Du einfach einen String in die Items einfügst.
Mit AddItem fügst Du sowohl einen String ein, als auch ein Object.

Seltsam; welche Delphi-Version benutzt Du?
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#9

Re: Konstante per ComboBox auswählen

  Alt 19. Sep 2007, 12:01
Alternativ könntest Du auch folgendes machen - benutzt kein AddItem und ist nicht so oversized wie das erste Beispiel.

Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
   ComboBox1.Items.AddObject('SC_MINIMIZE', TObject(61472));
   ComboBox1.Items.AddObject('SC_MAXIMIZE', TObject(61488));
End;

Procedure TForm1.ComboBox1Change(Sender: TObject);
Var
   int: Integer;
Begin
   int := Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
   ShowMessage(inttostr(int));
End;
  Mit Zitat antworten Zitat
krueemel

Registriert seit: 18. Sep 2007
15 Beiträge
 
#10

Re: Konstante per ComboBox auswählen

  Alt 19. Sep 2007, 12:30
ah coole Sache, aber woher weiß ich die Nummer hinter TObject?!


Zitat:
ComboBox1.Items.AddObject('SC_MINIMIZE', TObject(61472));

Viele Grüße..
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:59 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