AGB  ·  Datenschutz  ·  Impressum  







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

Invalid Class Typecast

Ein Thema von Wuaegner · begonnen am 6. Aug 2005 · letzter Beitrag vom 6. Aug 2005
Antwort Antwort
Benutzerbild von Wuaegner
Wuaegner

Registriert seit: 8. Feb 2004
406 Beiträge
 
Delphi 6 Enterprise
 
#1

Invalid Class Typecast

  Alt 6. Aug 2005, 22:55
if ((Sender as TListBox).Items.Count>0) then Wieso erhalte ich hier diese Fehlermeldung?

Wogegen (Sender as TListBox).ItemIndex ... in einer anderen Prozedur klappt?
Wuaegner
Gruß Flo
Unternehmensberatung
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Invalid Class Typecast

  Alt 6. Aug 2005, 23:05
welche fehlermeldung? meine glaskugel ist wohl noch in Hannover, sorry
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Wuaegner
Wuaegner

Registriert seit: 8. Feb 2004
406 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Invalid Class Typecast

  Alt 6. Aug 2005, 23:08
Die aus meinem Titel, dachte das wäre klar .
Nochmal etwas mehr Code:
Delphi-Quellcode:
procedure TForm1.DigitaleRckwrtssuchemiteinbeziehen1Click(Sender: TObject);
var
  KeyInputs: array of TInput;
  KeyInputCount: Integer;
  wnd: HWND;
  s: string;

  procedure KeybdInput(VKey: Byte; Flags: DWORD);
  begin
    Inc(KeyInputCount);
    SetLength(KeyInputs, KeyInputCount);
    KeyInputs[KeyInputCount - 1].Itype := INPUT_KEYBOARD;
    with KeyInputs[KeyInputCount - 1].ki do
    begin
      wVk := VKey;
      wScan := MapVirtualKey(wVk, 0);
      dwFlags := KEYEVENTF_EXTENDEDKEY;
      dwFlags := Flags or dwFlags;
      time := 0;
      dwExtraInfo := 0;
    end;
  end;
begin

  // Markierte Nummer in Zwischenablage
if (Sender as TListBox).Items.Count > 0 then // HIER KOMMT DIE FEHLERMELDUNG
  begin
   s:= (Sender as TListBox).Items.Strings[(Sender as TListBox).ItemIndex];
   // Wenn Nummer nicht mit 0 beginnt setze 07433 davor
   if s[1]<>'0then
   s:= '07433'+ s;

   ClipBoard.AsText:= s;
  end;
Wuaegner
Gruß Flo
Unternehmensberatung
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Invalid Class Typecast

  Alt 6. Aug 2005, 23:09
nun, ich glaube "DigitaleRckwrtssuchemiteinbeziehen1" ist weniger eine TStringList als vielmehr z.b. ein TButton, oder? Sender ist immer das steuerelement, das gerade gefeuert hat.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Wuaegner
Wuaegner

Registriert seit: 8. Feb 2004
406 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Invalid Class Typecast

  Alt 6. Aug 2005, 23:12
Ja stimmt,
Das ist ein Item aus Popup1, das nun aber von verschiedenen Listboxen aus aufgerufen werden kann. Wie kann ich dann den Sender , also der Listboxen, ins popupClick Ereignis mitgeben, damit der obige Code klappt?
Wuaegner
Gruß Flo
Unternehmensberatung
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Invalid Class Typecast

  Alt 6. Aug 2005, 23:14
ganz einfach: sender raus, direkt die listbox rein.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Wuaegner
Wuaegner

Registriert seit: 8. Feb 2004
406 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Invalid Class Typecast

  Alt 6. Aug 2005, 23:15
Ja nein, die Prozedur soll ja von verschiedenen ListBoxen aus aufgerufen werden und in ihr dann auch die jeweilige ListBox die aufgerufen hat, verarbeitet werden.
Wuaegner
Gruß Flo
Unternehmensberatung
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Invalid Class Typecast

  Alt 6. Aug 2005, 23:24
oha, dann wirds ein wenig haariger.

mal sehen...

zuerst machst du im private-abschnitt deiner Formdeklaration einen listbox-pointer rein:

Delphi-Quellcode:
type TForm1=class(TForm);
...
private
currentlistbox:TListBox;
dann machst du ein OnContextPopup für deine listboxen:

Delphi-Quellcode:
procedure TGLForm.ListBox1ContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
begin
currentlistbox:=(sender as TListBox);

handled:=false;
end;
dieses ereignis musst du natürlich allen listboxen zuweisen, die das popup haben.

du kannst dann in deinem menuitem-onclick einfach currentlistbox.items verwenden.

Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Wuaegner
Wuaegner

Registriert seit: 8. Feb 2004
406 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Invalid Class Typecast

  Alt 6. Aug 2005, 23:34
Klappt, vielen Dank
Wuaegner
Gruß Flo
Unternehmensberatung
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#10

Re: Invalid Class Typecast

  Alt 6. Aug 2005, 23:35
Ich bin mir nicht sicher, aber versuch mal das:
CurrentListbox := TListBox(TPopUpMenu(Sender).PopUpComponent); [edit]Zu spät... aber es ist kürzer [/edit]
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort


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