|
![]() |
|
Registriert seit: 31. Mär 2007 77 Beiträge |
#1
irgendwie klappt es bei mir nicht
![]() Bild mit näheren Infos habe ich drangehängt um es dir bildlicher zu machen.
Delphi-Quellcode:
Unit Unit4;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, TabNotBk, Buttons, ExtCtrls; type TSuche = record Text: AnsiString; ItemPos: integer; StrPos: integer; end; type TForm4 = class(TForm) TNInhalt: TTabbedNotebook; LaHilfeSatz1: TLabel; LaHilfeSatz2: TLabel; ListBox1: TListBox; BtHilfeOffnen: TButton; BtHilfeAbbrechen: TButton; PaLoni: TPanel; ImLoni: TImage; PaSuche: TPanel; LaInXSuchen: TLabel; EdSuchen: TEdit; BitBtnSuche: TBitBtn; LaCopyright: TLabel; MeInformationen: TMemo; ImAnimation: TImage; procedure BtHilfeAbbrechenClick(Sender: TObject); procedure BtHilfeOffnenClick(Sender: TObject); procedure BitBtnSucheClick(Sender: TObject); procedure ListBox1Click(Sender: TObject); private Suche: TSuche; public { Public-Deklarationen } end; var Form4: TForm4; implementation uses Unit5, Unit6, Math; {$R *.dfm} procedure TForm4.BtHilfeAbbrechenClick(Sender: TObject); begin Form4.Visible :=false; end; procedure TForm4.BtHilfeOffnenClick(Sender: TObject); begin if ListBox1.ItemIndex=0 then begin Form6.Visible:=true; Form6.Caption:='Allgemeine Hilfe'; Form6.ListBoxHilfeAllgemein.Visible:=true; Form6.ListBoxHilfeAnwendungen.Visible:=false; end else if ListBox1.ItemIndex=1 then begin Form6.Visible:=true; Form6.Caption:='MiniPaint Anwendungen'; Form6.ListBoxHilfeAllgemein.Visible:=false; Form6.ListBoxHilfeAnwendungen.Visible:=true; end; end; procedure TForm4.BitBtnSucheClick(Sender: TObject); var i, NextPos: integer; ItemText: AnsiString; begin if LaInXSuchen.Caption='In // Allgemeine Hilfe' then begin if Suche.ItemPos= -1 then Suche.ItemPos:= 0; Suche.Text:= UpperCase(EdSuchen.Text); for i := Suche.ItemPos to Pred(Form6.ListBoxHilfeAllgemein.Count) do begin ItemText:= UpperCase(Form6.ListBoxHilfeAllgemein.Items.Strings[i]); if Suche.StrPos> 0 then begin NextPos:= pos(Suche.Text, Copy(ItemText, Suche.StrPos+ length(Suche.Text), length(ItemText)- Suche.StrPos)); if NextPos> 0 then Suche.StrPos:= Suche.StrPos+ length(Suche.Text)+ NextPos- 1 else Suche.StrPos:= 0; end else Suche.StrPos:= pos(Suche.Text, ItemText); if Suche.StrPos> 0 then begin Suche.ItemPos:= i; break; end; end; if (Suche.StrPos= 0) and (i= Form6.ListBoxHilfeAllgemein.Count) then Suche.ItemPos:= -1; if Suche.ItemPos = -1 then BitBtnSuche.Caption:= 'Suchen' else BitBtnSuche.Caption:= 'WeiterSuche>>'; Form6.ListBoxHilfeAllgemein.Repaint; end else if LaInXSuchen.Caption='In // MiniPaint Anwendungen' then begin if Suche.ItemPos= -1 then Suche.ItemPos:= 0; Suche.Text:= UpperCase(EdSuchen.Text); for i := Suche.ItemPos to Pred(Form6.ListBoxHilfeAnwendungen.Count) do begin ItemText:= UpperCase(Form6.ListBoxHilfeAnwendungen.Items.Strings[i]); if Suche.StrPos> 0 then begin NextPos:= pos(Suche.Text, Copy(ItemText, Suche.StrPos+ length(Suche.Text), length(ItemText)- Suche.StrPos)); if NextPos> 0 then Suche.StrPos:= Suche.StrPos+ length(Suche.Text)+ NextPos- 1 else Suche.StrPos:= 0; end else Suche.StrPos:= pos(Suche.Text, ItemText); if Suche.StrPos> 0 then begin Suche.ItemPos:= i; break; end; end; if (Suche.StrPos= 0) and (i= Form6.ListBoxHilfeAnwendungen.Count) then Suche.ItemPos:= -1; if Suche.ItemPos = -1 then BitBtnSuche.Caption:= 'Suchen' else BitBtnSuche.Caption:= 'WeiterSuche>>'; Form6.ListBoxHilfeAnwendungen.Repaint; end; end; procedure TForm4.ListBox1Click(Sender: TObject); begin if ListBox1.ItemIndex=0 then begin LaInXSuchen.Caption:='In // Allgemeine Hilfe'; end else if ListBox1.ItemIndex=1 then begin LaInXSuchen.Caption:='In // MiniPaint Anwendungen'; end; end; end.
Delphi-Quellcode:
unit Unit6;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TSuche = record Text: AnsiString; ItemPos: integer; StrPos: integer; end; type TForm6 = class(TForm) ListBoxHilfeAllgemein: TListBox; LaHilfeInformantionen: TLabel; ListBoxHilfeAnwendungen: TListBox; procedure ListBoxHilfeAllgemeinDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); procedure ListBoxHilfeAnwendungenDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); procedure FormCreate(Sender: TObject); private Suche: TSuche; public { Public-Deklarationen } end; var Form6: TForm6; implementation {$R *.dfm} procedure TForm6.ListBoxHilfeAllgemeinDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var ListText, SelText: AnsiString; begin with (Control as TListBox).Canvas do begin if not (odFocused in State) then begin if Index = Suche.ItemPos then // markiertes Item begin Brush.Color:= graphics.clYellow;//clRed;//graphics.clHighlight; FillRect(Rect); Font.Color:= graphics.clBlack; ListText:= (Control as TListBox).Items[Index]; TextOut(Rect.Left + 2, Rect.Top, ListText); Font.Color:= graphics.clRed; SelText:= Copy(ListText, Suche.StrPos, length(Suche.Text)); TextOut(Rect.Left + 2+ TextWidth(Copy(ListText, 1, Suche.StrPos- 1)), Rect.Top, SelText); end else begin Brush.Color := (Control as TListBox).Color; Font.Color:= graphics.clBlack; FillRect(Rect); TextOut(Rect.Left + 2, Rect.Top, (Control as TListBox).Items[Index]); end; end; end; end; procedure TForm6.ListBoxHilfeAnwendungenDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var ListText, SelText: AnsiString; begin with (Control as TListBox).Canvas do begin if not (odFocused in State) then begin if Index = Suche.ItemPos then // markiertes Item begin Brush.Color:= graphics.clYellow;//clRed;//graphics.clHighlight; FillRect(Rect); Font.Color:= graphics.clBlack; ListText:= (Control as TListBox).Items[Index]; TextOut(Rect.Left + 2, Rect.Top, ListText); Font.Color:= graphics.clRed; SelText:= Copy(ListText, Suche.StrPos, length(Suche.Text)); TextOut(Rect.Left + 2+ TextWidth(Copy(ListText, 1, Suche.StrPos- 1)), Rect.Top, SelText); end else begin Brush.Color := (Control as TListBox).Color; Font.Color:= graphics.clBlack; FillRect(Rect); TextOut(Rect.Left + 2, Rect.Top, (Control as TListBox).Items[Index]); end; end; end; end; procedure TForm6.FormCreate(Sender: TObject); begin begin ZeroMemory(@Suche, SizeOf(TSuche)); Suche.ItemPos:= -1; Form6.ListBoxHilfeAllgemein.Style := lbOwnerDrawFixed; Form6.ListBoxHilfeAnwendungen.Style := lbOwnerDrawFixed; end; end; end. |
![]() |
Ansicht |
![]() |
![]() |
![]() |
ForumregelnEs 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
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
![]() |
![]() |