Das Create gehört
VOR das Try
Zitat:
[dcc32 Warnung] Unit3.pas(46): W1036 Variable 'RS' ist möglicherweise nicht initialisiert worden
Warum hört eigentlich nie jemand darauf, wenn er ihm was sagt?
Zitat:
Pos(A, B) <> 0
Warum nicht
Pos(A, B) = 1
oder gar
StartsStr(A, B)
oder
B.StartsWith(A)
?
Was soll denn bei BÄMM_BLUB oder DSED_DEMM_EEE passieren?
Hmmm, also eigentlich sollte der CollectionName ausreichen, für die Zuordnung.
Nachfolgendes macht aber eigentlich auch nichts anders (abgesaehn vom CREATE)
und ich sehe bis jetzt auch noch keine Fehler.
Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
var
RS: TResourceStream;
VILItem: TVirtualImageListItem;
begin
FArr := ['MM_Tipp_New', 'MM_Tipp_Edit', 'MM_Tipp_Delete', 'MM_Tipp_Search',
'MM_DB_Reload', 'MM_DB_Compress', 'MM_Tree_Expand', 'MM_Tree_Collaps',
'ED_FontSize_Up', 'ED_FontSize_Down', 'ED_Bold',
'ED_Italic', 'ED_Underline', 'ED_Left', 'ED_Center',
'ED_Right', 'ED_BGC', 'ED_FGC', 'ED_Link'];
VIL_MM.ImageCollection := IC;
VIL_ED.ImageCollection := IC;
VIL_MM.Width := 44; VIL_MM.Height := 44;
VIL_ED.Width := 36; VIL_ED.Height := 36;
for var A in LArr do
begin
RS := TResourceStream.Create(HInstance, A, RT_RCDATA);
try
IC.Add(A, RS);
finally
RS.Free;
end;
if StartsStr('MM_', A) then
VILItem := VIL_MM.Images.Add
else if StartsStr('ED_', A) then
VILItem := VIL_ED.Images.Add
else
Continue; // oder PENG
VILItem.CollectionName := A;
end;
end;
Ein Therapeut entspricht 1024 Gigapeut.